Definition of Done Checklist | Quality Criteria
Know when work is truly complete, not just coded. GitScrum's task checklists and workflow rules ensure consistent quality and prevent incomplete work.
8 min read
"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 ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ