A Singapore Government Agency Website

Definition of Done

The Definition of Done (DoD) is a shared agreement within the team that defines the set of criteria that must be met for a product increment (such as a user story or feature) to be considered complete. It ensures transparency, alignment, and consistent quality across the team.

Why the Definition of Done Matters

When we say a piece of delivery work (like a User Story) is done, we want to consider it able to be released to production. This lets us stop thinking about it for now and move on to the next cycle of development, picking up the next User Story and building on top of this work.

Without a clear DoD, different team members may have different interpretations of what “done” means—leading to misunderstandings, incomplete work, and potentially buggy or unusable software reaching production.

A well-defined DoD:

  • Ensures consistency across deliverables
  • Promotes shared understanding of quality
  • Prevents rework by clarifying expectations upfront
  • Enables reliable forecasting and velocity measurement
  • Acts as a quality gate for releases

Common Elements in a Definition of Done

While the exact definition of done will be agreed upon by the team, baseline criteria for a User Story would be:

  • Code is written, reviewed, and merged into the main branch
  • Automated tests are written and pass
  • Acceptance criteria in the User Story are met (as evidenced by passing BDD tests)
  • Any relevant documentation is updated (architecture decisions, user docs, etc.)
  • A successful CI pipeline run has completed, with all checks passing to the team’s agreed level of quality, including:
    • Automated tests, with sufficient code coverage
    • Code quality linting
    • Security scanning, with no new vulnerabilities above the agreed threshold
  • Code is deployed to a User Acceptance Testing environment
  • Product owner has reviewed and accepted the story, based on the Acceptance Criteria

Quality Metric: Work done over time
The number of story points of user value that meets our definition of done per iteration

Quality Metric: Story acceptance rate
The percentage of stories that meet the definition of done, out of all those delivered to the Product Owner for acceptance

Some teams also include other criteria, based on their priorities:

  • Performance checks
  • Accessibility compliance
  • Telemetry or logging instrumentation
  • Monitoring and alerting updates
  • Business validation criteria

The Definition of Done can evolve over time as the team’s practices mature.

DoD vs Acceptance Criteria

  • Acceptance Criteria: Specific to each user story; they define the expected behavior from a user’s perspective.
  • Definition of Done: A general, repeatable checklist applied to all work items; it defines the team’s standard for completeness.

Acceptance Criteria introduced in one User Story may be repeated and end up being needed for every piece of work going forward. If the team is aligned, these common criteria can stop being added to every user story, and become part of the Definition of Done.

Definition of Done Across the Development Cycle

As well as an overall definition of when a piece of work is finished, each stage of the development cycle has its own criteria that its output has to meet to conform to the team’s standards, and move to the next stage.

Some examples of a definition of done at other stages:

  • Story writing - a User Story has everything developers need to implement it, including clear Acceptance Criteria and any UI assets.

  • Starting development - the story has been estimated and prioritised in the backlog, and the team has discussed and asked any clarifying questions.

Team Alignment and Transparency

The DoD is most valuable when it’s visible and agreed upon by the whole team. It should be:

  • Documented and easily accessible (e.g., in the team wiki or project board)
  • Reviewed regularly during retrospectives or process reviews
  • Applied consistently across all backlog items

Workflow

The team’s work tracking tool should have a workflow for identifying a backlog item as done, according to the team’s definition.

SHIP-HATS JIRA templates have our preferred workflow baked in, and include our definition of Done.

Chat with me!
Bot Launcher