A “whatsapp” group discussion triggered this post and I was amazed to see that most people who are new to Scrum often find it difficult to distinguish between “Acceptance Criteria” and “Definition of Done”.
Here’s my attempt to bring out the differences.
“Acceptance Criteria” is all about intended functionality; “DoD” may include many other things like quality aspects, security, performance or other non-functional requirements.
Let’s explore the long answer.
Acceptance Criteria: The most common way to describe any requirement in the Agile world is to write a User story. A user story specifies minimal but sufficient information so that the development team can start a discussion with PO (stakeholders, business owners). During the conversation the development team gets doubts clarified and gets confirmation from the PO as to when the PBI would be termed as complete and can be accepted.
These confirmations that create a shared understanding about the PO expectations and the intended functionality for any given PBI is known as the acceptance criteria.
Definition of Done: This is more of a checklist often created by the development team to ensure that the work is complete. Complete means, there is no more work remaining on the increment and it is potentially releasable. This is a testament that the increment has no more pending work associated with it and it runs without any errors.
|Acceptance Criteria||Definition of Done|
|Functional behaviour of the PBI||Includes non-functional requirements|
|Specific to the given PBI||Applies to the entire “Increment” as well|
|“What” the feature is supposed to do?||“How” to create the feature?|
|This comes from User Stories, an XP practice. Scrum doesn’t have any specific say about it.||This is defined in Scrum as an important aspect that helps in creating transparency.|