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.