I'd like to clarify the relationship between two important concepts: a team's Definition of Done and the Conditions of Satisfaction (or Acceptance Criteria) for a user story. Let's start by reviewing each of these concepts.
The definition of done is an agreed-upon set of things that must be true before any product backlog item is considered complete. Let me say that a bit differently: every product backlog item for a particular product must satisfy the definition of done criteria to be considered potentially shippable.
Every team's definition of done will be slightly different, but a good starting point might be:
The developers (aka the development team) create the definition of done through a shared understanding of what it means to create a high-quality, shippable product in their context. The definition of done applies to all product increments the team creates and complies with organizational standards of quality. The definition of done may also contain additional elements that are unique to that product.
In contrast, conditions of satisfaction are specific to a given product backlog item and define what must be true for that particular product backlog item to be considered done.
Many people call conditions of satisfaction, acceptance criteria. And that's perfectly OK. I prefer to ask for conditions of satisfaction vs acceptance criteria for one reason: it makes more sense to product owners. And product owners are the people primarily responsible for creating conditions of satisfaction.
Product owners (and some programmers) consider writing acceptance criteria to be something specific that testers do. When I ask them to write the acceptance criteria for a user story, many product owners seem confused, saying they don't know how to write tests for code.
Product owners have a much easier time answering the question if I avoid the term acceptance criteria. So instead I ask them, what needs to be true in order for you to consider this particular story done? And we capture those as conditions of satisfaction.
To understand the difference between conditions of satisfaction and definition of done, it might be helpful to look at some examples. Consider a user story such as, "As a user, I am required to login before using the site." That user story might include these conditions of satisfaction:
For this example user story to be done, all of these conditions of satisfaction must be true and the team's definition of done must also be true.
Acceptance criteria and conditions of satisfaction (CoS) are two terms that mean almost the same thing. When it comes to product owners writing CoS for user stories, it's perfectly fine to call those conditions acceptance criteria. So acceptance criteria have the same relationship to definition of done as conditions of satisfaction do.
Think of the definition of done as a special set of acceptance criteria (aka conditions of satisfaction) that are added to every user story (product backlog item). For the user story above to be done, two things must be true. 1) All of the acceptance criteria (conditions of satisfaction) must be fulfilled, and 2) All of the items that make up the definition of done must be complete.
Because I like to write user stories on the front sides of index cards and the conditions of satisfaction (acceptance criteria) on the back sides, I tend to think of the definition of done as something I have written on a custom-made rubber stamp. I could then stamp each user story card with those items in addition to the hand-written acceptance criteria for this specific story.
Sign up below to receive this FREE reference.