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:
- there is over-run, meaning the actuals are greater than the estimates and plans;
- the actuals are blamed and people are challenged as to why they did not meet their targets.
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:- Document the requirements in as much detail as possible
- Establish the major milestones and include them in the requirements
- 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
- 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.
- Build a plan as to how the work will be done and the proposed final set of milestones
- Negotiate and move around more if necessary
- Make a commitment to respect the milestones.