The Definition of Done  

What exactly is the definition of done? What steps are required before you can say a feature is done?

The DoD (Definition of Done) should be a simple checklist of activities/steps that should be completed that add value to the product before work is complete. Things like writing code, unit testing, integration testing, documentation, etc. For something to be ‘done’, it must be potentially shippable. Can you confidently ship code that has been written but never tested in any way? Can you ship documentation? The answer in both cases should be no. But if you have code, tests, documentation, etc, you can say that unit of work is done! So, if a developer says a story is ‘done’, but they haven’t provided a completely shippable unit of work, then they aren’t really done! Other members of the team may need to look at the work and complete other portions of the checklist.

The DoD should be an agreed upon set of conditions for various types of work (perhaps you have a different DoD for a single feature vs a sprint, or a bug vs a technical task). If there are impediments to fully completing a piece of work, the team should discuss these obstacles and plan for them as much as possible. Common root causes of these impediments are often things like incorrect tooling (no CI/CD or automated builds), “mini-waterfalls” run by different team members, or improperly scoped work. All of these things can be improved if they are recognized as the cause of the problem.

 
3
Kudos
 
3
Kudos

Now read this

The ups and downs of omnibus

So recently (in my attempts at cleaning up kitchen-cabinet), I’ve started to look at the benefits and pitfalls of omnibus installers. Vagrant is a good example of the benefits - it started out life as a pure ruby gem, but it had a lot of... Continue →