Estimating software development time is really, really hard. Here's my method:
- Come up with your best, realistic estimate using your favorite technique.
- Ok, you have your absolutely realistic number now, right?
- It's not realistic. There are aspects you haven't thought of. Double the number. This is your best case scenario estimate, if there are no snags or major changes along the way.
- Now double it again. This is your most likely estimate. This is how long the project will probably take.
- Now double it a final time. This is your worst case scenario. This is how long is might take if you run into several major issues.
- E = Your original time estimate
- 2(E) = Best case scenario time in reality
- 4(E) = Most likely time in reality
- 8(E) = Worst case scenario time in reality