What is the Definition of Done (DOD) in Agile?
The Definition of Done or short DoD is a specific type of working agreement. It captures the shared understanding of a team about what “done” means to them. The concept of the Definition of Done became popular through the Scrum framework.
The Scrum Guide states:
“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.”
Many teams consider their Definition of Done to be sort of a checklist to make sure they have covered all the necessary requirements before declaring that an item is done. This also means that the DoD ultimately represents a quality check for the team by the team.
What is the Definition of Done in SAFe or other scaling frameworks?
The Scaled Agile Framework or short SAFe does not have a specific description of a Definition of Done other than they acknowledge and promote its existence. SAFe ultimately consists of a larger number of Scrum/Agile teams thus it also promotes the basic principles of Scrum.
For every scaled approach to product development i.e. multiple teams working together on the same product, it is recommended that these teams run in a synchronized manner and share the essential pieces of a Definition of Done. Any team can add more items to their Definition of Done, but no team should deliver items that other teams do not consider as done.
Why is a Definition of Done important, which purposes does it serve?
The moment one starts working in a team, it is important to create a shared understanding around multiple things. Any team should be aligned on the vision/mission of that team. Any team should have co-created working agreements in place. And as part of the working agreements any team should be aligned on what “done” means to them.
This shared understanding of done enables different people working on different items but still delivering consistent quality and user experience. It also results in simplifying the onboarding process of new team members. Further, it makes cross-team collaboration in a scaled environment much easier. And finally, it ensures that the work of every team and its members complies with the requirements of the organization.
When is the Definition of Done created?
It is recommended that teams create their definitions of done as early as possible and at the latest prior to the first sprint planning. Without a shared understanding of what “done” means it is basically impossible to align on how much work a team can pull into a sprint.
If a team is not willing to create a Definition of Done prior to the first sprint planning they will realize during the sprint or at the latest in the sprint review that the quality they have been shipping is not consistent and most likely does not meet stakeholder expectations.
Who creates the Definition of Done in Scrum?
Multiple parties are involved in the creation of the Definition of Done. Ultimately it is the responsibility of the Scrum team to create this shared understanding. They should consider input from various stakeholders in order to meet their expectations.
What is typically included in the definition done?
A typical Definition of Done includes answers to the following questions:
- How do we ensure that we meet the business requirements?
- How do we ensure that we have a consistent quality?
As an example a Definition of Done could be this:
- All acceptance criteria are met
- All necessary tests have been successfully completed
- We have had multiple check the work
- All necessary documentation has been created
- The Product Owner has reviewed the work and is happy
Depending on the domain of work teams can have longer (more detailed) and sometimes shorter (high level) definitions of done. In most cases, a Definition of Done evolves over the course of a project and becomes more granular.
What is the difference between the Definition of Done and the Definition of Ready?
The Definition of Done refers to an item being fully developed i.e. finished. Contrary to that, the Definition of Ready describes the requirement of an item being good enough so that a team can start working on it.
Also, the Definition of Done is mentioned in the Scrum Framework, whereas the Definition of Ready is not. This is an artifact teams can add. There are – as usual – pros and cons of doing that.
What is the Definition of Ready in Scrum?
The Definition of Ready captures the shared understanding of the steps a team needs to take to ensure a requirement is well defined and a team can pull it into their next sprint.
Many teams use the INVEST acronym as their Definition of Ready:
- I = Independent… is the item independent or have considered dependencies in our prioritization process
- N = Negotiable… have we talked about the item
- V = Valuable… do have sense of the value we are creating for our users
- E = Estimable… can we estimate the effort that goes into delivering this item
- S = Sized appropriately… does it fit into our sprint or do we see options of making it smaller
- T = Testable… do we know what is expected from us i.e. have we captured/ documented the acceptance criteria
This is one of many ways to create a Definition of Ready. The most important aspects are that no item is being started to work on without the team having discussed it.
Why is the Definition of Ready important?
Similar to the Definition of Done, the Definition of Ready helps a team to work better together. It is important for a Product Owner to know what the team expects when they create a requirement. It is important for the team to know in which part of the process they can support the Product Owner to deliver better requirements.
When do you change the Definition of Done?
Both the Definition of Done and the Definition of Ready should be inspected and adapted regularly. Does this mean we refine them every sprint? No! But over time teams will realize that they should update their Definition of Done.
To give you a concrete example from one of our own projects. A few years back we started to build a job portal. Initially it was desktop only. We realized that 70% of our traffic was coming through mobile devices. So we spent a whole sprint to update all existing pages and make them mobile responsive. This requirement then moved into our Definition of Done, so that going forward everytime we built a new site we immediately built it mobile responsive.
What does the Scrum Guide 2020 mention about the Definition of Done?
Finally, we recommend you to read the Scrum Guide and especially the new Scrum Guide 2020 that will be published on November 18th. In the Scrum Guide they describe the most important aspects of the Definition of Done.
The Definition of Done is a formal description of the state of the Increment when it meets the quality measures required for the product. The moment a Product Backlog item meets the Definition of Done, an Increment is born.
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.
If the Definition of Done for an increment is part of the standards of the organization, all Scrum Teams must follow it as a minimum. If it is not an organizational standard, the Scrum Team must create a Definition of Done appropriate for the product.
The Developers are required to conform to the Definition of Done. If there are multiple Scrum Teams working together on a product, they must mutually define and comply with the same Definition of Done.
Scrum Master & Agile Coach Online Course
Improve your skills as a Scrum Master or Agile Coach with our online course.
Dive into the world of Agile and Scrum and learn how to better manage Agile teams with practical models and industry examples.
Get the online course