Definition of Done

The definition of done (DoD) is when all conditions, or acceptance criteria, that a software product must satisfy are met and ready to be accepted by a user, customer, team, or consuming system.

A definition of done can be written for a user story, task, or bug.

Why it’s important

The definition of done is a tool we use to ensure consistent, high-quality work; and help the team decide when we have finished a piece of work and can move on to the next thing. By defining the work in precise terms, we ensure we’re spending our time and money on delivering the highest value. It helps us avoid churn and keep the train moving. Every Truss project team should have an agreed upon definition of done that’s specific to the project.

Who uses it

  • Engineering uses it to ensure a certain level of code integrity or all tickets.
  • Product managers use it to ensure work meets user and/or business requirements. They also use it to align with the other practices on what gets built.
  • Finally, the client engagement and delivery managers can use it to ensure we’re delivering against contractual obligations.

How we do it

At Truss, we try to include the following items in any definition of done, whether it be for a user story-, task-, or bug-type ticket. Use these as a starting point, then add detail as needed for your project.

  • There’s alignment with success metrics.
  • Work matches the designs.
  • User acceptance tests pass.
  • Tests are written to project specifications.
  • Relevant documentation is complete.
  • Code has been peer-reviewed.
  • Code is released in production.

In drafting your definition of done, here are some helpful questions to consider:

  • When we are done with the work, what absolutely must be true?
  • Which of these things are like each other? What criteria can we consolidate?

Tips, things to consider

  • There might be definitions of done at the user story/task/bug level, and also at the project phase level.
  • The definition of done can be written as acceptance criteria in a user story.
  • It can be helpful to surface trade-offs when writing the definition of done.

Learn more


Terms and definitions

Done - we can move on to the next thing.

Tests - manual or automated methods used to validate that the thing produced will fulfill the requirements of the user/stakeholder

Acceptance - the user/stakeholder/etc’s defined needs/wants are fulfilled.

Documentation - any written material that is used by users or developers to understand the work item produced and how it fits into the larger picture.