Topics of great debate: Mayonnaise vs. Miracle Whip and DoD vs. acceptance criteria. They’re related but distinct, as a deviled egg taste test will attest.
First, let’s look up the definitions of these two words to get our bearings about us.
The Definition of Done is a governing agreement that guides all developmental activities, clearly stating what is required for a piece of work to be categorically classified as “done.”
Mike Cohn defines acceptance criteria as basic criteria that can be used to determine if a story is fully implemented.
The definition of done (sometimes referred to in shorthand as DoD) is more about managing the overall process. We use acceptance criteria to confirm the team has built the correct functionality for a specific user story.
I love the famous burger with two all-beef patties, special sauce, lettuce, cheese, pickles, onions — on a sesame seed bun. Our family used to go on vacation every year when I was a kid. Being kids, we refused to eat anywhere except for the golden arches. Although my brother and I were programmed to get the obligatory meal that included a toy, my dad would always get a Big Mac®.
When I was younger, this option wasn’t available to me as my parents believed I wouldn’t like it because I was such a picky eater. It was also a pretty big sandwich for a tiny kid. My ability to eventually be big enough to order like my dad became a weird right of passage that I looked forward to. Years later, this is my default order. It may also be my dad’s favorite order, but after all those vacations where we only ate at this one fast-food chain, I suspect he doesn’t eat there very often.
Although it’s my favorite, I have one complaint: the waterfall of lettuce bits. I’ve never gotten through a burger without dropping lettuce on my shirt, and it never fails that at least one shred is covered in a glob of special sauce.
To rectify this flaw, I order it without lettuce. To accept my box o’ deliciousness, I must verify that it is lettuce free.
Regardless of the specific offering I select from this fast-food joint, a checklist applies to each item. I can’t say for sure everything that’s on this list, never having been employed by the franchise, but a couple of items come to mind:
Ensure the item is cooked (not raw)
Item is placed in a branded container or wrapper
This standard checklist applied to all items is the definition of done. A menu item isn’t done until it meets these expectations. The customization of my order (no lettuce) is my acceptance criteria for my particular order.
Like milk and cookies, each component provides a distinct value. Your process could include one part and not the other. But both together make for a better experience.
Both the DoD and acceptance criteria are lists of requirements that the team must complete to meet stakeholder expectations.
In the book [Agile Product Management with Scrum126, Roman Pichler recommends that Product Owners only accept stories that comply with the definition of done and fulfill the acceptance criteria. So these concepts go hand in hand, but they are not the same.
In both cases, the agile team should develop the list of items using a collaborative process. In the case of DoD, we will need to understand stakeholder expectations on quality and consistency and include them in developing the checklist, which the team will then apply to all user stories. For acceptance criteria, we must collaborate with the customer and ask the necessary questions to develop a shared understanding of the need and the value the change will provide.
The key difference in these terms is that the definition of done applies to all Product Backlog Items, but acceptance criteria apply only to a specific request.
I don’t ask the cashier to remove lettuce from all my sandwiches as I only take umbrage with the chaotic mess of shredded lettuce. If I ordered a different item with whole lettuce leaves, I wouldn’t bother to ask them to remove the greenery.
Similarly, my mother-in-law is a fan of this particular burger, but she doesn’t struggle with the lettuce. So, if I happened to be ordering on her behalf, I wouldn’t ask for the lettuce to be removed.
The acceptance criteria on a user story are similar to customizing an order. One order might need customization, but the next one may not.
The DoD is more process-focused. For each user story, we want to verify that the team performed code reviews, passed acceptance tests, and resolved glaring issues. There is a strong focus on quality control.
For whatever reason, I never conflated these two concepts. It might be because my first deep dive into Scrum was reading Kenneth Rubin’s Essential Scrum book. The book has a section describing the difference between these terms.
But, not every resource I’ve run across in the following years took the same care to differentiate these two concepts. In fact, the sheer number of resources I encountered that blurred these lines while researching for my Definition of Done blog post prompted me to write this article.
If my trusted sources are getting this wrong, I felt it was worth clarifying for myself and others who may find this post.
The PMI-ACP Workbook defines DoD in the following way:
“Defined acceptance criteria agreed upon through discussion with involved stakeholders.”
They go on to elaborate in a way that aligns more with acceptance criteria than it does the definition of done:
“The definition of done is an essential agile concept related to establishing a shared vision between the development team and the customer or product owner. To maximize the chances that their work will be accepted by the customer, the development team and the customer need to agree upon a definition of done before the work begins to make sure everyone has the same understanding of what “done” should look like.”
Even here, the concepts seem to blur. Your definition of done might be something you define before a team starts work if we’re discussing a newly formed group, and a Scrum team might even develop a DoD before they start work on a new product. But you’re not going to work with stakeholders to create or update your definition of done before you work on every individual work item.
You will, however, work with stakeholders to define the acceptance criteria for every Product Backlog Item before you start work. We want to know as much as possible about what we’re building as early as possible to ensure we implement the correct functionality.
The remainder of the section in the book aligns more with the DoD’s true purpose, but I can see how someone who’s only read this book would end up getting these two concepts conflated.
Another favorite resource of mine Head First Agile also described the definition of done oddly:
“That’s why teams have a definition of “Done” for every item or feature that they add to the backlog. Before an item can go into the Sprint Backlog, everyone on the team needs to understand and agree about exactly what it means for it to be not just done, but “Done” done.”
And also this passage:
“That’s why Sprint Planning only works when every item has a clear definition of “Done” that the whole team can agree on.”
My issue with these passages is that they imply the definition of done is unique to each Product Backlog Item, but that’s not the case. Your team will have one document that defines the DoD, which the team will consistently apply to all Product Backlog Items.
The trainer for my ICP-APO course also struggled to differentiate these two concepts. Due to his awkward explanation, I started to wonder if I had it wrong. I felt terrible for the other person taking the course with me because he was completely new to Agile, and the trainer never explained the similarities and differences clearly.
This section isn’t an attempt to throw shade at anyone. I simply wish to express that a lot of agile literature either gets this wrong or blurs the lines. I think it’s vital to ensure we’re using the terms correctly and not propagating confusion.
All quality deviled eggs share some commonalities. Hard-boiled egg whites are used as vessels to contain the whipped egg yolks, which are mixed with a base to make them smoother. These commonalities are like a definition of done. The things that must be true for us to say this qualify as a deviled egg and meets the expected standards.
Different folks like to make their deviled eggs with different ingredients. Some use Miracle Whip as a base, while other weirdos use Mayonnaise. Some choose to mix relish into the whip, and others decide to top the creation with paprika.
My preference and what I look for in an acceptable deviled egg is that the mixture is Miracle Whip & mustard based, with no other additives, and paprika free. This specification specific to me in this instance would be my acceptance criteria for a deviled egg. Your criteria may be different to meet your needs.