At my current employment, we are having a chat about our definition of Done.
It is unbelievably hard to come up with a definition that all team members agree on.
Ask this question to two developers and you will get three different definitions.
Take for example this recent conversation. A member of the team during the daily stand up mentioned “I am done with feature X”. Not because I don’t trust this team member but I asked are you sure you are done as the user story has not been moved forward on our Kanban board. The story was not Done.
Our current development process is a story comes in and it goes into the To Do column,
Our Kanban board, our stories go through each of these steps:
- To Do
- Work In Progress
- Ready for deployment to test
- In Test
- Ready for deployment
And within each step that are further steps
Not much happens here, except stories get prioritised.
Work In Progress
This is obviously where for us developers the bulk of the work gets done. For each check-in,
- Make sure that there are unit tests and they all pass.
- If there are any changes that are made to the UI, have they been tested, even manually.
- When the code Is the checked in to source control, make sure that all the test still pass in TeamCity.
Ready for deployment to test
Is there any additional work that is required for deployment. Especially around database updates. We still have not got this totally automated yet, but it is something that is always being improved.
This step is where the business member who raised the user story confirms that they are satisfied with the work done
Ready For Deployment
When we arrange for all the signed off user stories to be bundled up for deployment, and scheduled.
The final step. When the story has been deployed to production.
So for me, the definition of Done is when the story has been deployed to test. A four letter word that causes so much trouble