In reference to the scrum agile framework, the definition of done (DoD) describes predefined demands a certain output must meet when being delivered. It is used to establish a common understanding of the product’s level of integrity to ensure quality. The nature of assignments typically varies and so may their requirements that need to be considered to conform to the DoD.
In scrum agile framework it is common to use descriptives such as epic, story, and feature to identify the character and the acceptance criteria of a task. Successfully performed definition of done (DoD) will facilitate a greater velocity of the delivery team.
The definition of done (DoD) is a solid and predefined set of requirements that need to be met in order for any output to be signed off as delivered.
Given the ever-changing nature of the agile methodology, it can be tough to understand what is meant by the definition of done in agile.
We use DoD to establish a common understanding of the product’s level of integrity to ensure quality and value is baked into it. It’s essentially a checklist that teams follow to help the product development process run smoothly while consistently producing high-quality products.
The definition of done is laid out like a checklist so teams can quickly and easily identify when a task has been completed. This also helps product managers to keep track of the project’s progress.
For a generic software project, the definition of done will look something like this:
Tests written and passing
Continuous integration build passing
Security vulnerability scan passing
Cross-browser testing done on current top 5 browsers according to analytics
Mobile testing done on current top 3 mobile devices according to analytics
Google accessibility check passed
Code peer-reviewed
Documentation updated
Acceptance criteria met
For a feature that will be part of the final product, a generic definition of done will look like this:
Acceptance criteria met
Integrated into a clean build
Promoted to higher level environment
Automated regression tests pass
Feature level functional tests passed
Non-Functional requirements met
Meets compliance requirements
Functionality documented in the necessary user documentation
For epics in agile, the DoD will look like this:
Non-functional requirements met
End-to-end integration completed
Regression tests pass
Promoted to production environment
Meets defined market expectations
It’s important to note that these are just generic examples. Your definition of done should be discussed as a team and will look different depending on how your team operates. The key is that tasks are clearly laid out and logged to help track overall project progress.
One of the most common areas where you’ll use a definition of done is when shipping a user story.
For a user story to be deemed “done”, you need to check off several items:
Unit test passed
Code reviewed
Acceptance criteria for each issue met
Functional tests passed
Non-functional requirements met
Product owner accepts the User Story
Only once all of these criteria are met will the user story meet the definition of done. However, the definition of done in user stories works a little differently. Each issue needs its own acceptance criteria that must be completed before it can be checked off the definition of done list.
Acceptance criteria are a set of targets that must be met to finalize and complete a user story. This is similar to DoD, but acceptance criteria are unique to the user story, feature, or issue.
Product managers are always walking a fine line during development. Stakeholders are looking for high-quality products but also at market conditions with a constant eye on what the competition is doing. If there’s a chance the business could fall behind, they’re going to start looking at speeding things up.
Unfortunately, high-speed development often comes at the detriment of quality. It’s up to the product manager to find the perfect balance based on the definition of done and the time and resources the team has at their disposal.
Using a Definition of Done approach can help product teams find the perfect balance between speed and quality. A defined list of criteria to meet before work can be completed sets out a clear and predictable path for progression. It allows teams to better plan their workloads and break tasks into manageable sections to ensure they deliver high-quality work on time.
Establishing the Definition of Done also helps teams work together more effectively. For example, teams can assign tasks during sprint planning with better knowledge of what needs to be completed and what is required to complete each task.
A Definition of Done approach can significantly increase communication between product managers and stakeholders. There’s far less ambiguity involved as everything is clearly laid out for all parties to understand.
DoD allows product teams to align expectations early in the development process. Giving stakeholders a concrete list of what tasks need to be completed and acceptance criteria to help prevent any misunderstandings. It will also help teams avoid disagreements about what they need to deliver at the end of a cycle.
Stakeholders will also be reassured early on that the delivered work will be of high quality. Quality expectations are included in the Definition of Done, meaning the work can’t be considered complete unless it hits an appropriate standard. This wipes out any quality concerns, as the stakeholders know just what to expect.
When it comes to development timescales, DoD helps product teams provide more accurate estimates to stakeholders. Knowing precisely what’s required makes planning easier, leading to better time, resource, and budget estimates.
The Definition of Done approach increases the likelihood of stakeholder satisfaction by setting expectations early on and facilitating clear communication throughout the project.