The Definition of Done
What does Done mean in the context of writing software features? Does it mean your code builds and runs on your computer? Does it mean testing has been performed? Does it mean the code has been checked in? What about documentation? What about operational readiness? These are all good questions, and the chances are that if you ask these questions to different people, you will get very different answers.
When we use a Kanban and/or a Sprint Board in Scrum, there is a column on the right with the title DONE. So, what does Done mean here? This is why we use a Definition of Done practice. The Definition of Done is a criterion agreed across the team and shared with others that should be met before any work items are considered complete by any team member. It is collaboratively created, maintained, and enforced by the team where non-functional and functional work that should be performed for each and every work item can be managed.
Earlier in this chapter, we...