Skip to content
Figure 1A layered definition of done: story, sprint, release
A layered definition of done: story, sprint, releaseStorycode reviewed, unit tests pass, acceptance tests pass, exploratory session loggedSprintregression suite green, no open S1/S2, demo accepted, docs updatedReleaseperformance and security checks passed, release notes, rollback rehearsed
Three layers, each adding to the one before: a story is done when its items pass; a sprint is done when every story is done and the sprint items pass; a release adds the checks that only make sense for the whole.

Definition of done: layered checklists for story, sprint, release

A definition of done is the team's shared, checkable agreement about what finished means. It is the same for every story; acceptance criteria are different for each. Most teams have one written down. Far fewer have one that is enforced, and the gap between the two is where most escaped defects live.

Quick answer

A definition of done (DoD) is a fixed checklist every increment must satisfy before it is called complete, at three layers: story (reviewed, unit tested, acceptance tests pass, explored), sprint (regression green, no open severity 1 or 2 defects, demo accepted) and release (performance, security and rollback verified). It applies to all work; acceptance criteria apply to one story.

Key figures

Layers
story, sprint, release
Items per layer
5 to 10; under 25 in total
Workshop length
90 minutes
Audit sample
10 closed stories per sprint
Target compliance
above 90 percent, measured, published
Review cadence
every 3 to 4 sprints at the retrospective

What a definition of done is for

The definition of done exists so that done means the same thing on Monday as it did on Friday, for every story and for every person on the team. Without one, done means whatever the last person to touch the story thought it meant, and the undone work (the tests not written, the review not held, the migration not run) accumulates as invisible debt that appears at release time. The Scrum Guide makes the DoD a formal commitment for the increment; Lisa Crispin and Janet Gregory treat it as the place where the whole team's quality practices are written down. Both views agree on one thing: it is a checklist, and it is binary. An item is met or it is not. This is also where the tester stops being a gatekeeper, as described in the tester's role in agile teams: the checklist decides, not a person.

The story layer

Story-level items are the ones that can and should be true for every story before it moves to done on the board. Keep them to about eight. The testing items are spelled out rather than summarized as tested, because tested is exactly the word that hides undone work.

Story-level definition of done with the testing items spelled out. Every item has evidence somebody could check later.
ItemEvidenceWho confirms
Code reviewed by at least one other developerapproved review on the changereviewer
Unit tests written for new logic; suite greenpipeline run on the merged changepipeline
Acceptance examples automated and passingacceptance suite run against the story builddeveloper and tester
Exploratory session run and notes filedsession sheet linked from the storytester
No open defects of severity 1 or 2 on the storydefect tracker queryteam
Static analysis and security scan clean for touched codepipeline stagepipeline
Documentation and configuration updated where behavior changedlinked changedeveloper
Product owner has seen the working storycomment or demo note on the storyproduct owner

The sprint layer

Sprint-level items apply to the increment as a whole at the end of the sprint. They are the checks that are wasteful to run per story but essential per sprint.

Sprint-level definition of done. These items check the increment, not individual stories.
ItemEvidenceWhy it sits at sprint level
Full regression suite green on the integrated buildpipeline run on the sprint buildtoo slow per story; essential before the increment is offered
No open severity 1 or 2 defects anywhere in the incrementdefect tracker querya story can be done while another story broke it
Flaky checks below 1 percent of runs, or quarantined with an ownerpipeline flakiness reporta suite nobody trusts is not a regression suite
Integration with dependent teams' builds verifiedintegrated environment runcross-team breakage appears only when everything runs together
Sprint review held and the increment accepted by the product ownerreview notesthe customer view of done
Test environment and test data reset to a known stateenvironment logthe next sprint starts clean

The release layer

Release-level items are the ones that make sense only for the whole product going to real users. Several of them are the province of the test strategy rather than the sprint.

Release-level definition of done. Items here are expensive and are run once per release, not once per sprint.
ItemEvidenceTypical threshold
Performance test on a production-like environment within budgetperformance reportp95 response within target at expected peak load
Security testing completed for the release scopescan and test reportno open high or critical findings
Accessibility checks passed for changed screensaudit checklistagreed conformance level
Rollback rehearsed on stagingrehearsal logrollback completes within the agreed window
Monitoring and alerts in place for new featuresdashboard and alert configurationeach new endpoint has a health signal
Release notes and support documentation publishedpublished artifactssupport team briefed

Definition of done versus acceptance criteria

The two are complementary. Acceptance criteria say what the story must do; the definition of done says what the team must do to any story. Acceptance criteria are covered in <a href="/agile-testing/acceptance-test-driven-development/">acceptance test driven development</a>.
AspectDefinition of doneAcceptance criteria
Scopeevery story, sprint and releaseone story
Who writes itthe team, in a workshop, revised at retrospectivesproduct owner with the three amigos, per story
What it answersis the work finished to our standarddoes this story do what was asked
Changesrarely; every few sprintsevery story is different
Typical itemexploratory session run and notes fileda member with a coupon at 250.00 gets 50.00 off
Failure if missinghidden undone work, release surprisesthe wrong feature built correctly

How to write one in a 90 minute workshop

  1. Gather the whole team (10 minutes). Developers, testers, product owner, and whoever runs operations for you. Explain the purpose: a checklist we will actually enforce, not a statement of values.
  2. List what done currently means (15 minutes). Everyone writes, silently, the things they check before calling a story done. Cluster the notes. The gaps between people's lists are the reason you are in the room.
  3. Sort into layers (15 minutes). Story, sprint or release. If an item is expensive per story, push it up a layer rather than dropping it.
  4. Make every item checkable (25 minutes). For each item, name the evidence and who confirms it. Rewrite any item that cannot produce evidence. Tested becomes unit tests green, acceptance examples pass, exploratory session filed.
  5. Cut to what you will enforce today (15 minutes). Items the team cannot meet this sprint go on a separate list labeled aspirations, with a date. The DoD contains only what is enforced now. Aim for under 25 items in total.
  6. Agree the audit (10 minutes). Who samples closed stories, how many, how often, and where the compliance number is published.

How to audit compliance

Each sprint, someone who did not work on the stories (rotating, or the test lead) samples 10 closed stories and checks each DoD item for evidence. Score the sprint as the percentage of item-checks that had evidence. Publish the number next to velocity. Below 90 percent, discuss at the retrospective: was the item unrealistic, was the evidence hard to produce, or was the team under pressure and skipping it? Each answer has a different fix. Track the number over time; a DoD that is met 95 percent of the time for three months is ready for a new item from the aspirations list. Pair the audit with escaped defect counts: when a class of production defect keeps appearing, the DoD is missing an item that would have caught it. That loop, from escaped defect to new checklist item to measured compliance, is the mechanism that makes continuous testing actually continuous.

The enforcement test

Pick a story that closed last week. Can you produce evidence for every DoD item in five minutes? If not, the DoD is aspirational, and the team should either shorten it to what it does or start doing what it says.

Common mistakes

  • The aspirational DoD. Forty items copied from a book, of which twelve are practiced. Everyone knows which twelve, so the document has no authority. Shorten it to the twelve and add items only as they are actually adopted.
  • The unenforced DoD. Written once, framed on a wall, never audited. Without a sampled compliance number it decays within two sprints.
  • DoD as acceptance criteria. Story-specific items (the report exports to CSV) in the DoD, or DoD items (code reviewed) repeated in every story's acceptance criteria. Keep the generic and the specific apart.
  • Changing it mid-sprint. The DoD is a commitment for the sprint. Change it at the retrospective, and apply changes from the next sprint.
  • Vague items. Tested, documented, secure. Each hides the work it names. Replace with the evidence-producing version.
  • Dropping the sprint and release layers. A story-only DoD leaves the regression suite, performance and rollback to chance. They are where release-day surprises come from.

Common questions

What is the difference between definition of done and acceptance criteria?

The definition of done is one checklist that applies to every story, sprint and release, written by the team. Acceptance criteria describe what one particular story must do, written per story with the product owner. A story is complete when both are satisfied.

How many items should a definition of done have?

Five to ten per layer and under 25 in total. More than that and the team stops reading it. If you have more candidates, keep the rest on an aspirations list and promote them one at a time as they become routine.

Who owns the definition of done?

The development team, including its testers, with the product owner's agreement on the items that affect the customer. In organizations with several teams, the program may set minimum items that every team's DoD must include; teams add their own on top.

Can a story be done if the exploratory session found bugs?

Yes, if the bugs are fixed or are below the severity threshold the DoD names and have been logged with the product owner's agreement. Done does not mean defect-free; it means the agreed checks were run and the agreed thresholds are met.

How often should we revise the definition of done?

Review it at every third or fourth retrospective, and whenever a class of escaped defect shows the checklist missed something. Apply changes from the start of the next sprint, never in the middle of one.

What do we do with stories that do not meet the DoD at sprint end?

They are not done. They return to the backlog, are re-estimated for the remaining work, and are not counted in the sprint's delivered work. Partial credit is how undone work becomes invisible.

Sources

  1. The Scrum Guide, Schwaber and Sutherland
  2. Principles behind the Agile Manifesto
  3. Lisa Crispin and Janet Gregory, Agile Testing and More Agile Testing

Further reading named in the text

  • Mike Cohn, Succeeding with Agile: Software Development Using Scrum (Addison-Wesley, 2009)
  • Gojko Adzic and David Evans, Fifty Quick Ideas to Improve Your User Stories (Neuri, 2014)

This guide is part of the agile testing hub. It is best read alongside acceptance test driven development and agile program management, which cover the neighbouring questions.