Estimates in Software Development

Make a guess, double the number, and then move to the next larger unit of time.

I've long known and used this rule of thumb for estimating when a task would be finished. But it was not until I read an article in the latest Communications of the ACM, that I've taken a more detailed look at how this rule scales.

  • 1 minute -> 2 hours (120x)
  • 1 hour -> 2 days (48x)
  • 1 day -> 2 weeks (14x)
  • 1 week -> 2 months (8x)
  • 1 month -> 2 years (24x)
  • 1 year -> forever (infinity)

There is an interesting corollary to this rule that the most accurate estimations are for the tasks there are 1 day to 1 week in size. Quite interesting, that is also the smallest size of the tasks to which work is usually broken down.

Now go ahead and read "The Hyperdimensional Tar Pit" in full. And once you do, follow the advice at the end of that article.