What is a definition of done?
When I ask agile teams, “Where is your DoD?” they sometimes look at me like a deer in the headlights. Definition of Done (DoD) and acceptance criteria list are important concepts in agile, specifically scrum. They are the contract that binds what the Product Owner (PO) wants to what the Development Team delivers.
A Definition of Done is a clear and concise list of requirements that software must adhere to for the team to call it complete. While the DoD usually applies to all items in the backlog, acceptance criteria are applicable to a specific user story. In order to complete the story, both the DoD and acceptance criteria must be met.
8 steps to a definition of done in Jira
Putting a DoD on paper is simple. The difficulty often lies in having the development team actually respect the contract. So what can a scrum team do to ensure that the DoD and acceptance criteria are respected? Start by embedding them in the team’s natural workflow. And if the development team is using Jira, embed them directly on to Jira tickets! Here’s how.
1. Create a DoD in Jira
The best way to have a DoD inside Jira is to use a Custom Field. You can use the standard text field or checkboxes, but both have drawbacks–for example, text fields do not show which items are complete and checkboxes are only visible in edit mode. We built the Checklist custom field to better support DoD.
2. Break it down
Definitions of done correspond to different parts of the development process: technical tasks, user stories, and bugs. For example, a project could have this DoD:
- Code builds without warnings (technical task)
- Code unit tested (technical task)
- Documentation updated (user story)
- Build pushed to demo server (user story)
Since custom fields can have context based on issue types, the most efficient way of achieving this segregation is to create one DoD for technical tasks and one DoD for user stories. This way, the DoD adapts to the development workflow, rather than vice versa.
3. Make it Global
By using custom field options, you can create DoD Items that are applicable to any issue: old or new. Moreover, modifying, adding or removing an option is immediately reflected in all your Jira issues.
4. Manage it over time
The DoD is a contract between the product owner and the team, so it’s tempting to want to fit as many items in the DoD as possible in order to ensure the quality of the product. But this can backfire. When teams are confronted with too many DoD items, they either work only on a subset or try and fail to do all of them, eliminating the value of establishing the DoD in the first place.
A Definition of Done is a live document that should be reviewed regularly. As your dev team strives to improve, you can make your practices more stringent over time. Rather than deleting or modifying options, simply disable them. Disabling an option will keep the option in Jira but prevents it from appearing on issues. This allows you to keep a record of your DoD over time. And if you really want to challenge the team, you can add more DoD items but make some of them mandatory and others optional.
6. Make the product owner responsible and the team accountable
Set up the DoD custom field such that only the product owner can add/modify/remove items. This will make him or her responsible for stating what they want. Then, let the team be accountable for delivering what the PO wants by crossing off every item in the DoD.
7. Enforce it
The best way to have an agile team follow the DoD is to embed it into their scrum workflow. Use a Workflow Validator on the technical task or a user story workflow transition to prevent the resolution of the issue until all DoD items are done. This demands accountability and reinforces what “Done” really means.
8. Create an acceptance criteria list in Jira
At the end of the day, the acceptance criteria list is nothing more than a DoD that is specific to every user story. To implement an acceptance criteria list in Jira, either create a new custom field or piggy back on the global DoD. With Checklist, you can add items directly at the issue level. So, you could have a single DoD custom field with the mandatory global items as options and each individual acceptance criterion as an item at the issue level.
Want to see how other Jira users are setting up their DoD in Jira? Check out what others have done on the Atlassian Community.