Are we done yet?

What it means to be done

This seems to be a somewhat misunderstood concept in the world of software. Most often, I see people attempting to quantify a product as “done” by using open various types of defect reports, statistics on runs of test cases, status of unit tests or various other types of automated testing.

I really like the way hospitals use a pain chart for administration of pain medication. It is a great illustration of what I am getting at here. They measure through illustrating emotion with the face, compare pain levels against something less and something more, show a description and also a 0 to 10 scale. This shows how multi dimensional something like pain is.

painChart

This is a good illustration showing can not be quantified (pain) but can be measured. Most hospitals in the US use this chart fairly successfully as a way to determine how much pain medication to administer. Since pain isn’t something that can be quantified, the nurses have to base their decision on what the patient says they feel.

Just to be clear(ish) here, by done I mean ready to ship. You don’t have to do anything else but stick the tar ball on FTP and send out an announcement. I am clarifying because I have Seen terms such as “done-done” thrown about (meaning code is checked in and tested) as if one done is meaningful without the other.

Done is not
• a number
• a metric
• a quantification
• a point in time

Done is
• a judgment
• a feeling
• a comparison

Done means that you think you know enough about what is going on with your product to say that the people that matter will be able to get the value they seek. Though you will always know more than you do today, you do have to make a judgment at some point and basically say “I know enough”.

Now I understand that it is easy to sit on an internet soapbox and write about what something means, but in practice things are far more complex. I know, oh I know.

Leave a Reply