Definition Of Done (DOD) 101
User Story Definition Of Done (DOD) in Scrum Software Development and the Technical Debt
Definition Of Done(DOD) in Scrum — Learn how to use it correctly with real life Scrum examples
In Agile Software Development, we use the User Story Definition Of Done(DOD) for User Stories to ensure the quality of work and to assess whether the team completes a User Story or not. If respected, the Definition of Done (DOD) in Scrum is keeping the development team away from the technical debt.
Why in Agile Software Development is essential to do not accumulate technical debt?
The Technical Debt means additional rework caused by implementing limited, temporary solutions or incomplete work. I also count as technical debt: code not deployed up to the environment, which makes it available to the users, features developed but not documented or tested. When done, the output of a story must be ready to be released. If it is not, everything pending is called technical debt.
Imagine that you have six stories which the team has developed in Sprint 1, 8 in sprint 2 and 5 in Sprint 3. The team tested what they produced, and everything is fine. But, all the development done is stored locally in the developer environment. You are two days before the Go Live deadline; everything thinks it’s just a matter of deploying all the work to the test and production environment. Here are a few scenarios of what will happen:
- The branch you have locally is old. It generates a long list of exceptions when you try to merge it
- The configuration of the higher environments are not the same as the local environment, and you need to spend time doing additional settings.
- it is working locally, but not in production and the troubleshooting time is getting out of control
- when one issue is resolved, it reveals another one
None of the above can be estimated or controlled.
Predictability is key in Agile.
But how does the User Story Definition Of Done (DOD) in Scrum contribute to predictability?
I mainly call a user story DONE when it is ready to be released to the users if wanted. There are no more merges, no documentation, no further testing, nothing else. That means that:
- there is a precise inventory of the part of the scope that you completed,
- the users can start using the results of the stories and
- the company can start cashing in the return of investment of this user story,
- the company can sell the feature or can attract more clients
- the is room for improvement, and the stakeholders can suggest already new features
- there is progress
Every team has its own Definition Of Done (DOD) in Scrum. But every time I start working with a Scrum team, I come with a generic User Story Definition Of Done (DOD), which makes it easier for them to define their Scrum Definition Of Done.
User Story Definition of Done (DOD): A story can be marked as Done when:
- The user story implementation meets ALL the acceptance criteria
- The Product Owner approved the user story
- The user story is deployed in Production environment but deactivated (toggle off)
- The unit tests were written, executed and passed
- Every acceptance criteria have at least a test case associated
- The team wrote, completed unit tests and they passed
- The Technical Documentation is uploaded by the team on Confluence
- The performance is under X
- There is no regression in the automation testing suite
- The user story has been peer-reviewed
- Integration testing performed and compiles
- The manual configurations that need to be performed after the deployment to production are marked in the user story
- The deployment to the production environment of the story has release notes
- End-user documentation is available
- The user interface is according to the design
- The code refactoring is completed
- Marketing communication of the changes are documented
Final thoughts about User Story Definition of Done (DOD) in Agile
There is always a balance between overdoing the user stories and the velocity at which the team is going. It is an equilibrium that each team needs to find. Use the Definition Of Done in your Agile team to take control of the development process. Be open to update it, experiment and explore. The Definition Of Done (DOD) is a tool. Use it in your favour.
You might be interested in:
Get your Bloody User Story done
Now, a decade later, I know Agile works, if done the right way. Getting the user stories done is the foundation of the…
How to Write User Stories that Deliver Value to the Customer
Before we discuss user stories, let’s clarify what user stories are?
Hamburger Method to Split User Stories from Dev team perspective
The main reason why I use the Hamburger Method to split user stories is to coach the teams to transit from the…
How to Split User Stories
When it comes to defining user stories, I always give the cake examples to the teams I work it.
How and why the personas must be the starting point of our user stories to build better products
This week I started a new project — CooLab. We need to create an application which helps cooks to reach more people…