What is the Definition of Done in Agile?
The Definition of Done (DoD) is when an item meets a collection of criteria for it to be considered complete, or “done”. It is essentially a comprehensive checklist that the Scrum team must follow to create a shared understanding of what is required to make a product releasable.
The Scrum Guide describes it as the following:
“The Definition of Done creates transparency by providing everyone a shared understanding of what work was completed as part of the Increment. If a Product Backlog item does not meet the Definition of Done, it cannot be released or even presented at the Sprint Review. Instead, it returns to the Product Backlog for future consideration.”
To fully understand DoD it’s first important to understand the following two key elements of Agile project management:
- Product Backlog Item: This is individual items ranging from specifications and requirements, to use cases, bugs or time-boxed research tasks.
- Product Increment: This is a version or part of a product which will be delivered at the end of each Sprint. It combines all the Product Backlog Items completed during a Sprint.
In simple terms, once a Product Backlog item meets the Definition of Done, an Increment is born.
In this article, we’ll take a closer look at the Definition of Done, the benefits of using it and exactly what it looks like in practice.
Benefits of using Definition of Done
There are some key benefits of using the Definition of Done including:
- Transparency: Everyone in the team has a clear and shared understanding of what is considered “done”, meaning they know when work can be marked as complete. This also helps to eliminate any confusion and reduce disagreements.
- Inspection: The inspection stage is done by every team member throughout the Sprint, meaning any issues can be spotted early and addressed with speed. The product can also be shared with customers for testing and feedback purposes to ensure their requirements are being met.
- Adaptation: Following the inspection stage, improvements can be made to reach the Definition of Done. Continuous adaptations ensure better quality in the finished product.
DoD is an important element to Scrum to ensure a high performing team as it helps them to work together better. It is important for a Product Owner to understand what the team expects when they create a requirement. In turn, it is important for the team to understand which part of the process they can support the Product Owner to deliver better requirements.
Examples of Definition of Done
Typically Definition of Done answers the following two questions:
- How do we ensure that we meet the business requirements?
- How do we ensure that we have consistent quality?
In Agile project management, DoD is often used when Scrum teams are producing a software project. An example of this could be the launch of a new mobile app. In this instance, the Definition of Done could incorporate the following deliverables:
- Code has been written
- Code has been checked and reviewed
- Testing on mobile devices has been deployed
- Tests have passed
- Google has approved the app for accessibility
These deliverables would vary depending on the type of work and project that the team were working on.
Who is responsible for the Definition of Done?
There is no one single person or role who is responsible for the Definition of Done. It is the whole Scrum team’s responsibility to create a shared understanding and they should consider input from various stakeholders to meet their expectations.
In summary, DoD is important in understanding the acceptance criteria for an item of work. It acts as a comprehensive checklist of the necessary, value-added activities that are required before declaring that the item is complete. This also means that the DoD acts as a quality checklist for the team.
It is also important to remember that the Definition of Done can change over time. As organisations and teams evolve, their ability to remove impediments may enable more activities to be added to the DoD for items of work or Sprints. As with many concepts in Agile, it is important to embrace change.