What is the difference between user story and acceptance criteria?
Definition of Done (DoD) is a list of requirements that a user story must adhere to for the team to call it complete. While the Acceptance Criteria of a User Story consist of set of Test Scenarios that are to be met to confirm that the software is working as expected.
The difference between these two is that the DoD is common for all the User Stories whereas the Acceptance Criteria is applicable to specific User Story. Acceptance Criteria of each User Story will be different based on the requirements of that User Story.
In other words, Both DoD and Acceptance Criteria must be met in order to complete the User Story. The Product Increment is not considered to be complete, unless both these two lists are done. Thus, we need to define two aspects of the Definition of Done (DOD) — Completion Criteria and Acceptance Criteria:
Definition of Done
The definition of Done is structured as a list of items, each one used to validate a Story or PBI, which exists to ensure that the Development Team agree about the quality of work they’re attempting to produce. It serves as a checklist that is used to check each Product Backlog Item (aka PBI) or User Story for completeness. Items in the definition of “Done” are intended to be applicable to all items in the Product Backlog, not just a single User Story. It can be summarized as following:
- The term applies more to the product increment as a whole
- In most cases, the term implies that the product increment is shippable
- The term is defined in the Scrum Guide
- Used as a way to communicate among the team members
- Overall Software Quality
- Whether the increment is shippable or not
The goals of Definition of Done
- Build a common understanding within the Team about Quality and Completeness
- Use as a checklist that User Stories (or PBIs) are checked against
- Ensure the increment shipped at the end of the Sprint has high quality and that the quality is well understood by all involved.
Example — Definition of Done
For example, in the software industry, teams may need to ask some of the following questions to come up with their DoD:
- Code peer reviewed?
- Code completed?
- Code reviewed?
- Code checked-in?
- Unit tests passed?
- Functional tests passed?
- Acceptance tests completed?
- Product Owner reviewed and accepted?
User stories are one of the primary development artifacts for Agile development, but Scrum doesn’t explicitly require either User Stories or Acceptance Criteria to be used. If a product backlog item is consider to be too big to be put into a sprint, will normally be broken down into user story and subsequently into a set of tasks as shown in the Figure:
User Stories encapsulate Acceptance Criteria, thus we often see the definition of done and acceptance criteria co-existing in our scrum development process. User story provides the context of the functionality the team should deliver. The acceptance criteria gives guidance about the details of said functionality and how the customer will accept them. The two of them together provide the whole deliverable.
Some of the Acceptance Criteria will be discovered in Ongoing Backlog Refinement events before the Sprint starts, and others will be discovered right after Sprint Planning when sit down to have a conversation about the user story in a small team. So Acceptance Criteria are attributes that are unique to the User Story or Product Backlog Item.
- The term applies to an individual PBI/Story
- The Acceptance Criteria are different for each PBI/Story
- Term is not defined in the Scrum Guide
- Used as a way to communicate to all involved that the requirements for a particular PBI/story have been met
- Aka Acceptance Tests, Conditions of Satisfaction, in some cases “Test Cases,” etc
The goals of Acceptance Criteria
- Clarify what the team should build before they start work
- Ensure everyone has a common understanding of the problem
- Help the team members know when the Story is complete
- Help verify the Story via automated tests.
Example — Acceptance Criteria
- A user cannot submit a form without completing all the mandatory fields
- Information from the form is stored in the registrations database
- Payment can be made via credit card
- An acknowledgment email is sent to the user after submitting the form
Example of User Story with Acceptance Criteria
The figure below shows an example of acceptance criteria of a user story.