10/07/2005

What does "Done" mean?

According to Webster, done is the past participle of do. According to Webster, do's definition includes produce, perform, execute, commit and carry-out. The problem with these definitions is that they do not speak to the agreement required by multiple parties as to the contextual semantics of the state of being done. In other words, when do all parties agree a product is produced or a task carried-out? This is a topic worth exploring because it causes angst, misunderstandings, delays in products, missing product quality, etc.

I recall a start-up I worked in a number of years back that had a fairly large release to accomplish. The release included new hardware and new software from the firmware through GUI. I was brought in to run the software group and more explicitly to execute. We had all of the typical problems: top-down dates, too much work for the number of resources, poorly defined features, unmade critical decisions. I worked on all of these with the team. I helped force clear and complete decisions. I helped set expectations about what really could be accomplished and divided the work into required and second tier. I helped the team make real schedules. When we got to the code complete milestone, my engineers said they were complete but we were not complete. Why did that happen?

I made the mistake that everyone shared the same concept of the word "done". To me, done, was, well, done! My engineers and even some of my managers thought that close was good enough. Of course this caused all hell to break loose. The QA folks could not test, the product management folks screamed publicly, and the engineers felt put-upon.

So now I take the time at team meeting to express my definition of done. When a project starts, I look each developer in the eye and ask them if they stand by their schedules. I require specs that can be compared with requirements documents so there can be no misunderstandings. I require developers write reproducible unit tests that can verify tasks do what they say they do before check-in.

Were my engineers bad or unique? No to both of those questions. Many engineers are not taught the meaning of the word "done" or worse yet, they are castigated for it. This is the new millennium and there are some basics when it comes to development. Take the time to agree with your team as to when they are done ...

More later ...

No comments: