We’re sitting in a meeting about our next software release, and senior management asks:
“When will the product be done?”
At this point I pray that developers are not in the room. If one of them is, invariably management hears “We’re almost done. We’ll be done with this by the end of the day.”
Is that right? Well….. not quite. The key challenge is knowing what is meant when each party says “done.” We have to have a shared definition in order to communicate.
Developers usually mean “I’ve written the core algorithm and unit tested the happy path successfully” This is probably the most interesting and intellectually challenging part of the process, but it’s far from including all of the tasks required to ship a product. In fact, that’s likely only about 20% of the job! Handling the “unhappy path” is about 60% of getting software ready to launch, and the remaining 20% is the documentation which developers consider as interesting as watching paint dry.
Product Managers usually mean “We’re all done with the software development part of the process and now have to finalize things like product marketing, sales support artifacts, channel support tools, training materials….”
Senior Management means “Sales can put the product in front of customers who will give us money for it.”
This divide can cause significant frustrations in the organization – so we need to agree on terminology.
When is “done” DONE?
I slightly modify the criteria that Jeff Sutherland uses when he says:
This is often one of the thorniest issues to iron out with a team, so I take it off the table until they have some shared success as a foundation
My initial definition of “Done” is this:
1. Feature Complete –
The code is not yet final, but contains all intended features/functionality of the final version.
2. Code Complete –
No entirely new source code will be added to this release
3. No showstopper defects –
may will be known bugs, but they are within tolerance and are considered acceptable.
4. Approved by the Product Owner –
Formal signoff by product management, which implies
Demonstrated functionality in TEST and Staging environments
Meets all defined business goals.
5. Production Ready – Acceptance by operations/support
- Documentation complete, technical, support, user manuals, user tip sheets, on-line help
- Config files delivered and tested
- System settings in place on PROD
- Demonstration that the processes and systems work with non-developer IDs
Of course, this doesn’t mean we’re ready to ship as soon as development is complete – but we agree that the software development milestones are done. Product Management needs to work with the executive team on an appropriate Product Management lifecycle so that everyone is on the same page about when we’re ready for customers to see, love and PAY FOR the product!
Getting agreement on “When done is DONE” is a part of Raising Your Game.