Piyush Rahate
A passionate Lean-Agile Coach with over 19 years of varied experience, I work with professionals, t... Read more
A passionate Lean-Agile Coach with over 19 years of varied experience, I work with professionals, t... Read more
As a Professional Scrum Trainer and a Scrum Master, I often get this question - What is the difference between the Definition of Done and Acceptance Criteria? Though the question might sound very simple to some, it still exists, appears now and then on many platforms, and at times is a point of discussion.
Let me start with a short and smart answer that was once shared with me by a fellow PST, and then I will dive into some more explanation on each term.
Short Answer
Definition of Done is about building the product "right," and Acceptance Criteria is about developing the "right" product.
Long Answer
Let us explore what it means to build the product "right" and develop the "right" product. Product Development (software or otherwise) is a process of value creation. However, the value is only realized when the product is made available to end-users. How do we know that the product we are creating is good enough to be made available to end-users? It is where the concept of Acceptance Criteria and Definition of Done become decisive factors.
The concept of Acceptance Criteria comes along with User Stories from Extreme Programming. Typically, a User Story is a short 3 line description expressing a requirement from the customer's perspective.
For any additional details, the Developers would collaborate with the business (customer) and understand more. During such a conversation, they (developers and customers) agree upon the requirement's acceptable behavior. This agreed-upon confirmation of the requirements behavior is termed as Acceptance Criteria.
A User Story is deemed complete if it satisfies the acceptance criteria stated for the functionality's behavior. There could be one or more Acceptance Criteria for any user story.
Example of a User Story:
As a consumer
I want to add products to my cart.
So that I can purchase them
How do we know that this User Story is acceptable to businesses? Probably, the simplest thing to do here is to display the product in the shopping cart after it's added.
But that alone may not be enough to meet the business needs fully. The acceptance criteria could just verify the item shown in the cart. However, more criteria may be needed.
The developers and customers can work together to identify other conditions to satisfy the user story.
By collaborating, they can define all the necessary acceptance criteria. This helps ensure the user story aligns with business expectations before it's considered complete.
For examples:
Acceptance Criteria:
Added products are visible in the customer cart.
The cart value is updated to show the sum of all products added.
Customers can now check out the products.
The link to removing the product is activated on the cart.
The link to change the quantity of the product is activated on the cart.
Developers can now use these Acceptance Criteria to write their automated Acceptance Tests, which would validate the requirement's behavior.
But is this enough to release the product to end-users? How do we know that this newly created functionality will not break any existing functionality or make the product vulnerable to security threats, or will not bring down its performance?
meeting acceptance criteria alone doesn't mean the story is ready for release. Other checks are needed to prevent regressions, security issues, or performance problems. This is where the "definition of done" comes in - it expands on acceptance criteria to fully confirm releasability.
Explore the role of a Scrum Master in ensuring adherence to the Definition of Done. Learn how they facilitate the team's understanding and commitment to quality standards.
Discover Scrum MasteryDefinition of Done helps determine the "DONENESS" of product increment that we develop during an iteration or a sprint as a team. It helps us make explicit the quality of our product increment.
If a product increment does not meet Done's Definition, it is not ready for release to end users. This is because it lacks sufficient quality. Testing is essential for ensuring quality. Therefore, completing all required testing should be part of the definition of done.
A typical Definition of Done may look like a checklist about the quality of the product.
Example
Code is reviewed.
Code is manually tested in dev and test environments.
All code is integrated frequently.
Integration testing is performed.
SonarQube check is run to determine the code metrics
Refactoring is done.
And for teams that are just starting, it can be elementary and minimalistic, for example:
All acceptance criteria are met.
Testing is done.
However, launching a product increment to the end users often involves more than just code quality. Other aspects need to be considered as well before a release.
For example, in highly regulated domains like finance or healthcare, meeting compliance and regulatory requirements is essential. These must be part of the definition of done.
Thus, the Definition of Done includes aspects of code quality and has to include all the aspects of product quality. An example of such a Definition of Done could look like:
All acceptance criteria are met (product quality).
All acceptance tests are automated (code quality).
Release notes are made available (product quality-compliance need).
Developers follow a test-driven approach to development (code quality).
Code reviews are done (code quality).
With every commit, SonarQube gets executed (code quality).
With every commit, an automated build gets executed (code quality).
User documentation gets created (product quality).
The color guide (product quality) is followed.
Font family and font size consistency to be maintained (product quality).
The Definition of Done is established upfront, before development starts, and remains consistent over the course of the project. The product owner and team align on the definition of done early on and revisit it periodically to keep it current.
On the other hand, acceptance criteria are created collaboratively for each user story during iteration planning sessions and backlog refinement. The product owner and team discuss and agree on acceptance criteria when detailing out stories to prepare for upcoming sprints.
The acceptance criteria are recorded directly with each user story, rather than in a separate overarching document. They may evolve iteratively as more is learned about how to satisfy the user story.
The Definition of Done and acceptance criteria are similar in some aspects but serve different purposes:
Similarities:
Both define conditions for work to be considered complete
They promote alignment on quality standards
They enable validation through testing
They drive collaboration in defining done criteria
They create transparency into progress
Differences:
The Definition of Done is overarching, applying to all work
Acceptance criteria are specific to individual user stories
The Definition of Done is defined upfront and stable
Acceptance criteria are created just in time per story
The Definition of Done focuses on high-level quality standards
Acceptance criteria define detailed functional behaviors
So, although both of them serve different purposes, they complement each other to provide complete and high-quality work.
The definition of done and acceptance criteria are different, but they are used for complementary purposes. The Definition of Done provides overarching standards for completeness and quality that apply broadly across all work. Acceptance criteria offer detailed specifications that are unique to each user story.
By differentiating between these two artifacts, teams can ensure holistic criteria for high-quality done work from both macro and micro vantage points. Leveraging both in tandem enables organizations to deliver high-value increments with maximum alignment, transparency, compliance, and quality baked in at multiple levels.
Typically, the Product Owner is responsible for writing the acceptance criteria. However, using a collaborative approach, Acceptance criteria can be written during refinement or planning sessions with the Product Owner, Development Team, and other stakeholders.
The Definition of Done can be defined by the whole development team, as they are responsible for the product increment. However, the Product Owner has the final say over its content and changes.
The main purposes of the acceptance criteria is to define scope and requirements, help in estimation, enable testing/QA, reduce miscommunication, support collaboration, and manage scope creep.
Some of the main purposes of having a Definition of Done in agile software development are establishing a shared understanding, setting quality standards, reducing uncertainty, and framing releasable increments.
A passionate Lean-Agile Coach with over 19 years of varied experience, I work with professionals, teams and organizations helping them in their pursuit of agility. Being a Professional Scrum Trainer (Scrum.org), SPC (5.0, Scaled Agile), and ICAgile Authorized Instructor.
WhatsApp UsGot a wonderful PO training from trainer Sumeet Madan from Agilemania. it was so innovative, interactive, lively, jolly,...
Had a really insightful training with Preeth Pandalay. This session helped me a lot in cracking the exam. His real time ...
I had the opportunity to attend Sumeet's PSPO training, and it was an exceptional experience. Sumeet's teaching methods ...
Recently i had enrolled with Agilemania for getting my Professional Scrum master (PSM1) training and certification. I wa...
The classes are very visually informative and activity based to get a better understanding of the content before going i...
We will get back to you soon!
For a detailed enquiry, please write to us at connect@agilemania.com
We will get back to you soon!
For a detailed enquiry, please write to us at connect@agilemania.com