Acceptance Criteria Vs Definition of Done

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?

Let’s try to figure it out.

Definition of “Done”:

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.

Examples:

  • No Critical and High defect will be accepted
  • Code should be peer reviewed
  • Code should be unit tested
  • Code coverage percentage to be at least 75%
  • All web pages to load in under 5 seconds
  • Code should run on both Windows and Mac machines.

Acceptance Criteria:

You won’t find anything about Acceptance Criteria in the Scrum Guide.  Acceptance criteria, which is optional and a complimentary Scrum practice taken from XP, may apply to the Product Backlog items, and is in the context to 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.

Goals of having an Acceptance Criteria:

  • Defining 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)

Examples:

  • 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
  • User can not submit the form without filling all mandatory fields
  • Payment can be done via either of VISA or Mastercard
  • User should get an email when his/her account is created in the system

Conclusion:

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.