One of my pet peeves is when people mix up the terms "accuracy" and "precision" - a pet peeve I picked up from reading Steve McConnell's *Rapid Development*. (Page 173 of my edition - it's in the index! What a great book.)
Suppose someone asks you for an estimate. You say, "I think it'll take around two weeks." They then ask, "Can you be more accurate?"
You probably cannot, not without a crystal ball. (That said, there is a way to cheat to make it seem like you're more accurate. That's below.) But that's okay, because what they probably mean is: "Can you be more precise?"
"Sure," you can then say. "I think it'll take thirteen days, four hours, eleven minutes, and fifteen seconds."
Steve McConnel says "False precision is the enemy of accuracy." Because now, when you take twelve days and zero hours to deliver, you've proven that your precise estimate was, in fact, inaccurate. But your imprecise estimate (around two weeks) is still accurate.
But, well, come on, Steve! Would *you* fund a project if they told you, "Well, it'll take somewhere between 10 and 20 million dollars." No. But you might fund a project if they told you, "It'll take 20 million dollars at most." You - and by "you" I mean "me" - are kind of illogical that way.
So, the cheat is this - sandbag on your estimate ("It'll take three weeks and zero days") and finish early. Also known as "the Engineer Scotty method."
We typically give a highly broken-down, itemized list of features and requirements to our potential clients, each with its own (admittedly overly precise) estimate. Then we run some math on the back-end to account for "Fristrom's Law" and our historical velocity, and then we add a contingency buffer - that's the sandbagging that will protect us from our overly precise estimate. Because if we slip, hey, that's our responsibility.
Of course, our competitors don't seem to be putting padding into their estimates. Which means we often lose the bid. But that's okay: the alternative--the risk of ending up contractually bound to a project where we're losing money--is worse. And who knows? Maybe our competitors will screw up their projects and we'll be remembered as the "honest guys" and we'll get the next project.
What do you do when someone asks you for an estimate?