Friday, October 8, 2010

How To Estimate Software

A guide to estimating percentage complete and remaining time.

I haven't looked at the problem. Completed: 0% Time esimate: about 2 weeks.

I've looked at the problem. Completed: 50% Time estimate: about 2 more weeks.

I've implemented almost everything. All that remains is the difficult stuff that I don't really know how to do. Completed: 90% Time estimate: about 2 more weeks.

I've done everything. All that remains is documentation, code review, tests and error handling. Completed: 99% Time estimate: about 2 more weeks.

I still haven't finished documentation, code review, tests, or error handling. The truth is I've been gold plating what I already wrote. But I just saw another problem that seems more interesting. Completed: 100% Time estimate: 0 more weeks.

14 comments:

  1. Shouldn't you be doubling the estimate each time? To give the impression of finally having a handle on what it will "really" take to get it done?

    ReplyDelete
  2. 10 Get estimate from developers
    20 Multiply times by 3
    30 Give estimate to developers for review
    40 Go to 10

    ReplyDelete
  3. actually:
    10 Get estimate from developers
    20 Multiply times by π
    30 Give estimate to developers for review
    40 Go to 10

    ReplyDelete
  4. OH wow, pretty cool. Never thought about it that way before.

    www.privacy-web.it.tc

    ReplyDelete
  5. I have some six months of data or so from one particular project, and did some comparing of the estimated and actual time some months ago. The magic factor was not π but rather very close to φ.

    ReplyDelete
  6. I have a simple rule that seem to work fine: Multiply your best guess by 2.

    ReplyDelete
  7. That's funny because "2 weeks" has always been my off-the-cuff estimate

    ReplyDelete
  8. Get estimate from developers, double it, and move up a timescale. 5 mins becomes 10 hours, 3 hours == 6 days, 5 days == 10 weeks etc. It never fails.

    ReplyDelete
  9. Anti-gold plating is just another way of saying developer's ideas are worthless. The fact is developers are in a much better position to judge the business value of things like code quality, UI, exception handling, and a million things that are discounted by non-developers. If developers did only the bare minimum to meet the short-sighted requirements given, the project would fail because most PHBs have never heard of words like 'nonfunctional requirements' before. In fact a large percentage of projects do fail because performance wasn't taken into account, or quality wasn't considered. Rockets explode, planes crash, and government systems freeze solid every day. If it takes 10 weeks for a developer to make a honest working product, it takes 10 weeks.

    ReplyDelete
  10. Hello 

    Nice blogging... have a nice day! Just visiting here....

    http://www.quantity-takeoff.com/
    http://projectestimating.blogspot.com

    ReplyDelete
  11. This has worked surprisingly well for me in the past (not kidding!). Stick your finger in the air and multiply what ever number that comes to mind by 3.14159265.

    ReplyDelete