10 min read • Guide 158 of 877
Implementing Definition of Done Checklists
A Definition of Done (DoD) is an agreement on what "complete" means for your team. Without it, "done" becomes subjective—one person's done includes testing, another's doesn't. DoD checklists create shared quality standards that prevent incomplete work from shipping and reduce the back-and-forth of forgotten requirements.
Definition of Done Fundamentals
What DoD Includes
DOD COMPONENTS:
┌─────────────────────────────────────────────────────────────┐
│ BUILDING A COMPLETE DEFINITION OF DONE │
├─────────────────────────────────────────────────────────────┤
│ │
│ CORE DOD ELEMENTS: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ ││
│ │ CODE QUALITY: ││
│ │ ☐ Code compiles without errors ││
│ │ ☐ All unit tests pass ││
│ │ ☐ Code reviewed and approved ││
│ │ ☐ No new linter warnings ││
│ │ ☐ Follows coding standards ││
│ │ ││
│ │ TESTING: ││
│ │ ☐ Unit tests written for new code ││
│ │ ☐ Integration tests updated ││
│ │ ☐ Manual testing completed ││
│ │ ☐ Edge cases verified ││
│ │ ☐ Regression tests pass ││
│ │ ││
│ │ DOCUMENTATION: ││
│ │ ☐ Code comments added where needed ││
│ │ ☐ API documentation updated ││
│ │ ☐ User-facing docs updated (if applicable) ││
│ │ ☐ README updated (if applicable) ││
│ │ ││
│ │ DEPLOYMENT: ││
│ │ ☐ Merged to main branch ││
│ │ ☐ Deployed to staging ││
│ │ ☐ Verified in staging environment ││
│ │ ☐ Feature flags configured (if used) ││
│ │ ││
│ │ ACCEPTANCE: ││
│ │ ☐ Acceptance criteria met ││
│ │ ☐ Product owner reviewed ││
│ │ ☐ No open blockers ││
│ │ ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ DOD BY TASK TYPE: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ ││
│ │ Feature work DoD: ││
│ │ All core elements + user docs + demo prepared ││
│ │ ││
│ │ Bug fix DoD: ││
│ │ Core elements + root cause documented + test added ││
│ │ ││
│ │ Tech debt DoD: ││
│ │ Core elements + before/after metrics + team review ││
│ │ ││
│ │ Spike/Research DoD: ││
│ │ Findings documented + decision recorded + next steps ││
│ │ ││
│ └─────────────────────────────────────────────────────────┘│
│ │
└─────────────────────────────────────────────────────────────┘
Implementing DoD in GitScrum
Task Checklists
CHECKLIST SETUP:
┌─────────────────────────────────────────────────────────────┐
│ ADDING DOD CHECKLISTS TO TASKS │
├─────────────────────────────────────────────────────────────┤
│ │
│ ADDING CHECKLIST TO INDIVIDUAL TASK: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Open task → Add checklist section ││
│ │ ││
│ │ Example task: "Add user search feature" ││
│ │ ││
│ │ Definition of Done: ││
│ │ ☐ Search API endpoint implemented ││
│ │ ☐ Frontend search component complete ││
│ │ ☐ Unit tests written (>80% coverage) ││
│ │ ☐ Search results paginated ││
│ │ ☐ Empty state handled ││
│ │ ☐ Error states handled ││
│ │ ☐ Code reviewed by lead ││
│ │ ☐ Deployed to staging ││
│ │ ☐ QA verified in staging ││
│ │ ☐ Product owner accepted ││
│ │ ││
│ │ Progress visible: 0/10 complete ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ USING TASK TEMPLATES: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Create template with DoD pre-filled: ││
│ │ ││
│ │ Template: "Feature Task" ││
│ │ ││
│ │ Description: ││
│ │ [Feature description here] ││
│ │ ││
│ │ Acceptance Criteria: ││
│ │ [Criteria here] ││
│ │ ││
│ │ Definition of Done: ││
│ │ ☐ All acceptance criteria met ││
│ │ ☐ Code reviewed and approved ││
│ │ ☐ Unit tests written ││
│ │ ☐ Integration tests pass ││
│ │ ☐ Documentation updated ││
│ │ ☐ Deployed to staging ││
│ │ ☐ QA verified ││
│ │ ☐ Product owner accepted ││
│ │ ││
│ │ When creating new feature task, use this template ││
│ └─────────────────────────────────────────────────────────┘│
│ │
└─────────────────────────────────────────────────────────────┘
Enforcing DoD
Preventing Premature Completion
ENFORCEMENT STRATEGIES:
┌─────────────────────────────────────────────────────────────┐
│ ENSURING DOD IS FOLLOWED │
├─────────────────────────────────────────────────────────────┤
│ │
│ WORKFLOW COLUMN APPROACH: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Create column that requires DoD verification: ││
│ │ ││
│ │ In Progress → DoD Check → Done ││
│ │ ↑ ││
│ │ Verify all checklist items ││
│ │ before moving to Done ││
│ │ ││
│ │ Visual cue: ││
│ │ If checklist incomplete, task shows warning ││
│ │ "8/10 DoD items complete" ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ DAILY STANDUP CHECK: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ When someone says "I finished task X": ││
│ │ ││
│ │ Quick verification: ││
│ │ "Is the DoD checklist complete?" ││
│ │ ││
│ │ If no: Task stays in "In Progress" ││
│ │ If yes: Task moves to "Done" ││
│ │ ││
│ │ This becomes team habit, not micromanagement ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ SPRINT REVIEW VALIDATION: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Before sprint review: ││
│ │ ││
│ │ Check all "Done" tasks: ││
│ │ • Checklist 100% complete? ││
│ │ • Deployed and verified? ││
│ │ • Ready to demo? ││
│ │ ││
│ │ If DoD not met: ││
│ │ • Move back to "In Progress" ││
│ │ • Not counted in sprint completion ││
│ │ • Discuss in retrospective ││
│ └─────────────────────────────────────────────────────────┘│
│ │
└─────────────────────────────────────────────────────────────┘
DoD by Team Level
Layered Definitions
MULTIPLE DOD LEVELS:
┌─────────────────────────────────────────────────────────────┐
│ DOD AT DIFFERENT SCOPES │
├─────────────────────────────────────────────────────────────┤
│ │
│ TASK-LEVEL DOD: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Individual task completion: ││
│ │ ││
│ │ ☐ Code written and works ││
│ │ ☐ Unit tests pass ││
│ │ ☐ Code reviewed ││
│ │ ☐ Merged to main ││
│ │ ││
│ │ Purpose: Individual developer accountability ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ STORY-LEVEL DOD: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ User story completion: ││
│ │ ││
│ │ ☐ All tasks complete ││
│ │ ☐ Acceptance criteria verified ││
│ │ ☐ Integration tested ││
│ │ ☐ Product owner accepted ││
│ │ ☐ Documentation updated ││
│ │ ││
│ │ Purpose: Feature completeness verification ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ SPRINT-LEVEL DOD: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Sprint completion: ││
│ │ ││
│ │ ☐ All committed stories complete ││
│ │ ☐ Sprint goal achieved ││
│ │ ☐ Release notes prepared ││
│ │ ☐ Deployed to production (or ready to deploy) ││
│ │ ☐ Stakeholders updated ││
│ │ ☐ Tech debt tracked ││
│ │ ││
│ │ Purpose: Sprint deliverable quality ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ RELEASE-LEVEL DOD: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Release completion: ││
│ │ ││
│ │ ☐ All features tested end-to-end ││
│ │ ☐ Performance testing passed ││
│ │ ☐ Security review complete ││
│ │ ☐ User documentation complete ││
│ │ ☐ Support team trained ││
│ │ ☐ Rollback plan documented ││
│ │ ☐ Monitoring in place ││
│ │ ││
│ │ Purpose: Production readiness ││
│ └─────────────────────────────────────────────────────────┘│
│ │
└─────────────────────────────────────────────────────────────┘
Evolving Your DoD
Improving Over Time
DOD EVOLUTION:
┌─────────────────────────────────────────────────────────────┐
│ GROWING YOUR DEFINITION OF DONE │
├─────────────────────────────────────────────────────────────┤
│ │
│ STARTING SIMPLE: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ New team DoD (minimal): ││
│ │ ││
│ │ ☐ Code works ││
│ │ ☐ Code reviewed ││
│ │ ☐ Tested manually ││
│ │ ☐ Merged to main ││
│ │ ││
│ │ Start here, add items as team matures ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ ADDING BASED ON PROBLEMS: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Pattern: Bug escaped to production ││
│ │ Add to DoD: ☐ Edge cases tested ││
│ │ ││
│ │ Pattern: Deployment failures ││
│ │ Add to DoD: ☐ Verified in staging ││
│ │ ││
│ │ Pattern: Missing documentation ││
│ │ Add to DoD: ☐ API docs updated ││
│ │ ││
│ │ Each retro: "What should we add to DoD?" ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ MATURE TEAM DOD: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Experienced team DoD (comprehensive): ││
│ │ ││
│ │ Code Quality: ││
│ │ ☐ All tests pass (unit, integration, e2e) ││
│ │ ☐ Code coverage maintained or improved ││
│ │ ☐ No new technical debt without ticket ││
│ │ ☐ Performance benchmarks met ││
│ │ ☐ Accessibility requirements met ││
│ │ ││
│ │ Process: ││
│ │ ☐ Peer reviewed by 2+ developers ││
│ │ ☐ Security scan passed ││
│ │ ☐ Deployed to staging ││
│ │ ☐ UAT complete ││
│ │ ☐ Monitoring alerts configured ││
│ │ ☐ Feature flag configured ││
│ │ ││
│ │ This DoD took years to build—don't start here ││
│ └─────────────────────────────────────────────────────────┘│
│ │
└─────────────────────────────────────────────────────────────┘
Common DoD Mistakes
What to Avoid
DOD ANTI-PATTERNS:
┌─────────────────────────────────────────────────────────────┐
│ DEFINITION OF DONE MISTAKES │
├─────────────────────────────────────────────────────────────┤
│ │
│ TOO LONG / UNREALISTIC: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ ❌ 50-item checklist for every task ││
│ │ Result: DoD ignored because it's impractical ││
│ │ ││
│ │ ✅ Keep DoD to 8-12 essential items ││
│ │ Additional items in specific templates ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ TOO VAGUE: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ ❌ "Code is good quality" ││
│ │ Result: Subjective, inconsistent enforcement ││
│ │ ││
│ │ ✅ "All unit tests pass" ││
│ │ ✅ "Code reviewed by at least one peer" ││
│ │ Result: Objective, verifiable ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ NOT ENFORCED: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ ❌ "DoD is just a guideline" ││
│ │ Result: Becomes meaningless over time ││
│ │ ││
│ │ ✅ "Task cannot move to Done without DoD complete" ││
│ │ Result: Consistent quality standards ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ NEVER UPDATED: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ ❌ Same DoD for 3 years ││
│ │ Result: Doesn't reflect current practices ││
│ │ ││
│ │ ✅ Review DoD quarterly ││
│ │ ✅ Add/remove items based on retro learnings ││
│ └─────────────────────────────────────────────────────────┘│
│ │
└─────────────────────────────────────────────────────────────┘