Skip to main content

When is Done Really Done?

Article

When is Done Really Done?

Article by Peter Clark | Comments: (5) | Fri, 07/02/2004 - 1:27pm
Summary:

When your idea of a completed task is significantly different from that of your team's members, you're asking for trouble. In this week's column, Peter Clark outlines some steps you can take to ensure that everyone on your team understands your expectations when you ask them if they're "done."

One of the biggest problems I have had over the years with the people who report to me is a fundamental disagreement of what the word "done" means. When I was a brand-new supervisor, I would ask my people how they were doing on whatever tasks they were working on. They would tear themselves away from their computer screens and say, "Fine. I'm almost done." I would walk away feeling good about them and about the project, confident that they had things covered. A week or two later, I would check in with them again. They would look up at me and say, "Fine. I'm almost done."

Another variation of this is the high-precision answer. How are you doing? "Fine. I'm 95% done." The purpose of this degree of precision is to convince the interrogator that everything is under control. In fact, nothing could be further from the truth. I have formulated "Clark's Law of Misappropriated Precision": When it comes to estimating completeness, the greater the precision, the greater the inaccuracy. I have been told that an activity was 97% done and required no more than two weeks to complete. I have then waited four months for completion.

The problem isn't that my people are being mendacious. The problem is that we have a disagreement on what the meaning of "done" is. When I, as a manager, say "done" I mean that the task is complete and this person is ready for her next assignment. Therefore, when people say that they are 97% done, I expect that only 3% of the work remains. On a 100-hour task, I foolishly assume that only 3 hours remain and I should be able to assign them something new tomorrow.
What do my people mean when they say "done"? It varies. If I have asked them to create a new module, "nearly done" may mean:

  • I have thought about it, and I am ready to start coding.
  • I have coded it, and I am ready to think about testing it.
  • I have tested it, and I just have to fix all of the bugs.
  • I am tired of working on this, and I am ready for something new.
  • I have found a horrible bug, and I am ready to rewrite the module from scratch.

Projects can float along in a dream-like haze for months in this manner. Oftentimes you don't know whether something is really done until integration. When you go to put all the pieces together, you then find out that a lot of them are missing or wrong.

There are things you can do to avoid this. For common tasks, like coding a module, I create a description of the meaning of "done." This includes:

  • A description of what is included in this activity: for example, coding, unit testing, inspection, documentation of insertion of the module into the revision control system
  • A brief list of related activities that are not included in this activity, to prevent gold plating and distractions
  • A list of any predecessor tasks to this one
  • A list of inch stones, along with the percentage of the overall task that is finished when that inch stone is complete

Predecessor tasks are important because your staff will often jump the gun to work on something that they like. For example, they will begin working on the code before the requirements have been finalized. You need to establish the gate they must pass through before they can start working on a task or your sweet daydream will quickly turn into a nightmare of blown schedules and budgets.

The inch stones are valuable for several reasons. First of all, they serve as a checklist of all of the parts of the task. For example, programmers almost always view coding as the largest part of the task. When coding is done, they believe that they are "97% done." The checklist reminds them that there are other, equally important, tasks that must be completed.

Inch stones are also invaluable in overall project tracking. Take, for example, a programmer who has burned 50% of the budget, but has completed only 30% of the inch stones. You can then multiply the remaining budget by 5/3 to get an expected cost at completion for that task. You can then use this to adjust your completion date for the scheduled task.

Inch stones are binary - they are either done or not done. Also, the completion criteria for inch stones should be extremely simple and easily verified. For example, the completion criteria for unit testing a module might be that the unit test plan has been executed and the unit test record checked into the revision control system. When receiving status on inch stones, you should repeatedly verify that these criteria have been met until it becomes reflex for your people to complete them.

A disagreement over the meaning of done is always a recipe for disaster as it allows you to proceed as though everything is fine, when in fact it is not. You often don't learn of your problem until it is too late to do anything about it.

About The Author: Peter Clark

Peter Clark has twenty years of experience in industrial automation. He currently manages teams working in materials handling, especially baggagehandling systems. A regular columnist on StickyMinds.com, Peter can be reached at pclark@jerviswebb.com.

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

#1

The phrase "almost done" or "95% complete" is there to stay in all completed projects. This may not be due to incomplete or partially completed activities but due to primarily an afterthought at the end that1.A particular thing can be done in better way.2.Things which might be out of the scope of person who is reporting.3.The person does not want to take any chances for his open convictions.These kind of catch-22 situations can be addresses with a proper delineation of parameters taken into account which will signal the completion of the task/project.

#2

I have two methods that I use to prevent the "95% done" problem.1. All tasks are of one week duration maximum. If they are longer than one week, I decompose them into smaller tasks.2. Tasks are marked at 0% complete is not started, 50% complete if started but incomplete, and 100% complete if complete. "Complete" means functional and debugged.Using these two principles in combination with weekly status meetings means that the project can not fall more than a week behind without me (the project manager) being aware.

#3

Nice article!! I manage each module as a set of tasks. The tasks are so minutely drawn from the module that there is no scope for my testers to say what percentage of it is complete. A task is either complete or not complete. All tasks are time bound and each task is typically scheduled to be completed in a day or maximum of 2 days. Defining short-term tasks help me keep track of tasks better. On the scheduled date, I ask my tester if he was able to complete the task. If not, he has to give me a future schedule. The trick lies in defining tasks in such a manner that they are achievable in a short span. This way I manage and track the progress on a daily basis without having the need to ask my tester. Long term milestones make tracking difficult and provokes people to give ambiguous (misleading) statement about progress.

#4

This is a really good article. There are few rules of thumb I follow to help avoid this problem. 1) As suggested, use a somewhat standard set of "subtasks" for each tasks. These are usually accomplished through guidelines and standards. For example, coding tasks should require well-documented methods. This does not need to be an explicit task because the coding guidelines dictate this "subtask". Furthermore, periodic code reviews (or configuration audits for other artifacts) will identify inconsistencies. 2) Be more involved with completing tasks. Don't just ask "how far along" but ask specifics. If the programmer says, for example, they are 90% complete but two weeks later still 90%, something is wrong. Programmers always try to improve and enhance. Instead, document their suggested improvements and consider them for a future iteration. 3) Be clear, in both directions, how long a task should take. For example, do not accept a "percent complete" answer. Instead, use the person-hours approach. The task was estimated at this many person-hours, you've spent this much, how much is left? It is often the fault of project managers and leaders that we receive ambiguous feedback when asking about and managing task completion.

#5

Very Nice article., This is a common issue., Some times, based on "Done" comment given by some PMs and developers I have committed deliveries to the customers and fallen in to troubles. Now, what I do is I go in to details by myself as much as possible, when ever I get the comment "Done" from somebody and I reschedule the work for them., It may be practical in a small operation where you handle 3, 4 small size development teams., But when handling large project teams simultaneously I know its not practical.