6 min read • Guide 378 of 877
Definition of Done
Definition of Done (DoD) is the shared understanding of what "complete" means. Without it, "done" means different things to different people—leading to incomplete work, quality issues, and confusion. A good DoD creates clarity and consistency.
DoD vs Acceptance Criteria
| Aspect | Definition of Done | Acceptance Criteria |
|---|---|---|
| Scope | All work | One story |
| Who defines | Team | Product Owner + Team |
| Content | Quality standards | Feature requirements |
| When reviewed | Every story | Per story |
Creating DoD
Building Your Definition
CREATING DEFINITION OF DONE
═══════════════════════════
START WITH BASICS:
─────────────────────────────────────
Minimum viable DoD:
├── Code is written
├── Code is reviewed
├── Tests pass
├── Merged to main
├── Deployable
└── Baseline quality
ADD QUALITY ITEMS:
─────────────────────────────────────
├── Unit tests written
├── Integration tests (if applicable)
├── Code coverage maintained
├── No new warnings
├── Documentation updated
├── Security scan passed
└── Quality gates
ADD PROCESS ITEMS:
─────────────────────────────────────
├── PR reviewed by 2 developers
├── Acceptance criteria verified
├── Product Owner approved
├── Deployed to staging
├── Smoke tested
└── Process compliance
TEAM DISCUSSION:
─────────────────────────────────────
Questions to ask:
├── "What does done mean to us?"
├── "What have we shipped that wasn't ready?"
├── "What quality issues do we see?"
├── "What would catch problems earlier?"
├── Collaborative definition
└── Team ownership
Example DoD
Complete Definition
EXAMPLE DEFINITION OF DONE
══════════════════════════
CODE COMPLETE:
─────────────────────────────────────
☐ Feature implemented as specified
☐ Code follows team standards
☐ No commented-out code
☐ No console.log/print debugging
☐ Self-documenting code (clear names)
TESTED:
─────────────────────────────────────
☐ Unit tests written and passing
☐ Integration tests (if applicable)
☐ Manual testing completed
☐ Edge cases considered
☐ No known bugs
REVIEWED:
─────────────────────────────────────
☐ Code review by 2 team members
☐ Review feedback addressed
☐ No unresolved comments
MERGED:
─────────────────────────────────────
☐ PR merged to main branch
☐ CI pipeline passing
☐ No merge conflicts
DOCUMENTED:
─────────────────────────────────────
☐ API documentation updated
☐ README updated if needed
☐ Significant decisions documented
DEPLOYED:
─────────────────────────────────────
☐ Deployed to staging environment
☐ Smoke tested in staging
☐ Ready for production deploy
ACCEPTANCE:
─────────────────────────────────────
☐ Acceptance criteria verified
☐ Product Owner reviewed
☐ Demo-ready
DoD Levels
Multiple Definitions
DOD LEVELS
══════════
STORY LEVEL:
─────────────────────────────────────
For each user story:
├── Code complete
├── Tests pass
├── Code reviewed
├── Merged
├── Documentation updated
├── Acceptance criteria met
└── Story complete
SPRINT LEVEL:
─────────────────────────────────────
For sprint to be complete:
├── All stories meet story DoD
├── Sprint goal achieved
├── Increment is releasable
├── No critical bugs
├── Demo completed
├── Retrospective held
└── Sprint complete
RELEASE LEVEL:
─────────────────────────────────────
For release to be complete:
├── All sprint DoDs met
├── Release testing passed
├── Performance validated
├── Security reviewed
├── Documentation complete
├── Release notes written
├── Stakeholder sign-off
└── Ready to ship
Evolving DoD
Improving Over Time
EVOLVING DEFINITION OF DONE
═══════════════════════════
REGULAR REVIEW:
─────────────────────────────────────
In retrospectives:
├── "Are we meeting our DoD?"
├── "What slips through?"
├── "What should we add?"
├── "What's unnecessary?"
├── Continuous improvement
└── Living document
ADDING ITEMS:
─────────────────────────────────────
Add when:
├── Quality issues repeat
├── Same problem multiple times
├── Team capacity increases
├── New requirements emerge
├── Gradual improvement
└── Don't overload initially
REMOVING ITEMS:
─────────────────────────────────────
Remove when:
├── Automated elsewhere
├── No longer relevant
├── Causing unnecessary delay
├── Team has internalized it
├── Keep lean
└── Value-focused
MATURITY PROGRESSION:
─────────────────────────────────────
New team:
├── Basic DoD
├── Code works and tested
├── Reviewed and merged
└── Simple start
Mature team:
├── Comprehensive DoD
├── Automated checks
├── High quality standards
├── Security included
├── Performance verified
└── Built over time
Enforcement
Making It Stick
ENFORCING DOD
═════════════
AUTOMATION:
─────────────────────────────────────
Automate where possible:
├── CI checks tests pass
├── Linter checks code style
├── Coverage threshold
├── Security scans
├── PR template with checklist
└── Automated enforcement
PR TEMPLATE:
─────────────────────────────────────
## Definition of Done Checklist
- [ ] Code follows team standards
- [ ] Unit tests written and passing
- [ ] Code reviewed by 2 developers
- [ ] Documentation updated
- [ ] No known bugs
- [ ] Acceptance criteria verified
CULTURE:
─────────────────────────────────────
├── Team holds each other accountable
├── Review DoD in sprint review
├── Celebrate quality
├── Don't accept "almost done"
├── Done means DONE
└── Team agreement
TRANSPARENCY:
─────────────────────────────────────
├── DoD visible to all
├── Posted in team space
├── Referenced in meetings
├── Known by everyone
└── Shared understanding
GitScrum Integration
DoD in GitScrum
GITSCRUM FOR DOD
════════════════
TASK CHECKLIST:
─────────────────────────────────────
├── DoD items as checklist
├── Check off as completed
├── Visual progress
├── Nothing forgotten
└── Consistent verification
TASK TEMPLATES:
─────────────────────────────────────
├── Create task type with DoD built in
├── Automatic checklist
├── Every task has DoD
└── Enforced by structure
DOCUMENTATION:
─────────────────────────────────────
NoteVault:
├── Team DoD documented
├── Version history
├── Easily referenced
├── Central location
└── Living document
WORKFLOW:
─────────────────────────────────────
├── Can't move to Done without checklist
├── Workflow enforcement
├── Quality gate
└── Automated compliance
Best Practices
For Definition of Done
- Team-owned — Created together
- Visible — Posted and referenced
- Evolved — Improved regularly
- Enforced — Actually followed
- Automated — Where possible
Anti-Patterns
DOD MISTAKES:
✗ No DoD at all
✗ Imposed by management
✗ Too long/complex
✗ Never updated
✗ Ignored in practice
✗ Different per person
✗ Not visible
✗ No enforcement