In recent Agile projects I have been involved with, we often talk about the word “Done”. Specifically we are talking about when a task/story that you are working on is finished.
I heard someone in my team say that “it isn’t Done until it’s in the green column” – referring to the colour-coded columns we move story/task cards through as we take them from the “holding pen” through “development” (red), “ui review” (yellow), “customer preview” (orange) and “qa” (blue) to “done” (green).
So when is something considered to be Done? Is it Done when you have finished writing the code? When you have finished testing the code? What has to happen to a story/task before it is allowed to make the green column and be called Done?
My definition of Done:
- All code has been developed using Pair Programming or Peer Review
- The acceptance criteria for the story/task have all been met to the customer’s satisfaction
- Unit tests have been written that test the code and document it’s functionality
- Supporting acceptance tests that support the acceptance criteria (negotiated with QA)
- The code is checked in to the build server – and all the tests continue to pass
- Any QA issues are resolved (which may necessitate returning the story/task to development again)
Of course each story/task will have a different path to Done, and some will take a shorter route than others – but the definition criteria above should remain constant for all. If you make sure your stories/tasks follow this prescribed course to Done, you will have less “returns” later on and produce better quality code from day one.
You will! Try it and see.