You use your most diligent combination of research, rock(et) science, and haruspicy to come up with your best estimate for the project. You pad the estimate a bit, and then give it to your client, who happily signs off on it. You start right to work and everything goes according to plan for almost an entire day, and then...
- You discover one very large task that you either forgot or never knew about, without which the project cannot succeed.
- You realize that one of the project's activities is going to take a lot longer to implement than you thought.
- Your prototype, on which you based your estimate, proves to be inadequate -- to the point where that entire approach will have to be scrapped and re-engineered.
- Your estimation was based on a thorough knowledge of 95% of the problem, but the remaining 5% proved to be entirely within the wrong end of the Pareto principle.
Your palms start to sweat, your head swims, and you start to feel a lot like when you're in over your head. But this time it's not that you don't know what you're doing, it's just that your estimating was epically off. There's no way you can finish by the date you quoted the client.
This is bad news for both you and the client. If you're billing hourly, then it's really bad news for your client. If you're doing this on a fixed-price contract, it's still disappointing for your client, but it's horrible for you. Your first impulse is, "Well, I'd better get cracking!" You put your head down and start working as hard as you can. This seems reasonable, but it often leads to these three undesirable actions:
- Not communicating with your client. You don't want to waste precious time with status updates. Besides, you'd like to cover this whole mess up until you can make up the extra time.
- Procrastination. When you feel overwhelmed by a project, it's easy to let yourself get distracted from it. You end up working on anything except that train wreck in progress.
- Burnout. You begin to hate the thought of starting work every day. Living under a bridge is starting to sound more attractive. You look for ways to escape, and if you're not careful, you might find them.
All of the above will only slow down the project even further. Try some of these instead:
- Tell your client the hard truth. Maybe they'll be able to work something out, like allowing you to revise your estimate. Or maybe they can add someone else to the project to handle part of the load. Or perhaps some other piece of the project can be postponed. Or just maybe, they'll think of something else you overlooked that makes the whole problem go away. And even if it turns out to be just as bad as you think (or worse), they're better off knowing now rather than later -- and at least they should appreciate your honesty.
- Keep your expectations realistic. "I'll just figure out a way to squeeze it in" never works, and you know that. When you say that to yourself, your trust in your own schedule evaporates. Be honest with yourself about how long each task will take.
- Start getting things done -- but not everything at once. Don't panic, take care of yourself, and complete one thing at a time.
- Learn a lesson or two. Think about how you could have avoided this mistake. What did you need to know that you overlooked? Did you fail to factor in a high enough Uncertainty value? And if you took a fixed-price contract for this job, do I really need to spell out the lesson you should take away from that? (Hint: dee, oh, enn, apostrophe, tee, exclamation point).
Hey, bad estimating happens to everyone sooner or later. It happens to me so frequently that I'm starting to doubt that sheep entrails have anything to do with predicting the future. So you want to buffer yourself against the ill effects of a really bad estimate, here are four tips to keep in mind in the future:
- Bill by the hour, or some other unit that means "I work longer, I get paid more."
- Don't give them an estimate unless they ask for one.
- Set the right expectation with your client. "This is an estimate, and only an estimate." Tell them about all the uncertainties that you know and mention that you might not know about all of them.
- Always estimate higher than your "real" estimate.
Do you have any "oops, I overcommitted" war stories? If so, share them with the community in the discussion.Get weekly consulting tips in your inbox TechRepublic's IT Consultant newsletter, delivered each Monday, offers tips on how to attract customers, build your business, and increase your technical skills in order to get the job done. Automatically sign up today!
Chip Camden has been programming since 1978, and he's still not done. An independent consultant since 1991, Chip specializes in software development tools, languages, and migration to new technology. Besides writing for TechRepublic's IT Consultant blog, he also contributes to [Geeks Are Sexy] Technology News and his two personal blogs, Chip's Quips and Chip's Tips for Developers.