HACKER Q&A
📣 surprisetalk

Tips for Estimating Projects?


I'm not very good at predicting how long things will take.

Any suggestions?


  👤 PaulHoule Accepted Answer ✓
See https://www.microsoftpressstore.com/store/software-estimatio...

One technique is to break the task down into little bits, estimate the bits, and add it up. When I was writing form applications with a simple framework I would estimate out tasks in 10 minute granularity (change the label of an element, add a validation rule for email addresses, ...) and I could estimate a two and a half day project with 10% or so accuracy spending less than 1 hour on project management.

The run-break-fix cycle is another model which gives insight into problems that are harder to estimate. I had to update a lot of dependencies for a React project and get it to work in the Shadow DOM and it was a matter of playing whack-a-mole with bugs in a number of cycles (unknown) that themselves take a predictable amount of time.

If I had to do it for another project that uses many of the same libraries it would go much faster and I could estimate it better because I know what obstacles I faced and will be able to remember or copy the solutions.

Lately I have been interested in a technique of "comparables" as in the way people determine house values based on the sale of comparable houses. If I was trying to estimate something big I'd look at business intelligence including crunchbase, linkedin, the press, and also personal communications ("... we built this in two years with six people") If I can find several companies that built something like what I'm thinking of with certain resources it's not crazy to assume that somebody else can)


👤 JohnFen
> I'm not very good at predicting how long things will take

Very few people are.

Unless you've done another project that is very similar, any estimation is going to come with a very large error bar, because you don't really have enough information to make an accurate one. There will be unforeseen difficulties, both technical and not, that weren't part of your estimation.

What I tend to do is to sandbag my estimates, to allow room for the unforeseen. So if I really think it's going to take two months, I'll estimate four and it will usually take about 3.5.

Which brings me to my tip: the reason I double my "honest" estimate is because I've paid attention to projects gone by, and observed that things tend to take about twice as long as I think they will. I'm guessing other people would have different correction factors. Pay attention to history to discover yours.

Also, I make it overt that my estimates are "man hours" and not calendar time. In other words, it's my estimate of how long it will take if I'm literally doing nothing else. In reality, I am doing other things as well but trying to estimate around that fact makes my estimates useless.