Bad Developer, No Twinkie Part 10: Providing Terrible Estimates

This is a tricky one.

At one point or another you will be asked to give an estimate of how long it’ll take to do a given unit of work.  Unless you have tons of experience and practice at this, you’re probably going to give a terrible estimate.  Giving a good estimate is like learning to play the bagpipes: anyone can do it, but only someone with a lot of experience can actually do it well.  And in both cases, no one likes it if it is bad.

So how do you give a “good” estimate?  The easy answer: don’t give an estimate.  At least don’t give an estimate until you feel you have enough information to give a reasonable estimate.  To misquote Donald Rumsfield: ‘There are known knowns.  There are known unknowns.  And there are unknown unknowns.’  If you are basing your estimate only on the ‘known knowns’, your estimate will be wrong.  The more information you can gather, the better your estimate should be.

Other things that you may wish to consider when providing estimates:

1) Don’t give an estimate at all until you have a better idea of how much work it entails.
2) Don’t give an estimate until you’ve secretly done what is being asked, then you will know exactly how long it “will” take.  (This isn’t always an option – especially on anything larger than a few days worth of work).  Then, instead of sitting on your hands for the next while, start working on the next request.  Again, this isn’t a very good idea, but it can sometimes work.
3) Take your initial estimate, then double it.  Then double it again.  Then for good measure, add another 50%.  It’s amazing how many problems go away when the solution takes 6 months and takes half a million dollars.
4) Give a range, and state assumptions for the range.  The lower the estimate, the more assumptions you will need to complete it on time.  The higher the estimate, the looser the assumptions.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s