Program with 4 Agile Squads
- Anand Nerurkar
- Jun 30
- 11 min read
✅ Definition of Done (DoD) – Explained Simply
The Definition of Done (DoD) is a clear, shared, and measurable checklist of criteria that a product increment (feature, user story, task, or sprint deliverable) must meet before it can be considered complete.
It ensures:
Consistent quality
No hidden work
Alignment between developers, testers, product owners, and stakeholders
📌 Official Agile Definition (Scrum Guide):
“The Definition of Done is a formal description of the state of the Increment when it meets the quality measures required for the product.”
✅ Why DoD Matters
Prevents ambiguity around “done”
Promotes accountability and transparency
Supports sustainable development and faster delivery
Aligns team members and stakeholders on expectations
🧾 Example of a Definition of Done (for a user story):
✅ Code is written and reviewed✅ Unit tests written and passed (80%+ coverage)✅ Functional and integration tests passed✅ Code pushed to main branch✅ Feature tested in staging environment✅ No critical/high bugs open✅ Acceptance criteria met✅ Documentation updated (code + user-facing)✅ Product Owner reviewed and accepted✅ Deployed to production or ready for release
📦 Where Is DoD Used?
Context | How DoD Helps |
Sprint Review | Only “Done” items are demoed |
Velocity | Only “Done” stories count toward velocity |
Planning | Helps size user stories realistically |
Quality | Maintains consistency across teams |
✅ DoD vs DoR (Definition of Ready)
Term | Definition |
Definition of Ready | When a story is ready to be picked up by dev team (clear, estimated, testable) |
Definition of Done | When a story is truly finished and meets all acceptance and quality standards |
🎯 Best Practices
Define it collaboratively (Dev, QA, PO, Scrum Master)
Keep it visible (on boards, wikis, sprint planning docs)
Apply consistently across all sprints
Evolve it as the product matures
✅ Definition of Done (DoD) – SaaS Platform Version
Here’s a comprehensive and practical DoD tailored for a SaaS-based multi-tenant product:
🔹 1. Code and Development
✅ Code is written, peer-reviewed, and follows coding standards
✅ Unit tests are written and passing (minimum 80% coverage)
✅ Feature flag enabled (if applicable)
✅ Code is committed to trunk/main (trunk-based dev)
✅ Static code analysis shows no critical issues (e.g., SonarQube, Checkstyle)
🔹 2. Testing and Validation
✅ Functionality tested on all supported tenants (multi-tenancy verified)
✅ Integration and regression tests passed
✅ No open critical/major bugs
✅ Performance benchmarks done (where applicable)
✅ Security scans passed (OWASP, dependency checks, etc.)
✅ Accessibility tests (if user-facing)
🔹 3. Environments and CI/CD
✅ Code is deployed and verified in staging/pre-prod
✅ CI pipeline passed (build, test, package, deploy)
✅ Rollback strategy documented (or automated)
✅ Feature validated behind toggle (if progressive rollout)
✅ Deployment YAML/scripts updated (e.g., Helm chart, Terraform)
🔹 4. Documentation
✅ API specs updated (e.g., Swagger/OpenAPI)
✅ System documentation updated (confluence, architecture diagram)
✅ Runbook/playbook created or updated
✅ Release notes drafted (JIRA/Confluence)
🔹 5. Security and Compliance
✅ GDPR/PII compliance checked (if handling user data)
✅ RBAC/permissions validated across tenants
✅ Audit logging added for critical actions
✅ Secrets handled via vaults (no hardcoded secrets)
🔹 6. Product and Business Alignment
✅ Acceptance criteria met
✅ UX/UI approved by designer/stakeholder
✅ Product Owner demoed and signed off
✅ SLA/SLO implications reviewed
✅ Tenant-specific config reviewed and validated
🔹 7. Release Readiness
✅ Story marked "Done" in JIRA or tracking system
✅ Tested on at least one tenant sandbox
✅ Passed tenant onboarding checklist (if new feature)
✅ Ready for release (automated or scheduled)
🧭 Optional (if Mature SaaS)
✅ Observability hooks added (Prometheus/Grafana, logging)
✅ Feature usage metrics instrumented
✅ API rate limiting tested
✅ Chaos test (resiliency, failover)
📌 Where to Use This DoD?
Phase | Use it to ensure... |
Story sign-off | All tasks are fully done |
Sprint review | Only features that meet DoD are demoed |
UAT / staging | Release is ready across all tenants |
Release pipeline | Avoid rollback/failure in production |
==========
Definition of Done (DoD) and Acceptance Criteria are closely related but not the same. They serve different purposes in Agile and Scrum.
✅ Key Difference: DoD vs Acceptance Criteria
Aspect | Definition of Done (DoD) | Acceptance Criteria |
What it is | A universal checklist that defines when any item is “done” | A story-specific checklist that defines when that user story is accepted |
Scope | Applies to all backlog items (global across the team or product) | Applies to a single user story or feature |
Purpose | Ensures consistency, quality, and completeness | Ensures business intent is met for that story |
Created by | Scrum Team (Dev + QA + PO) | Product Owner with Dev/QA input |
Example Format | Checklist (code review, tests passed, deployed to staging) | Given-When-Then or bullet list describing behavior |
Timing | Applied at the end of implementation | Defined before development starts |
🧾 Simple Example:
🎯 User Story
As a tenant admin, I want to be able to reset passwords so that users can regain access if they forget credentials.
✅ Acceptance Criteria
User receives a reset password link via email
Link expires after 24 hours
Reset must require at least one capital letter, one number, and 8+ characters
Audit log entry created for reset event
📋 Definition of Done (DoD)
Code reviewed and merged
Unit + integration tests pass
Functionality verified in staging
Security validations done (password strength, email masking)
Documentation updated
Feature toggled for tenants
PO review and sign-off
🔁 How They Work Together
| Acceptance Criteria | ✅ Are part of what must be met for the story to be functionally complete || Definition of Done | ✅ Ensures all technical and process-level tasks are completed to mark it as “done” |
🔑 Analogy:If Acceptance Criteria is the “what” for one story,then Definition of Done is the “how” + quality gate for every story.
✅ Final Takeaway
Acceptance Criteria = specific to the functionality
DoD = broad checklist to ensure the story is shippable, testable, and production-ready
Both must be satisfied before a user story can be considered complete and deliverable.
=====================
🔴 Top Challenges in a Multi-Squad Agile Program (4 Squads)
1️⃣ Dependency Management Across Squads
Problem: Features often span multiple squads. If one squad delays, others get blocked.
Symptoms: Bottlenecks, finger-pointing, rework.
Solution:
Use a Dependency Tracker (JIRA Advanced Roadmaps, Confluence boards)
Visualize on a Program Board (PI Planning style)
Establish a "Dependency Champion" role per squad
2️⃣ Lack of Synchronization
Problem: Sprints may start/end at different times; inconsistent definitions of "done".
Symptoms: Misaligned releases, poor integration quality.
Solution:
Enforce sprint cadence alignment (e.g., all squads run 2-week sprints in sync)
Hold Scrum of Scrums (2–3 times per week)
Define a shared Definition of Done across squads
3️⃣ Fragmented Communication
Problem: Teams become siloed—no cross-talk between developers, testers, or POs.
Symptoms: Duplicate efforts, conflicting assumptions, slow issue resolution.
Solution:
Establish shared Slack channels / Teams groups
Rotate people for cross-squad code reviews / demos
Shared daily stand-ups or weekly Joint Reviews
4️⃣ Unclear Ownership of Shared Components
Problem: Backend services, APIs, or shared libraries are modified without coordination.
Symptoms: Breaking changes, build failures, integration bugs.
Solution:
Define Component Owners
Maintain API contracts and use semantic versioning
Adopt consumer-driven contract testing (e.g., Pact)
5️⃣ Inconsistent Backlog Grooming / Prioritization
Problem: Squads have different interpretations of priority or value.
Symptoms: Business value not realized; features delivered out of context.
Solution:
Use a single prioritized program backlog
Conduct Quarterly PI Planning (like SAFe) or joint grooming sessions
Product Managers work as a "PM Chapter" to align on goals
6️⃣ Technical Debt Accumulation
Problem: Teams focus on velocity and feature delivery, ignoring refactoring.
Symptoms: Long-term velocity slows down; bugs increase.
Solution:
Allocate 20–25% sprint capacity to tech debt
Set architecture guardrails and tech governance
Conduct bi-weekly tech syncs with architects and senior devs
7️⃣ Quality Variance Across Squads
Problem: Each squad has its own test strategy or automation maturity.
Symptoms: Inconsistent quality, test duplication, unstable releases.
Solution:
Define a shared quality framework (unit test % minimum, automation tools, etc.)
Implement a common CI/CD pipeline
Create a QA Center of Excellence (CoE)
8️⃣ Lack of Integrated Reporting / Visibility
Problem: Each squad has its own burndown and status; no holistic view.
Symptoms: Stakeholders lack confidence, delayed decisions.
Solution:
Use tools like JIRA Advanced Roadmaps / BigPicture / Aha!
Create a shared program dashboard (sprint velocity, risks, dependencies)
Weekly program-level sync meetings with POs, SMs, Architects
🛠️ Operating Model to Handle These Challenges
🔧 Structure
Role | Responsibility |
Release Train Engineer or Program Manager | Oversees cross-squad planning and execution |
Scrum of Scrums Lead | Coordinates daily inter-squad issues |
Architecture Owner | Aligns design and tech standards |
Chapter Leads | Align on testing, DevOps, security |
📅 Cadence
Ceremony | Frequency |
Sprint Planning | Bi-weekly |
Scrum of Scrums | 2–3 times/week |
Program Sync (RTE + POs + SMs) | Weekly |
System Demo / Release Review | End of sprint |
PI Planning (2–3 month plan) | Quarterly |
📌 Checklist for Program Stability
✅ Aligned sprint calendar across squads✅ Shared backlog with unified prioritization✅ Defined Definition of Done and Acceptance Criteria✅ Clear RACI for shared APIs/services✅ Metrics tracked: velocity, story completion rate, escaped defects✅ Cross-squad retrospectives quarterly
==============
✅ 1. Confluence / Notion Template – 4-Squad Agile Program Governance
This template is designed to help you track and manage the program-level execution, dependencies, alignment, and quality across 4 Agile squads.
📘 Confluence/Notion: Program Dashboard Home
📌 Program Name: SaaS Platform Modernization
Section | Purpose |
Overview | Objective, teams involved, program duration, definition of success |
Squad Overview | Team composition, PO, SM, Tech Lead, key deliverables |
Program Timeline | Program increment calendar, sprint cadence, milestones |
Key Objectives (OKRs) | Business + technical outcomes linked to each squad |
Risks & Impediments | Rolling list with owner, severity, mitigation |
Dependencies Tracker | Cross-squad feature dependencies and delivery links |
Integration Readiness | Status of integrated modules across squads (updated per sprint) |
CI/CD & Release Readiness | Deployment readiness by environment, code freeze, rollback plans |
Stakeholder Updates | Weekly summary, metrics, and decisions made |
🧩 Template: Squad-Level Section (Repeat for Each Squad)
Squad Name: e.g., Onboarding Squad
Field | Detail |
PO | Name & contact |
Scrum Master | Name & contact |
Squad Members | Role-wise listing (Dev, QA, UX) |
Feature Backlog | Link to JIRA filter / roadmap |
Velocity Trend (Last 5 Sprints) | Embed chart / burn-up |
Quality Dashboard | Unit test %, bugs per sprint, code coverage |
Current Sprint Goals | 2–3 crisp objectives |
Key Dependencies | List of blocked teams or blockers |
Demos & Review Notes | Add links to sprint demos |
✅ 2. Scrum of Scrums Deck Template (Weekly)
This deck can be reused every week in your Scrum of Scrums sync. Use Google Slides / PowerPoint / Notion gallery view.
🔶 Scrum of Scrums Weekly Sync Template
Section | Content |
Date | YYYY-MM-DD |
Participants | PO, SM, Tech Leads from each squad |
Program Goals Reminder | Slide with current PI/Release goal |
Squad Updates (1 slide per squad) | Format below |
Risks & Escalations | Add issues to escalate to leadership |
Cross-team Dependencies | Tracker view: who needs what, by when |
Release Timeline & Integration Status | Status of release branches, API mocks, etc. |
🧩 Squad Update Slide Template
Squad Name: e.g., Tenant Management
Field | Example |
Sprint # | Sprint 8 (24-Jun to 5-Jul) |
Current Sprint Goals | Implement multi-tenant dashboard, begin billing sync |
Achievements | 2 stories done, API validated with "Billing Squad" |
Risks | Schema refactor delay may impact UAT |
Dependencies | Waiting on Kafka event from "Core Services" |
Demo Video / QA Link | [Click to view] |
✅ 3. Program-Level Dashboard Layout (for PMs, CTO, Stakeholders)
Use this in Confluence or a reporting dashboard tool (like PowerBI, Google Data Studio, or JIRA Dashboards):
📊 Program Dashboard Sections
🟩 Program Health Summary
Metric | Value | Status |
Sprints Completed | 5 of 10 | 🟡 On Track |
Overall Feature Progress | 62% | 🟢 Green |
Escaped Defects (last release) | 3 | 🟢 Green |
Velocity Stability | 90% confidence | 🟡 OK |
Deployment Success Rate | 98% | 🟢 Green |
🟦 Squad Velocity Table
Squad | Avg Velocity | Latest | Trend |
Onboarding | 30 SP | 32 SP | ⬆️ |
Billing | 26 SP | 22 SP | ⬇️ |
Tenant Management | 28 SP | 30 SP | ➡️ |
Core Services | 33 SP | 33 SP | ➡️ |
🟨 Risks Tracker (Auto-Rolling)
Squad | Risk Description | Severity | Mitigation Owner |
Core Services | Kafka contract not finalized | High | Ravi (Architect) |
Billing | GST module delay from vendor | Medium | PO |
🟥 Cross-Squad Dependency Matrix
Squad → Depends On | Core | Billing | Tenant Mgmt | Onboarding |
Core | — | ✅ | ❌ | ✅ |
Billing | ❌ | — | ✅ | ✅ |
Tenant Mgmt | ✅ | ✅ | — | ❌ |
Onboarding | ❌ | ❌ | ✅ | — |
====
Mutual Fund Platform Modernization Program
📊 Program Overview
Program Name: Mutual Fund Platform Modernization
Business Goal: Modernize legacy systems to a scalable, secure, and cloud-native microservices-based platform supporting multiple investor touchpoints (mobile, web, API).
Scope:
Digital onboarding and KYC
Transaction management (purchase, redemption, switch)
Portfolio tracking and reporting
Advisor and distributor management
Regulatory reporting and audit compliance
Duration: 9 Months (3 Program Increments)
Tech Stack: Java 17, Spring Boot Microservices, Azure Kubernetes Service (AKS), Azure API Management, Azure SQL, Azure Cosmos DB, Azure Event Hub/Kafka, Azure DevOps, Key Vault, App Gateway, Azure Monitor, Istio
👥 Agile Squad Structure (4 Squads)
1. Investor Experience Squad
Focus: UI/UX, onboarding, KYC, dashboard, authentication (OAuth2, Azure AD B2C)
Key Deliverables:
Modern responsive UI
KYC integration (Aadhaar, PAN, DigiLocker)
Mobile + web login
Role-based dashboards
2. Transaction Services Squad
Focus: Purchase, Redemption, SIP/STP/SWP flows, transaction history
Key Deliverables:
Order placement and validation engine
Integration with RTA (CAMS/Karvy) APIs
Retry, timeout, idempotency handling
Business rule engine for product validation
3. Advisory & Partner Services Squad
Focus: Distributor onboarding, advisor dashboards, commissions, reporting
Key Deliverables:
Advisor hierarchy and payout engine
Real-time dashboards for commissions and AUM
Data sync with partner CRM
4. Compliance, Risk & Reporting Squad
Focus: SEBI regulations, audit trails, portfolio statements, tax reports
Key Deliverables:
Audit logging (write-ahead, immutable)
Portfolio and tax reporting module
Integration with Azure Purview & Sentinel
Static code scans and compliance checklists
💼 Program-Level Governance
Program Manager / RTE: Coordinates across squads
Architect: Ensures alignment to microservices and Azure reference architecture
Scrum of Scrums: Held twice weekly
Tools: JIRA (Program Board + Backlogs), Confluence (DoD, AC), Azure Boards
PI Planning: Conducted every 3 months
Release Cadence: Every 2 sprints (biweekly)
✅ Definition of Done (DoD)
Code developed, reviewed, merged
Unit tests ≥ 80% coverage
Integration tests passing
API contract stable
Tested across dev/test environments
Deployed via Azure DevOps to AKS
Static scans (SonarQube, Trivy) passed
Observability metrics instrumented (Prometheus/Grafana)
Documentation and release notes updated
PO sign-off done
📝 Sample Acceptance Criteria (Investor Onboarding)
Given a valid PAN and Aadhaar, when the user submits onboarding, KYC is auto-initiated
If KYC success, user gets account creation email
If user is minor, guardian workflow is triggered
All steps logged in audit trail with timestamp
📊 Program-Level Dashboard
Metric | Value | Status |
Sprints Completed | 5 / 18 | 🟡 Yellow |
Overall Feature Progress | 42% | 🟠 Green |
Escaped Defects (Prod) | 3 | 🟠 Green |
Active Dependencies | 6 | 🔴 Red |
API Integration Coverage | 78% | 🟡 Yellow |
🚧 Risks and Mitigation Plan
Risk ID | Category | Description | Severity | Mitigation Action |
R1 | Dependency | RTA API delay from CAMS impacting transaction squad | High | Use mock RTA API, parallel contract testing, raise escalation |
R2 | Architecture | Common API gateway latency spikes under load | Medium | Implement rate limiting + caching + auto-scale App Gateway |
R3 | Compliance | Missing SEBI audit checkpoint for digital onboarding | High | Validate checklist weekly; sync with legal every sprint |
R4 | Integration | Duplicate investor records from partner CRM sync | Medium | Add dedup logic and alerting, fuzzy match rules |
R5 | Team Alignment | Inconsistent DoD across squads | Medium | Conduct DoD alignment workshop and adopt shared template |
R6 | Release Risk | Regression failure in shared microservice | High | Contract testing, feature flagging, nightly integration runs |
🌍 Tools Used
Code: GitHub + Azure Repos
CI/CD: Azure DevOps Pipelines
Infra: Azure AKS, App Gateway, Cosmos DB, Azure SQL
Monitoring: Azure Monitor, Grafana, Prometheus, Application Insights
Security: Azure Key Vault, Defender, OWASP ZAP, Trivy
Documentation: Confluence (DoD, AC, APIs), Miro (Architecture), Draw.io
Collaboration: JIRA, Teams, Slack, Scrum of Scrums
🚀 Next Steps
Complete Sprint 6 planning across squads
Align integration test strategy for cross-squad flows
Conduct mid-PI demo for leadership
Track open risks and refresh mitigations weekly
✅ Shared Definition of Done (DoD) – Mutual Fund Platform Program
Category | DoD Item |
Development | ✅ Code checked in to GitHub/Azure Repos ✅ Branch naming conventions followed |
Code Quality | ✅ Code reviewed by at least 1 peer ✅ Static analysis passed (SonarQube: no critical/blocker issues) ✅ Linting and formatting applied |
Testing | ✅ Unit test coverage ≥ 80% ✅ Integration tests written and passed ✅ Postman/Newman API tests passed ✅ Regression tests updated if needed |
API/Contract | ✅ OpenAPI/Swagger contract published and reviewed ✅ Backward compatibility confirmed ✅ Pact/Contract testing for shared services |
Security | ✅ OWASP Top 10 checks addressed ✅ Trivy/ZAP scan passed ✅ Secrets managed in Azure Key Vault |
Infrastructure | ✅ Deployed to Dev/QA via Azure DevOps Pipelines ✅ Environment variables configured via Helm charts |
Observability | ✅ Logging integrated (Log4j/Serilog) ✅ Metrics exposed to Prometheus/Grafana ✅ Alerts configured for critical flows |
Documentation | ✅ Functional design updated in Confluence ✅ API documentation published ✅ Release notes prepared |
Product Validation | ✅ PO reviewed and accepted via demo ✅ Acceptance Criteria met (JIRA closed) ✅ End-to-end UAT done (if applicable) |
Governance | ✅ Linked to Epic/Feature in Program Board ✅ Story status = “Done” in JIRA ✅ No open dependencies/blockers |
Comments