Estimation
is easy: put any random number, just kidding.
Instead,
always answer 1. But, change the meaning
of that 1. Express your estimates in
hours, days, weeks, months, seasons or quarters, years, decades, lifetime.
Humans are
great at these kinds of estimates, and everyone can grasp the “order of
magnitude” of such estimates.
How long
will it take to implement feature x?
1 day has a
completely different implication than 1 year.
1 day (even
if it takes 2 or even 3 days). It means
that technology is there, that the dev team knows what to do and how to do
it. Also, it means that a 100% slip in
schedule equals 1 day, not one year.
1 year says
a lot: you need to cut the feature in smaller chunks, you need a team, there
will holidays, vacations, sick leaves, short leaves, pregnancy, the technology
might not be there yet, there will probably research and development, proof of
concepts, many changes in requirements as the project evolves and the client
plays with the software, etc. etc. In a year, a 1% slip is equivalent to 1 week!
So,
estimate using 1 and an “order of magnitude”.