8 min read • Guide 784 of 877
Definition of Done Checklist
"Done" means more than "code complete." GitScrum helps teams define and track completion criteria so work is truly finished.
Definition of Done
Standard Checklist
TEAM DEFINITION OF DONE:
┌─────────────────────────────────────────────────────────────┐
│ │
│ A STORY IS DONE WHEN: │
│ │
│ CODE: │
│ ☐ Code written and self-reviewed │
│ ☐ Code follows team style guide │
│ ☐ No known tech debt introduced │
│ ☐ No hard-coded values or secrets │
│ │
│ TESTING: │
│ ☐ Unit tests written and passing │
│ ☐ Integration tests passing │
│ ☐ Manual testing completed │
│ ☐ Edge cases covered │
│ ☐ No regression in existing features │
│ │
│ REVIEW: │
│ ☐ Code review completed (at least 1 reviewer) │
│ ☐ Review comments addressed │
│ ☐ Reviewer approved │
│ │
│ DOCUMENTATION: │
│ ☐ Code comments where needed │
│ ☐ API documentation updated (if applicable) │
│ ☐ User documentation updated (if user-facing) │
│ ☐ README updated (if setup changes) │
│ │
│ DEPLOYMENT: │
│ ☐ Merged to main branch │
│ ☐ CI/CD pipeline passing │
│ ☐ Deployed to staging │
│ ☐ Verified working in staging │
│ │
│ ACCEPTANCE: │
│ ☐ Acceptance criteria met │
│ ☐ PO reviewed and approved │
│ │
│ ALL ITEMS MUST BE CHECKED FOR "DONE" │
└─────────────────────────────────────────────────────────────┘
Levels of Done
DONE AT DIFFERENT LEVELS:
┌─────────────────────────────────────────────────────────────┐
│ │
│ TASK DONE: │
│ ───────── │
│ Individual task completed within a story │
│ ☐ Task work completed │
│ ☐ Committed to feature branch │
│ │
│ STORY DONE: │
│ ────────── │
│ User story fully implemented │
│ ☐ All tasks complete │
│ ☐ Full DoD checklist met │
│ ☐ Acceptance criteria verified │
│ ☐ Ready for demo │
│ │
│ SPRINT DONE: │
│ ─────────── │
│ Sprint increment potentially shippable │
│ ☐ All committed stories done │
│ ☐ No critical bugs │
│ ☐ Release notes updated │
│ ☐ Demo ready │
│ │
│ RELEASE DONE: │
│ ──────────── │
│ Ready for production │
│ ☐ All features done │
│ ☐ Performance tested │
│ ☐ Security reviewed │
│ ☐ Documentation complete │
│ ☐ Stakeholder sign-off │
│ ☐ Deployment plan ready │
│ │
│ EACH LEVEL BUILDS ON PREVIOUS │
└─────────────────────────────────────────────────────────────┘
Task Checklists
Embedded Checklists
TASK WITH DOD CHECKLIST:
┌─────────────────────────────────────────────────────────────┐
│ │
│ STORY-123: Add password reset functionality │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ ACCEPTANCE CRITERIA: ││
│ │ ☑ User can request reset from login page ││
│ │ ☑ Email sent with reset link ││
│ │ ☑ Link expires after 24 hours ││
│ │ ☑ User can set new password ││
│ │ ││
│ │ DEFINITION OF DONE: ││
│ │ ☑ Code reviewed by @senior-dev ││
│ │ ☑ Unit tests (coverage: 85%) ││
│ │ ☑ Integration tests passing ││
│ │ ☑ Manual testing completed ││
│ │ ☐ Deployed to staging ││
│ │ ☐ Verified on staging ││
│ │ ☐ PO approved ││
│ │ ││
│ │ STATUS: In Review (5/7 done) ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ CANNOT MOVE TO "DONE" UNTIL ALL CHECKED │
└─────────────────────────────────────────────────────────────┘
Type-Specific DoD
DOD BY WORK TYPE:
┌─────────────────────────────────────────────────────────────┐
│ │
│ FEATURE DoD: │
│ Standard DoD + : │
│ ☐ Feature flag created (if applicable) │
│ ☐ Analytics events added │
│ ☐ Accessibility verified │
│ ☐ Mobile responsive │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ BUG FIX DoD: │
│ Standard DoD + : │
│ ☐ Root cause identified and documented │
│ ☐ Test added to prevent regression │
│ ☐ Original reporter notified │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ API CHANGE DoD: │
│ Standard DoD + : │
│ ☐ API documentation updated │
│ ☐ Changelog entry added │
│ ☐ Backward compatibility verified (or breaking noted) │
│ ☐ Client teams notified if breaking │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ INFRASTRUCTURE DoD: │
│ Standard DoD + : │
│ ☐ Runbook updated │
│ ☐ Monitoring/alerting configured │
│ ☐ Rollback plan documented │
│ ☐ Cost impact reviewed │
└─────────────────────────────────────────────────────────────┘
Evolving DoD
Improving Definition
DOD EVOLUTION:
┌─────────────────────────────────────────────────────────────┐
│ │
│ DoD SHOULD EVOLVE WITH TEAM: │
│ │
│ STARTING TEAM (Minimal): │
│ ☐ Code written │
│ ☐ Tested manually │
│ ☐ Code reviewed │
│ ☐ Merged │
│ │
│ ↓ After 3 months, add: │
│ │
│ MATURING TEAM: │
│ ☐ Code written │
│ ☐ Unit tests passing │
│ ☐ Code reviewed │
│ ☐ Merged │
│ ☐ Deployed to staging │
│ ☐ QA verified │
│ │
│ ↓ After 6 months, add: │
│ │
│ MATURE TEAM: │
│ ☐ Code written (style guide followed) │
│ ☐ Unit + integration tests passing │
│ ☐ Code review approved │
│ ☐ Merged to main │
│ ☐ CI/CD pipeline green │
│ ☐ Deployed to staging │
│ ☐ QA verified │
│ ☐ Documentation updated │
│ ☐ PO accepted │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ RETRO QUESTION: │
│ "Is our DoD catching issues before production?" │
│ "What should we add or remove?" │
│ │
│ DON'T: Add everything at once │
│ DO: Incrementally add as team capacity grows │
└─────────────────────────────────────────────────────────────┘
Common Gaps
What Gets Missed
DOD ANTI-PATTERNS:
┌─────────────────────────────────────────────────────────────┐
│ │
│ "ALMOST DONE": │
│ ───────────── │
│ "Code is done, just needs testing" │
│ "Done except for code review" │
│ "Merged, but not deployed yet" │
│ │
│ FIX: None of these are done │
│ All DoD items must be complete │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ "DONE BUT...": │
│ ────────────── │
│ "Done but there's a small bug" │
│ "Done but tests are flaky" │
│ "Done but docs aren't updated" │
│ │
│ FIX: Not done, move back to In Progress │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ DOD SHORTCUTS: │
│ ───────────── │
│ "Let's skip code review for this one" │
│ "We'll add tests later" │
│ "Docs can wait until next sprint" │
│ │
│ FIX: DoD is non-negotiable │
│ If can't meet DoD, don't commit to story │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ INVISIBLE WORK: │
│ ────────────── │
│ Work not on the board │
│ "Just a quick fix" │
│ "It's too small to track" │
│ │
│ FIX: All work on board, all work meets DoD │
│ No invisible work │
└─────────────────────────────────────────────────────────────┘
Enforcing DoD
DOD ENFORCEMENT:
┌─────────────────────────────────────────────────────────────┐
│ │
│ WORKFLOW RULES: │
│ │
│ GitScrum can enforce: │
│ • Can't move to Done without checklist complete │
│ • Required fields before status change │
│ • Automated checks (CI passing, approvals) │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ PEER ACCOUNTABILITY: │
│ │
│ In standup: │
│ "Is STORY-123 actually done?" │
│ "Did we complete all DoD items?" │
│ │
│ In demo: │
│ "All stories shown meet our DoD" │
│ "Deployed to staging and verified" │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ DOD AUDIT (Monthly): │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ DOD-AUDIT: January Compliance Review ││
│ │ ││
│ │ Stories completed: 24 ││
│ │ Full DoD compliance: 22 (92%) ││
│ │ Partial compliance: 2 (8%) ││
│ │ ││
│ │ GAPS FOUND: ││
│ │ • STORY-145: Missing integration tests ││
│ │ • STORY-152: Docs not updated ││
│ │ ││
│ │ ACTION: ││
│ │ • Discuss in retro ││
│ │ • Add missing items ││
│ │ • Remind team of importance ││
│ └─────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────┘