Most teams agree a Definition of Done once and then rely on memory. We had a couple of occasions where we would ask the stakeholders in a scrum session to agree on whether a ticket could be marked as done: the finance team had to give a thumbs up, then the risk team, and every other department involved. At one point, a ticket only got flagged at the CAB meeting, because some of the production details were missing. Putting those sign-offs on the ticket itself, where nobody can skip them, would have caught that much earlier.
Here are three ways to put it on every story in Jira Cloud, starting with what Jira does out of the box.
1. Action items in the description (no setup)
In the description, type [] followed by a space and you get a checkbox; press Enter for the next one. Quick for a single story. The catch: someone has to add the list to every new story, nothing stops a story moving to Done with boxes unticked, and you can't search for unfinished items with JQL.
2. Jira Automation: add the DoD when a story is created
Create a flow: Work item created → JQL condition issuetype = Story → Edit work item → Description, with your DoD as the text. Every new story now starts with the list. Three limits:
- The text arrives as plain text, not as checkboxes: typing
[] in the flow gives you literal brackets, so there's nothing to tick. - Set replaces the description, so whatever the reporter typed is overwritten.
- Nothing holds the transition to Done, and JQL can't tell you which stories are unfinished.
3. A checklist app
If you need real checkboxes on every story, the transition held until they're ticked, or a search for unfinished stories, a checklist app adds that. Disclosure: I work at Resilia Tech, the company that builds Native Checklists for Jira. In it:
- the DoD is written once as a template and added automatically to new stories by issue type and project, however the issue was created (Create button, board, Automation or the API)
- a workflow validator, "Checklist is complete", holds the transition until required items are ticked, with a message such as "Finish the checklist first: 2 required checklist items are still open."
- JQL such as
checklistOpen > 0 finds stories with open items - the checklist is stored on the issue itself, so it moves with the issue and is included in backups
Which to pick:
Option 1 suits a small, disciplined team, but it’s difficult to find tickets that break the checklist.
Option 2 gives every story the reminder text without an app, but the list is plain text, so there’s nothing to tick.
Option 3 is for when “Done” really has to mean done, and the checklist can be templated.
How does your team enforce its Definition of Done? I'd like to hear what works.