Try free
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

AspectDefinition of DoneAcceptance Criteria
ScopeAll workOne story
Who definesTeamProduct Owner + Team
ContentQuality standardsFeature requirements
When reviewedEvery storyPer 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

  1. Team-owned — Created together
  2. Visible — Posted and referenced
  3. Evolved — Improved regularly
  4. Enforced — Actually followed
  5. 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