Software Is Not Done

Jan 21, 2008
by:   Tim Stanley
photo: Willi Heidelbach stock xchng

It's not that software is never finished.  It's just that done is not a good description to describe the status of software.

What's the status of the "Buy 12 get one free promotion?"

It's done!

What's done for one particular team isn't done for another.  Done for the business analyst isn't done for the the person doing deployment.  It leads to a lot of confusion among teams, particularly when teams are in multiple physical locations.

What's needed to help communicate the status is a common set of terms used by the teams in all locations to consistently indicate status.  I use the following terms with my teams.  This not only helps identify the status of a particular feature, it takes the emphasis off a particular phase and helps the team realize that one shot isn't the game.  Half time isn't done.  The goal of a software service or product is to rollout the features desired by the business, not to just complete one particular phase.

  1. Business requirements complete
  2. Graphical User Interface (GUI) requirements complete
  3. System requirements complete
  4. Technical design complete
  5. Code construction complete
  6. Code review complete
  7. Code review changes complete
  8. Unit test complete
  9. Unit test issues changes complete
  10. First pass system test complete
  11. System test issues complete
  12. Final system test complete
  13. Customer acceptance test complete
  14. Customer acceptance issues complete
  15. Deployment complete
  16. Pilot complete
  17. Rollout complete

Related Items