Post

Definition of Done

In the world of project management and software development, the term “Definition of Done” (DoD) is often thrown around, but it’s not always fully understood. Put simply, the Definition of Done is a shared agreement between a team and its stakeholders about what a deliverable must meet to be considered truly finished. This concept helps ensure everyone is on the same page, avoiding misunderstandings and promoting accountability.

So, let’s break it down: What does “done” actually mean? And how does having a clear Definition of Done benefit teams and projects?


What is the Definition of Done?

At its core, the Definition of Done is a checklist of criteria that a task, feature, or project must satisfy before it can be considered complete. This can apply to anything from a piece of software code, to a project deliverable, or even a marketing campaign.

A good Definition of Done ensures quality and reduces the chances of rework by making expectations clear from the outset. In Agile frameworks, particularly in Scrum, the DoD is a fundamental principle, providing teams with a standard for consistent delivery. It answers key questions such as:

  • Has it been reviewed and tested?
  • Has it met all the requirements?
  • Is it documented where needed?
  • Has it been approved by stakeholders?

Without a clear DoD, projects often suffer from “scope creep”—where tasks linger in an ambiguous state, never quite finished, and needing endless tweaks or revisions.


Why Is It Important?

The Definition of Done is more than just a nice-to-have concept—it has real benefits for teams and projects:

  1. Consistency and Quality Assurance
    A solid DoD ensures that every deliverable meets a minimum standard of quality. This helps maintain consistency across work outputs, so the team isn’t releasing half-baked products into the wild.

  2. Clear Expectations
    Everyone involved in a project knows what’s expected. There’s no “Oh, I thought it was done” or “I didn’t realise we still had to do X.” Everyone—from developers to stakeholders—knows exactly when to sign off.

  3. Transparency and Accountability
    By defining “done,” you can hold team members accountable. No more vague deliverables or ongoing ‘almost there’ tasks that eat away at timelines. There’s a clear finish line.

  4. Reduced Risk of Rework
    A well-defined DoD forces teams to address all aspects of a task up front, meaning fewer surprises later. Proper documentation, testing, and feedback are considered before a task is deemed complete, reducing the likelihood of having to revisit it.


What Should a Good Definition of Done Include?

The exact criteria of a DoD will depend on the nature of your project and team. For instance, a software development team might have more technical criteria than a marketing team. But generally, a Definition of Done will cover these key areas:

  1. All Requirements Met
    Any task should meet the requirements or acceptance criteria laid out at the start. For example, a feature should do what it’s supposed to do, based on the user story or brief.

  2. Code/Work Reviewed and Approved
    For software development, this could mean the code has been peer-reviewed and passed quality checks. For non-technical work, it could mean that deliverables have been reviewed and approved by relevant stakeholders.

  3. Fully Tested
    Whether it’s QA tests, user acceptance tests, or simply checking over the final deliverable, all necessary testing must be completed before something is marked “done.”

  4. Documentation Completed
    Any required documentation—such as user guides, technical notes, or process docs—should be created and filed. This ensures that future users or team members can easily understand or use the finished product.

  5. No Outstanding Bugs or Issues
    For software, this means all critical bugs are resolved. For other projects, it could mean that any major issues or blockers are addressed, and no one is waiting for more work to fix something.

  6. Ready for Release/Delivery
    The task is not just “done” internally—it’s also ready to be deployed or delivered to customers or stakeholders.


Example: A Definition of Done for a Software Feature

Let’s say you’re working on a software feature to add a new payment option to an app. Your Definition of Done might look something like this:

  • All acceptance criteria in the user story are met.
  • Code has been peer-reviewed and merged into the main branch.
  • Unit tests have been written and passed.
  • Feature has passed QA testing with no critical bugs.
  • All relevant documentation has been updated (e.g., API documentation, release notes).
  • The feature is deployed in a staging environment for final user acceptance testing (UAT).
  • Ready for release in the production environment.

This kind of checklist keeps everyone focused and aligned, reducing any ambiguity about what needs to be done.


Definition of Done vs. Definition of Ready

A quick aside—it’s important to differentiate between the Definition of Done and the Definition of Ready. While the DoD focuses on what it means to finish a task, the Definition of Ready ensures that work is ready to begin. It typically answers questions like:

  • Is the task fully understood?
  • Are all resources in place?
  • Is the team clear on the requirements?

While both concepts are critical, the Definition of Ready kicks off a task, and the Definition of Done closes it off.


How to Create a Definition of Done for Your Team

If you’re setting up a Definition of Done for the first time, here are a few steps to get you going:

  1. Start With the Basics
    Focus on the essential steps that ensure a task is complete. What’s non-negotiable for your team or project? Make a list of those items.

  2. Involve the Whole Team
    The DoD should be a collaborative effort. Get input from all team members to ensure you’re covering all angles—development, testing, product management, etc.

  3. Iterate and Improve
    Like most things in Agile, your Definition of Done should evolve. Review it after a few sprints or deliverables, and refine it based on feedback.

  4. Keep It Measurable
    Avoid vague statements like “It looks good” or “It seems done.” Your DoD should be measurable. For instance, “QA testing has been completed with no critical bugs” is a clear, measurable criterion.


Conclusion

In any project, knowing when something is truly “done” is crucial for success. A well-defined Definition of Done provides clarity, improves quality, and ensures accountability across teams. Whether you’re working in Agile or another methodology, putting a solid DoD in place will reduce ambiguity, help you deliver on time, and—most importantly—avoid those annoying moments where someone says, “Wait, I thought this was done!”

So next time you’re kicking off a project or sprint, ask yourself and your team: “Do we all know what done looks like?”

This post is licensed under CC BY 4.0 by the author.