Presenting, the best definition of done ever!
- Definition of Done — For a Story
- (more to come...)
Why do we need a Definition of Done?
In Agile software development, "Definition of Done" is a well-known concept.
It's done! Or is it? Stop guessing and start knowing when your work is done!
But why are we really doing this?
Ahhh, yes, there is more to it than that!
Here goes: we believe that code quality directly translates into desirable business outcomes such as fast delivery, minimal bugs, no security issues... In short, working software (hat tip to the Agile Manifesto). As developers, we intuitively know that technical debt is bad, but human nature being what it is, it's easy to cut corners when nobody is looking.
We also believe that fostering a culture of software craftsmanship is the best path to quality code. But how can we do this? One powerful tool is taking all our best practices, and codifying it into a Definition of Done. By making a checklist, we take the guesswork out of quality — it is no longer an opinion or an option, it is either done or not done.
In summary, following a Definition of Done leads to high quality code which is essential for working software, which makes everybody happy!
A note on the meaning of the emojis:
- ⭐ An essential best practice
- ⭐⭐ A recommended best practice
- ⭐⭐⭐ An ideal best practice
- 👎 An anti-pattern. Don't do this!