What Is Definition of Done?
Definition of Done (DoD) is a shared checklist that a team uses to determine when a work item is truly complete. It defines the minimum quality bar that every user story, task, or feature must meet before it can be considered shippable. Unlike acceptance criteria, which are specific to individual stories, the DoD applies uniformly across all work the team delivers.
Why Definition of Done matters
Without a DoD, “done” means different things to different people. An engineer might call a feature done when the code compiles. A PM might expect it to be deployed and documented. This gap creates friction during sprint reviews when the team discovers that “done” items still need testing, documentation, or deployment work.
A clear DoD eliminates this ambiguity. It makes sprint velocity meaningful because every completed point represents the same level of thoroughness. It also prevents technical debt from accumulating silently: if the DoD includes automated tests, untested code cannot be marked as done.
How to write a Definition of Done
A good DoD is a checklist of concrete, verifiable conditions. Here is an example that many product teams start with and adapt:
- Code reviewed and approved by at least one other engineer
- Unit tests written and passing
- Deployed to staging environment
- All acceptance criteria verified
- No critical or high-severity bugs open
- Documentation updated if user-facing behavior changed
Common mistakes
- Making the DoD so long that nothing ever meets all conditions.
- Ignoring the DoD under deadline pressure and marking items done anyway.
- Having a DoD that only covers engineering (code, tests) but not product (documentation, analytics).
- Never revisiting the DoD as the team and product mature.
Related terms
- Acceptance Criteria
Story-specific conditions that complement the team-wide DoD
- Scrum
The agile framework where DoD is a core concept
- Sprint Review
The ceremony where completed items are demonstrated against the DoD
How Vantage helps
Vantage runs compliance checks at the requirements stage, catching gaps in acceptance criteria and coverage before engineering begins. When tickets sync back from Linear or Jira, Vantage tracks whether each requirement has been fulfilled, giving PMs visibility into what is truly done versus what is merely coded.