As an Agile practitioner, it’s easy to get confused when one hears the terms Acceptance Criteria and Definition of Done. I am often being asked at times what’s the difference between the two? Can they be used interchangeably? Most of us get it wrong.
Let’s figure it out.
Definition of Done (DoD):
According to the Agile consultant Chris Belknap “The short answer is that the Definition of Done applies to the entire product Increment, and does not apply to a Product Backlog item (or Epic/Feature/Story). The Increment is the sum of all the Product Backlog items completed during a Sprint and the value of the increments of all previous Sprints.”
At the end of a Sprint, the new increment must be “Done,” which means it must be in usable condition and meet the “DoD”. The Definition of Done is usually created by the development organisation, if there is no “DoD” then the development team can create their own.
- No critical and major defects will be accepted
- Code should be peer-reviewed
- Code should be unit tested
- Code coverage percentage to be at least 75%
- NFRs like all web pages to load in under 5 seconds
- Code should run on both Windows and Mac machines
- Acceptance criteria met
- User documentation is complete
You won’t find anything about Acceptance Criteria in the Scrum Guide. Acceptance criteria, which are optional and a complimentary Scrum practice is taken from XP, may apply to the Product Backlog items and is in the context of the desired functionality of the Product Backlog items.
One can also say Acceptance Criteria is a set of predefined requirements that must be met in order to mark a user story complete. A sprint backlog can have multiple Acceptance Criteria as it is defined at a user story level.
Why should we have Acceptance Criteria?
- Defining the scope of a user story and reducing ambiguity
- Specify what exactly must be developed by the team
- Establishing testing criteria
- Sometimes to capture NFRs (reliability, availability, portability, scalability, usability, maintainability)
- The password must be no less than 8 and no greater than 12 characters
- It should contain at least one uppercase letter, one lower case letter
- Users can not submit the form without filling all mandatory fields
- Payment can be done via either of VISA or Mastercard
- Users should get an email when their account is created in the system
- Password field values should not be shown as plain text
The key difference between the definition of done and acceptance criteria is their scope. As you can see, both the definition of done and acceptance criteria are used to ascertain whether a particular product feature is complete or not. Think Definition of “Done” at the macro-level (increment), and Acceptance Criteria at the micro (user story) level.