At a recent class, a new Scrum Master asked me for a simple example of a Definition of Done. They also wanted to understand how it differed from the concept of acceptance criteria. This post captures my answer to them and I hope it will help simplify this concept for you. First some explanations of what these terms mean.
Acceptance criteria are an optional but commonly used complementary practice to Scrum. They are a set of statements that describes the conditions that work must satisfy in order to be accepted by a user, customer, or other stakeholder. Acceptance criteria increase transparency around what is required to complete a piece of work to someone's satisfaction.
The Definition of Done is part of Scrum. It is a commitment to the Increment and provides a formal description of the state of the Increment when it meets the quality measures required for the product. The Definition of Done increases transparency by providing a shared understanding of what work was completed to a minimum level of quality. And now for that simple example:
We run a Bakery. Our product is baked goods sold in our shop to passing customers. We have 2 items to create that are currently in our Product Backlog. They have acceptance criteria defined to help us understand aspects of the work that needs to be carried out. Here they are:
Product Backlog item 1 - Baguettes
- At least 18 inches long and 2 inches in diameter.
- Cooked for 20 minutes at 220 degrees.
- Golden brown all over after cooking.
Product Backlog item 2 - Iced Buns
- At least 5 inches long and 3 inches high.
- Cooked for 15 minutes at 200 degrees.
- Icing covers at least 80% of the top of the bun and it has a Cherry on top
Acceptance criteria are at the micro-level and are unique and specific to each Product Backlog item. The criteria here ensure we have understood the work for each item and that we have met someone's needs with the completed work.
Our Definition of Done would apply to both of these items before they could be considered part of an Increment that we would put on sale to customers. Here it is:
Definition of Done:
- All ingredients used were fresh.
- The kitchen was clean at the time of preparation.
- The product has been visually inspected after cooking and is attractive and defect-free.
- 1 product in each batch has passed a taste test before the batch is put on sale.
The Definition of Done is at the macro level and is applied to all Product Backlog items before they can be considered part of an Increment. The criteria here ensure a known level of quality has been reached, regardless of what specific work was carried out.
In this example, we can see that it would not make sense to give a product to a customer that did not meet our Definition of Done. An inferior product could mean we lose the customer, hurt the customer or get our Bakery closed down. Making quality criteria transparent and applying them to all our product Increments helps ensure this does not happen.
Unfortunately when people create less tangible products like software, quality is harder to inspect and so people are more likely to overlook it. Scrum’s Definition of Done is intended to prevent this from happening.