Soren Learning

Chapter 2

Definition of Done

Listen to this article

Definition of Done

Understanding the "Definition of Done" (DoD) - The Key to Quality Management in Agile

In software development, "done" can mean entirely different things to different people: developers might think the work is finished when the code is complete, QA expects thorough testing, and product owners want documented, deployable software. This disconnect often creates confusion, leads to technical debt, and frustrates stakeholders who expect shippable software. This is exactly where the Definition of Done (DoD) comes into play.

What is the Definition of Done?

The Definition of Done is a shared checklist used by Agile teams that defines when a task, user story, or Increment meets the team's quality and completion standards. It includes all the criteria that must be satisfied before work can be marked as complete and considered ready for release or stakeholder review.

By using a shared DoD, Agile teams ensure that every work item meets the same baseline standard, which improves predictability, creates consistency across Sprints, and ensures that "completion" reflects real readiness.

DoD vs. Acceptance Criteria vs. Definition of Ready

Teams often confuse these three concepts, but keeping them separate is vital for improving execution quality and release confidence:

  • Acceptance Criteria: These focus on the functional success of a specific user story. They describe what a feature must achieve from a business or user perspective (e.g., a login feature requiring email validation and specific password rules).
  • Definition of Ready (DoR): This focuses on the readiness to start. It ensures a backlog item is clear enough (with acceptance criteria, an agreed estimate, and known dependencies) before the team begins development.
  • Definition of Done (DoD): This focuses on completion and release readiness. It outlines the quality standards required before the work is finished (e.g., code reviews, testing, and documentation updates).

3 Levels of the Definition of Done

A strong DoD operates at multiple levels to ensure that gaps don't emerge during handoffs and release preparation:

Story or Task-level DoD

Ensures that individual backlog items meet quality standards before moving forward. This includes functional completion, code/deliverable quality checks, testing, and updating documentation.

Sprint-level DoD

Focuses on the combined output of all work completed during the Sprint. It ensures that all committed stories are integrated and tested together, no critical defects remain, and the increment is ready for demonstration or deployment.

Release-level DoD

Applies when work is moving toward external deployment. This involves end-to-end validation, performance and security checks, preparation of release notes, and compliance/regulatory checks.

Common Mistakes Teams Make with DoD

Even with a DoD in place, teams can fall into several traps that undermine their delivery quality:

  • Confusing DoD with Acceptance Criteria: Treating these as the same thing means functional success might be validated, but essential quality checks are left incomplete.
  • Creating a checklist that is too long or vague: Excessively long checklists slow down execution, while vague criteria like "properly tested" create dangerous interpretation gaps.
  • Not making the DoD visible: A DoD cannot guide delivery if it is buried in documentation; it needs to be visible in the workflow and during Sprint events.
  • Skipping DoD under deadline pressure: Marking work as "complete" prematurely to hit deadlines creates short-term progress but introduces long-term technical debt and rework.
  • Failing to update the DoD: The DoD should be a living document that evolves as team processes, tools, and automation mature.