Getty Images

Tip

Acceptance criteria vs. definition of done: What's the difference?

Software teams must understand the important distinction between acceptance criteria and definition of done and how to use them together to deliver a finished product.

The key difference between acceptance criteria and the definition of done is this: Acceptance criteria are unique to a specific user story or backlog item, while the definition of done applies universally to all.

Products are built by implementing one feature or piece of functionality at a time. In the Agile world, these incremental building blocks are often expressed as user stories and written out as backlog items. In theory, when every backlog item is implemented, product development is complete.

What are acceptance criteria?

Backlog items list requirements. User stories help define the user's need. Together, these form the acceptance requirements. In simple terms, acceptance criteria define what a feature is supposed to do or how a function is supposed to behave.

For example, a website might require a login form. Acceptance criteria for the backlog item that describes the registration form might list the following requirements:

  • A user enters a name, phone number and email address to create an account.
  • The user is sent a text message with a validation code.
  • The user must submit the validation code to fully enable their account.
  • Upon validation, the user is sent an email welcoming them to the site.

One could similarly conjure up acceptance criteria for publishing a blog post or submitting a survey. The acceptance criteria represent the core functionality that must exist so that the work meets the backlog item's requirements.

What is the definition of done?

However, just because a feature complies with all stated acceptance criteria doesn't necessarily mean it is done. Something is only considered done in the world of Agile and Scrum when it meets an organization's definition of done. This includes the completion of all the acceptance criteria a product backlog item defines, plus other metrics to be met to complete a user story.

For example, a team that builds enterprise software might include the following five stipulations as part of its definition of done:

  1. All user-facing content meets government-mandated accessibility standards.
  2. Test coverage exists for at least 80% of the codebase.
  3. All features include AI-assisted documentation that is peer-reviewed and verified.
  4. Static code analysis does not reveal any medium- or high-severity warnings.
  5. Code is reviewed and merged into the master branch by a senior developer.

Criteria listed in the definition of done are much more high-level than acceptance criteria and general enough to apply to any item in the product backlog.

Difference between the definition of done and acceptance criteria

Acceptance criteria define what a feature is supposed to do, while the definition of done indicates what is required for the feature to be considered ready for release.

While the term definition of done existed long before the release of the Scrum Guide, Scrum practitioners place special emphasis on it.

In Scrum, applications are built incrementally, with features added to the core product one completed backlog item at a time.

Incremental development in Scrum

When a backlog item meets the definition of done in Scrum, it is said to be a completed increment of work, and at this stage, a team can deliver and show it to the client.

However, just because an item meets the definition of done does not mean it is ready for deployment into production. It simply means it is ready for the client to review. If the increment meets with stakeholder approval, it can then be scheduled for deployment.

Alternatively, stakeholders may offer feedback during the sprint review. This leads to the creation of a new product backlog item, new acceptance criteria and a new round of work where developers implement the criteria while continuing to meet the definition of done.

Incremental delivery is a core aspect of Agile development, in which acceptance criteria and the definition of done work together to ensure consistent quality and ongoing customer satisfaction.

Darcy DeClute is a technical trainer and Agile coach who helps organizations apply Scrum-based principles to adopt a modern DevOps stack. She is a certified Professional Scrum Master, Professional Scrum Developer and Professional Scrum Product Owner, as well as author of Scrum Master Certification Guide.

Dig Deeper on Software development best practices and processes