Definition of Done is never a bad thing – (notwithstanding the fact it can be understood and therefore practiced badly).
It’s a good thing. Perhaps the best part of Scrum, in my opinion. It’s a powerful feature of the work which helps us make transparent the quality of the product. Here’s an attempt at an analogy which, I think, illustrates my point:
- Imagine you’re baking an apple pie.
- You add all the right ingredients.
- You stir this, knead that, et cetera.
- You’ve got the pie ready to go in the oven. It’s “done”, one might say.
- But it’s not done. It’s not baked, obviously. And therefore, the quality of the pie crust can’t be inspected, the taste can’t be evaluated. Quality is still invisible. Taste is still imperceptible.
- Conveniently, we’ve baked millions of pies in the world and we know it takes less than 30 minutes under the right conditions of heat… so 30 minutes later, you take the pie out of the oven. It’s “done”, you might say.
- But it’s not done. It’s still too hot to eat and even thought the pie appears to be convex, there’s still risk it will flatten, sink. It has to cool. We must wait.
- After a cooling period…it’s “done”, one might say. But it’s not done. It’s not been delivered and therefore can’t yet be eaten.
- So next we slice it, plate it, serve it. Bon Appétit.
At #3 above, that’s the equivalent of Sprint Planning
#4 = works on my machine
#5 = building
#6 = tests are all passing, ready for deployment
#7 = deployed
#8 = it’s been in the production environment a while – perhaps hidden from users, or perhaps exposed to a subset *(like beta-testers or release-ring), tests still passing, all looks good
#9 = in the hands of end users and known to meet their needs.
Because apple pie is a physical object, the metaphor presents stakeholders and team with a means to discuss “done” in concrete terms. Clearly, an un-baked apple pie isn’t edible – clearly, the taste and quality cannot yet be determined. So, to extend the metaphor to software for example, clearly until the software is fully-baked and served on a plate to end users, the quality and usability is unknown.
Hence, if the team’s current definition of Done only includes #6 above, then they and stakeholders ought to work diligently to enhance the team’s capabilities so that they can, every single Sprint, produce something like #9 above.