Definition of Done - best practice to succeed in software projects.
How do we know when a user story is “done“? Can we say that the user story is done when it is coded and all acceptance tests for it are passed? Business representatives may say yes, but they do not know all the peculiarities of software development. So, such criteria as quality are not fully visible to them.
Or let’s have a look at another situation: a new feature that changed the business process was developed and tested according to the best software practices, but users struggle to use this feature because they are not sure about the changes this feature brings. Maybe a proper user manual or user training is needed in this case?
In this article, a simple, but very powerful technique which is called Definition of Done (DoD) is explained.
This technique helps:
- identify all activities which need to be completed for the user story to meet the customer needs
- bring all participants of the product development to the common understanding when the user story should be considered done
- reduce risks, as all activities are listed there is less risk that some important activity will be missed
Per Agile Extension to the BABOK® Guide v2, Definition of Done is a technique where the team agrees on, and prominently displays, a list of criteria which must be met before a backlog item is considered done.
That is the team has to create a well-defined, unambiguous, measurable, agreed-upon, and shared Definition of Done between all team members.
The best form of Definition of Done representation is a checklist of activities that has to demonstrate the agreed value and quality of a user story. So, this checklist should include:
- acceptance criteria (to satisfy customer requirements for a product)
- quality criteria (to satisfy quality requirements for a product)
Definition of Done may be defined for different levels of project work. For example, in Agile / Scrum framework these levels of work could be user story, sprint, and release.
Table 1: Example of Definition of Done for a user story.
Definition of Done for a user story |
Code completed
Code is written
Code is in agreed standard format
Code is committed into VCS
Peer code review is completed
|
Build is deployed to the testing environment
|
Tested
Unit tests are passed
Acceptance criteria are met
Non-functional requirements are met
Functional tests are passed
All known bugs are fixed
|
Table 2: Example of Definition of Done for a sprint.
Definition of Done for a sprint |
DoD of all user stories are met
|
Build is deployed to the integration environment
|
Tested
All known bugs are fixed
Regression tests are passed
Integration tests are passed
Performance tests are passed
|
Product backlog is updated
|
Design documentation is updated
|
Table 3: Example of Definition of Done for a release.
Definition of Done for a release |
DoD for a sprint is met
|
Compliance requirements are met
|
End-to-end testing is completed
|
End-user documentation is updated
|
Release notes are written
|
Build is deployed to the production environment
|
To summarize, the benefits of Definition of Done technique are:
- Decreasing misunderstanding
We no longer have to ask “how done are you?” With Definition of Done it is visible for all team members and customer representatives.
- Decreasing risk of delay and budget overrun
With Definition of Done, the team has a clear vision from the beginning of what it takes to make the user story / sprint / release completely done, not “nearly done”. Thus, the cost of rework, delay and customer dissatisfaction are decreased.
- Ensuring the user story / sprint / release success
With a clearly defined Definition of Done agreed value and quality of the product is brought to the customer.
Author: Olena Konchenko, Project Manager, Business Analyst | CBAP, CSM, CSPO
Olena Konchenko, CBAP, CSM, CSPO, holds M.Sc. in Computer Science, is a specialist in Project Management and Business Analysis in the software development field. Over 10+ years of experience she worked in different domains starting from web start-ups to telecommunications and banking with customers across the globe. Olena is passionate about technology and how it can help create great products customers love.