When a Product Backlog Item or Increment is described as “Done”, everyone must understand what “Done” means. — Scrum Guidehttps://manifesto.co.uk/definition-done/
In the agile, fast, changing and uncertain world of software development, we commonly encounter ourselves with the lacking of rules or criteria to shape things, to name things, to define things.
One, in particular, is a constant headache for many Project Managers, Scrum Masters, Directors, Product Owners, Designers, Analysts, or any other stakeholders that every iteration checks the status of a Project: The missing of a clear, visible, commonly agreed Definition of Done.
The Definition of Done is a term popularized by the Scrum Framework that explicitly describes an item (Use Case, User Story or Feature) as Ready or Done, in the terms precisely expressed by of this Definition.
As in most of the cases this DoD it’s directly related to the type of project, circumstances, technology, team members, Scrum Master, Scope and many other factors that could affect how this definition is shaped. So in here, I will try to explain in my experience what makes a good definition of Done, and I would give you an example ready to use.
Why is this a headache?
- Have you ever enter a Planning Meeting and feels that a Feature has always been there?
- Have you ever feel that you are working in the same over and over again?
- Have you ever spend hours discussing why an Item or Feature is done and deliver over and over again?
Well, if one of those scenarios (they are many others) seems familiar to you, so you maybe are lacking a proper Definition of Done.
You see, for a team to maintain a high morale and motivation two factors are very important: a Goal or a Purpose and the sense of Moving Forward or Achieving, so sometimes Features that last too long or that are done over and over again trying to fine the right have a big negative impact on a healthy team.
A good DoD helps you cut the work properly per iteration, it gives you a sense of Goal and what to do to achieve that Goal, and also gives you a satisfaction and a sense of victory when you achieved it.
How we do it in 4Geeks?
Over the years we have evolved so many times our Dod that is practically new and untested, but we trusted as we have being using it for our complete life.
A good Definition of Done must be:
- Achievable: that makes sense, we can’t expect to achieve something illogical and nonagile
- Practical: applicable to all parts of the project
- Unbreakable: Nonnegotiable during the sprint or in the Review
- Choose by consensus: Every team member must be agreed with this and be committed to respect it
- Visible: Must in a place where everybody can review it
- Technological appropriate: Adapted to the technologies of the project
- By all means possible, automated
Every feature must:
- Have a User Story Document with a Description, Roles, Acceptance Criteria and Conditions
- Understood by every Team Member
- Build it in the code
- Code reviewed
- For backends items at least 80% of test coverage
- QA approval
- Integrated into a release
- Reviewed by the end user.