GitScrum / Docs
All Best Practices

Definition of Done Checklists | Consistent Quality

Create Definition of Done checklists with GitScrum task templates and workflows. Enforce consistent quality standards, prevent incomplete work from shipping.

10 min read

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            β”‚β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”‚
β”‚                                                             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Related Solutions