A student in a recent class asked, “What’s the difference between Acceptance Criteria and Definition of Done?” The student was surprised to learn that the Definition of Done is a required element of Scrum. Because their team wouldn’t put a Product Backlog Item into production until Acceptance Criteria were specified, they thought that was enough. The two concepts look similar, but they aren’t the same thing. Each has its own purpose.
Necessary vs. Complementary
Definition of Done is a required element of Scrum. A Definition of Done is the commitment the Scrum Team makes about the quality of its work. Without a Definition of Done, we don't have transparency about the state of the Increment. Without transparency, we can’t inspect and adapt toward a valuable product. Definition of Done applies to the Increment.
The moment a Product Backlog item meets the Definition of Done, an Increment is born. – The Scrum Guide
Acceptance Criteria (AC) are not required by Scrum. Using AC is a complementary practice. Many teams find them useful, but teams can and do get along without them. Acceptance Criteria are typically applied to user stories. You can create an Increment without meeting all Acceptance Criteria if the work meets the Definition of Done.
Quality vs. Scope
Definition of Done focuses on quality. When a Scrum Team says that a Product Backlog Item is done, they mean that it is “thoroughly verified” and usable. It integrates with all previous work—new features ought not break older features. Definition of Done reflects a team's confidence in the quality of its work.
Here are some examples items from a Definition of Done:
- Code must be reviewed and approved by at least one other team member.
- All automated tests must pass.
- Necessary documentation is complete.
That’s far from a comprehensive list, but you can see how they apply regardless of which PBI a team is working on.
Acceptance Criteria focus on scope. Acceptance Criteria reflect the way a feature is intended to work. AC help ensure that a feature is built in a way that meets the needs of the customer.
Here are some examples of Acceptance Criteria:
- The login feature must require a valid email address and password to access the system.
- The search feature must return results in batches of no greater than twenty-five items.
- The shopping cart must display the total cost including taxes and shipping before allowing the user to confirm the purchase.
These criteria apply to specific pieces of functionality, not everything a team might work on.
Non-negotiable vs. Negotiable
The Definition of Done is the team’s commitment to a minimum standard of quality. Any work that does not conform to a Team’s Definition of Done cannot be released or presented at Sprint Review. The team cannot decide to cut corners on quality.
On the other hand, a team is free to present or release work that does not fulfill all acceptance criteria. As long as the work meets the Definition of Done, the team is on solid ground.
Unless the team has created a trap for itself. Some teams include “meets all Acceptance Criteria” in their Definition of Done.
The good news is that AC can be negotiated during the Sprint as the team learns more. A Product Backlog Item that turns out to be bigger than expected might be split. Unfulfilled AC returns to the Product Backlog. The team completes the parts it can handle. It can refine the rest for selection into a future Sprint if it’s still valuable to do. That’s the way out of the “All AC met” trap. Of course, negotiating the AC makes that line in a Definition of Done meaningless. Why have it at all?
Remember: the scope of a Sprint can always be negotiated. We can remove PBIs from the Sprint if we need to. We can also add PBIs if it makes sense to do that. We can adjust the AC for any given PBI. Only the Sprint Goal remains the same, and the quality of an Increment is non-negotiable.
TL;DR
- Definition of Done is a fundamental, required part of Scrum. Acceptance Criteria are not required but may be used if the team finds them helpful.
- Definition of Done defines the quality standards for the product. Acceptance Criteria describe the scope of work to be done.
- Definition of Done cannot be negotiated down. Acceptance Criteria can be.
If a Scrum Team is using Acceptance Criteria but not the Definition of Done, they’re missing a critical component of Scrum. It’s like having a car that looks great but is missing its fuel filter. It may work for now, but eventually, you’re going to have problems keeping the thing running.
Are you facing a challenge creating and adhering to a Definition of Done? Leave a question or a comment below!