“Where is your DoD?”
When I ask this simple question to agile teams, they sometimes look at me like a deer in 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 complete the story, both the DoD and acceptance criteria must be met.
Putting them on paper is simple. The difficulty often lies in having the development team actually respect the contract.. So what can a 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 the DoD and acceptance criteria list directly on to JIRA tickets!
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 down the DoD
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 the DoD 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 the DoD 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 responsible for stating what he wants. Then, let the team be accountable for delivering what the PO wants by crossing off every item in the DoD.
7 . Enforce the DoD
The best way to have a team follow the DoD is to embed it into their 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 the acceptance criteria as items at the issue level.
The trick for making a team follow the DoD and Acceptance Criteria list is to make the items visible and part of the team’s natural workflow. It’s an easy step to ensure your product meets the Agile definition of “Done”. For more details on how to configure Checklist to implement a DoD and Acceptance Criteria list in JIRA, follow up with this article.