Some things need to be READY before they are DONE. Other need to be DONE before they are READY.
What is definition of DONE?
Any organisation that uses scrum must have a clear definition of DONE because so many things derive from it. The definition of DONE tells the development teams what you expect from them.
Our definition of DONE is:
At the end of each sprint we want to deliver software that can be put into production.
This does not mean we think it is wise to do so. As an organisation, we still want to do proper quality assurance and acceptance testing. Still, to deliver production ready software is the level quality and completeness that we commit to.
There are consequences that follow from this:
- In capacity planning we do not differentiate between defect resolution for production incidents or acceptance testing. Defects for both happen after we have said that we are done.
- We will not start something that we cannot finish properly. If business requirements are unclear we will not start development because we cannot get it production ready.
- Integration testing with 3rd party software must happen within a sprint and we are responsible for it. If we need non-development people todo this, they must be part of the team.
- All requirements from risk and compliance must be met.
It’s important to understand that DONE to one person means READY to another. When PO is DONE writing a high level user story that needs to be estimated — it becomes READY to estimate for the dev team. When the estimation is DONE the story could be READY for approval or READY to play. When dev team is DONE with development, the story becomes READY to test, etc.. until the story gets released to production and as some say it’s DONE DONE. Or perhaps it’s READY to be used by end users?!
What is definition of READY?
This needs to be broken down into following statuses:
- READY to estimate (optional)
- READY for approval (optional)
- READY to play (a.k.a. READY for dev)
- READY to test
- READY for UAT
- READY to release
At each stage of the tickets journey through the workflow READY means that all activities related to planning, development, testing and approving in UAT are complete before it’s READY to release.
When pulled from the backlog into the sprint tickets with status READY TO PLAY transition to TO DO status once the scrum master starts the sprint.
As we transition our tickets into relevant statuses it’s worth keeping in mind what the status communicates to our team colleagues rather than to ourselves and whether it semantically advances the progress of the ticket. Even though DEV DONE and READY FOR TESTING mean the same thing it is good practice to use the latter status.