May 21, 2010
To successfully adopt an Agile product development method, a developer team needs to work with product management to nail down the ‘Definition of Done’ of a software specification, or “User Story”.
This is key to a successful product management process, especially at an expansion stage software company where other process definition and structure may be lacking and some fundamental definitions need to exist.
Definition of Done specifies a common understanding, agreed to by product management, development, and the senior management team, that says, “This software is built, and….”.
The “….” can mean:
- Fully tested and ready to ship to customers
- Fully tested and ready to ship to beta customers
- Partially tested and ready for full QA cycle
- Code written but not tested
…and everything in between.
Having this definition gives teams clear goals and saves a lot of conversation about what got done and what didn’t, and who committed to what, and so on.
Ultimately, it helps insure quality product and happy customers.
For an example of what happens when the Definition of Done is not clear or weak, consider the sink below.
I took this picture after the shiny new automatic/motion sensitive water faucet and soap dispenser were installed, making a significant (and probably expensive) upgrade to the rest room.
Of course, this also involved removing the manual soap dispensers.
While this upgrade was designed to make the rest room look nicer, more modern, and give a much better, sanitary experience to the building occupants, and 90% of the work to get there was done, the spots where the manual soap dispensers used to be were left unfinished, looking the way they do below.
Not very good customer experience.One way to avoid this would be to specify in each work order, “Do any clean-up, fixing, repainting, filling after installing the automatic…”
An easier way: Have a Definition of Done that states any work order is not done until all looks finished, with any holes filled and painted, etc.
Have a strong Definition of Done, and don’t let this be your customer experience!