Definition of Done - The What and Why and How to Grow One
Agile 101
Agile Methodologies
Agile Practices
Agile Metrics
Agile Artifacts
Scaled Agile
Definition of Done – An Overview
When you look at the cards in the Done column of a Kanban or Scrum board of a development team, can’t you help but wonder what hasn’t yet gotten done? After all, a software product isn’t just about the code.
If that sounds familiar, you’ll benefit from a Definition of Done. DoD for short.
Let me walk you through what you need to know.
What Is Meant by the Definition of Done in Agile?
In Agile, you use a Definition of Done to say what you’ve done to what standard of quality when you declare something done.
In more concrete terms, it lists the criteria you’ll meet before you claim a user story or a bug report can be shipped (released) to your customers.
You may be asking yourself what the difference is with Acceptance Criteria that also specify the criteria you need to meet to implement a user story or fix a bug.
Battling It Out: Definition of Done vs. Acceptance Criteria
It’s a matter of scope and focus.
Now that’s cleared up, here’s why you want clarity and transparency on what you do as a team.
What Are the Top 5 Benefits of a Good Definition of Done?
The benefits of creating and using a good Definition of done are:
You know what you need to do and understand what you do not need to do. For example, you know it’s your job to implement correct behavior, but creating training videos is not. You’ll become more predictable in what you deliver.
With an itemized list of exactly what you need to do to get to done, you’re better able to assess how much you can realistically take on in a Sprint. You’ll become more reliable.
Checklists work. Aviation wouldn’t be as safe without them. When you reduce the work left undone when you declare something done, it means less (risk of) rework later. You’ll become more efficient.
As you mature in your development practices, you’ll raise the bar on the quality you deliver and reduce other staff’s workload. For example, fewer escaped bugs mean lower demands on support staff. You’ll deliver better quality and help your company become more efficient.
Fewer escaped defects means you can create value with the whole team instead of having to divert some of you to resolve bugs. You’ll become more productive and predictable, and get to work at a constant sustainable pace.
All this helps raise the confidence a team feels in delivering valuable software and grow the trust other teams and stakeholders will place in a team.
But don’t get carried away just yet. There’s a catch.
How Not To Benefit From a Definition of Done
Like with everything worth having, you only get the benefits if you avoid the common mistakes.
Having a digital DoD somewhere means you’re not likely to make it a priority. Not on purpose, but because there are so many things clamoring for your attention.
Putting all your aspirations in your DoD means you’re unable to achieve much of it. That’s no fun. You’ll avoid it or treat most of it as optional, which detracts from its importance.
I’ll bet you’re wondering what you can do to avoid these traps.
How To Create and Adopt a Definition of Done Successfully
Adopting a Definition of Done requires a behavior change, a change in habits.
To be successful, you’ll want to treat it as such.
The trick is to keep it top of mind, make it easy — and fun — to do, and to reinforce it until it’s become an established practice.
So, what’s the solution?
How To Create and Grow a Definition of Done
Well, let’s break it down:
Not too tricky, right?
But, I bet you still have some questions.
Like, who writes or defines the Definition of Done, or when is it most appropriate for a development team to change the definition of done, and what to put in it.
Who Writes or Defines the Definition of Done
The Scrum Guide says:
If “Done” for an increment is not a convention of the development organization, the Development Team of the Scrum Team must define a definition of “Done” appropriate for the product. If there are multiple Scrum Teams working on the system or product release, the Development Teams on all the Scrum Teams must mutually define the definition of “Done”.
And:
The Scrum Team consists of a Product Owner, the Development Team, and a Scrum Master.
From that, it’s pretty clear that a Development Team decides their DoD. Not the Product Owner, not the Scrum Master, not a Project Manager, not the Development Manager, but the Development team.
You want to define your DoD before working on a product as a team (or you risk not doing it at all). But when do you update it?
When To Change What’s in a Definition of Done
Many will say, “in a retrospective.”
But Retrospectives are meant to deal with more than the actions to complete a work item.
What’s more, your Definition of Done serves as your quality checklist. That makes it a continuous improvement effort that merits its own improvement cycle.
And remember, a change is not necessarily an improvement.
Putting an action from a Retrospective straight into your DoD can mean you’ll be changing the DoD more often than is wise. Frequent changes — especially taking out what you added not too long ago — decrease the perception others have of your reliability.
So, wherever your points for your DoD come from — a Retrospective or some other effort for improvement, test them out first. Tweak and adjust until they deliver what you aimed for.
Now, let’s see what’s in a good DoD.
Example of What Is in a Good Definition of Done for a Development Team
You customize a good Definition of Done to the maturity of your development practices. So I’ll give you the basics and follow it with what you can add as you mature.
The Very Basic Basics
Code Quality
Staging
Functional Regression Tests
For all automated tests:
For legacy systems (applications where automated tests do not cover large chunks of codes):
That’s a lot, right? And following CI/CD and DevOps practices can add even more.
But I’m sure you get the point and can take it from here. And…
Get To Done on Your Definition of Done
You can put a stop to feeling uncertain now.
You know everything you need to know about a Definition of Done to make it work to your advantage. To be confident that when a card is in the Done column, you’ve indeed completed all the work, and its quality is as high as you’re currently able to achieve.
So, take the first step. Get your team together and create your first Definition of Done version.
Check out Nimble Now!
Humanize Work. And be Nimble!