Estimating Problems

For as long as I can remember, engineers, software developers, managers and sales people have missed their deadlines on a regular basis. This is a problem that has simple causes and possible solutions, but it requires a level of awareness that we appear to be missing in most of our endeavours. When there is variation between estimates, plans and actuals, generally:

  1. there is over-run, meaning the actuals are greater than the estimates and plans;
  2. the actuals are blamed and people are challenged as to why they did not meet their targets.

Frequently, the blame needs to lie on the estimating and planning rather than on the performance against the plan. It is time we took estimating seriously and started building appropriate risk management into our plans.

Clear Communication

One of the first reasons for bad estimating is the language problem. If you ask for an estimate, a forecast, a prognosis, a guess, a projection, a ball-park figure, a guess or any other variation thereof, you have (maybe) a clear idea of what you want and why you want it. Are you certain that the person to whom you are asking has the same understanding?

Guesswork

Every estimate is just a guess. Maybe the person doing the guess has a lot of experience, and has considered many options and weighed the probabilities, but, in the end, it comes down to a guess – no matter how “educated” that guess may be; in the end the value they give is probably wrong.

Data vs Experience

Obviously, we trust the expert, the person with the most experience, to make the estimate. However, we are not selecting the person who is best skilled at estimating, but the one who has done the job most frequently. The fact that the person in question has under-estimated the time it would take systematically for the past ten years, we will still trust them because they have done this so often.

One of the first steps that the expert will take is to estimate how long it would take her to do the job; once the agreement is finalized, the expert will be moved on to the next contract that requires estimating and the work itself will be given to someone else: the effort has been estimated for someone with twenty years experience, then given to someone with twenty minutes experience and we wonder why it is not completed on time.

Reviewing

The estimate, once it has been produce should be reviewed and corrected. Many managers (and less competent sales people) focus on cutting the estimate down: “why do you say this will take 6 months? We will lose the contract if we say 6 months, let’s change this to 4 months total”.

The intelligent manager (and the sales people who respect their clients) will review the estimate and find out what is missing, what are the risks that have not been taken into account, what is the worst case scenario and how can it be covered, how can I be sure that I am going to satisfy my client? Have you taken into account the average number of sick days in the team?…

Milestones and Commitments

So, you asked me how long do I think this will take and I said “probably not much more than a month”. Now, you have come back with detailed requirements and expectations that were not available when you asked the question and demand that I respect my previous “commitment” to finalize this work within one month, twenty working days. This does not take into account the work I am already doing, or the fact that your vague idea did not include all the additional bits of work you added into the requirements.

Milestones and commitments are necessary, but the order in which things happen need to be clearly understood:

  1. Document the requirements in as much detail as possible
  2. Establish the major milestones and include them in the requirements
  3. Ask for an estimate as to what would be the cost and probability of success to deliver the work completed within the milestones set out
  4. Make an estimate and negotiate the result: let’s eliminate some of the less critical requirements, move the milestones to make it more realistic, etc.
  5. Build a plan as to how the work will be done and the proposed final set of milestones
  6. Negotiate and move around more if necessary
  7. Make a commitment to respect the milestones.

It is folly or cruelty to request an estimate and transform it into milestones.

Update

Monitoring the work being done on a continual* basis means that you can evaluate in real time the amount of work remaining. If the first three phases of your project over-ran by 20%, you need to stop believing you will complete on time: chances are your whole project will be 20% late.

Burndown charts, Gantt charts and others are traditional methods. If used correctly they are useful in monitoring progress; however if you don’t use your previous estimating errors to correct your future estimates, you will just keep on “snowplowing” more work against a fixed deadline.

*Continual means without interruption, all the time; Continuous means ongoing. You can continuously improve your work practices by rolling out an improvement every few months, you cannot continually improve work practices as that would confuse the workforce with hourly changes to methodologies and processes.

Conclusion

If your team is not delivering to estimates, it is probably because they / you are not as good at estimating as you believe. Don’t pressure them to work faster, that will only create more problems, give them appropriate training and support in making better estimates and understanding how to use data.