Live data from Hacker News

Why are software development estimates regularly off by a factor of 2-3?

michaelrwolfe.com

41–50 of 173 posts

Re: Why are software development estimates regularly off by a factor of 2-3?

#41
post #9

I just don't know why people won't arbitrarily add 2-3 more time on the estimate...

Hofstadter's Law: It always takes longer than you expect, even when you take into account Hofstadter's Law.

True, and Parkinson's Law will ensure it will take at least that time

Re: Why are software development estimates regularly off by a factor of 2-3?

#42
post #18

So the article tries to describe the hidden complexity of software with a hiking analogy but then it leaves a huge part missing. Let's extend the analogy somewhat... this isn't your first hiking trip. In fact, you've been on dozens and dozens of hiking trips. You're an experienced hiker. Yet, why do you continue to give meaningless as-the-crow-flies estimates of how long it will take you to get to your destination? T…

Yep, I agree estimates are a lot more important when you work for yourself. I've had at least one client comment on how pleased he was that my estimates were usually accurate. I know another developer was giving him answers like, "That will take 5 minutes!", so perhaps his expectations were low. :-)

On the other hand, giving realistic estimates I often hear clients say, "I asked around, and other folks say this should take half what you're quoting." Usually this happens before the work, but I once had it happen in the middle of a long-term engagement after I delivered a two-week invoice, and they were disappointed I hadn't accomplished more. So if I'm not careful I can lose my clients' trust, which is my highest asset. I've gotten pretty good at explaining why a job isn't 5 minutes (or 1 day, or whatever), but I might save this article as something to share if a client doesn't have much experience doing software projects.

Re: Why are software development estimates regularly off by a factor of 2-3?

#43
Forgive my username, there is nothing logical about this.

It's because estimates are really just a test of your imagination and skill. They're a "different game" from delivering something. Here are some examples:

How long does it take you to add 1 + 1 together? The only correct amount of time is "0 - no amount of time." But clearly that's not true, is it?

How long would it take you to multiply 5 by 7? Well, zero. No amount of time - you know it 'by heart'. It doesn't take you any amount of time to multiply 5 by seven. Well, clearly, that's not true is it?

How long would it take you to test whether 31337 is prime or not, by any means? Like, 1 second because Wolfram Alpha can tell me I bet. But clearly it wouldn't take me ONE second, would it?

How long would it take you to write a function to test whether an integer less than 2^32 is prime or not, without having to be super-efficient about it? Well like 10 seconds. But, clearly that's not true, is it?

And so on. How long does it take to put a twitter bootstrap page up? Like, 5 minutes.

How long does it take to...

You should be able to build an app that doesn't crash and does what you're trying to code in like a day.

You should be able to build something that is software you can launch with in like a week, as an MVP.

You should be able to replace someone else's mature product with a reimplementation in like a month.

You should be able to build a scalable business that is ready for a series A in like a year.

These things are not meant to be accurate, so much as show that you have imagination.

Re: Why are software development estimates regularly off by a factor of 2-3?

#44
post #18

So the article tries to describe the hidden complexity of software with a hiking analogy but then it leaves a huge part missing. Let's extend the analogy somewhat... this isn't your first hiking trip. In fact, you've been on dozens and dozens of hiking trips. You're an experienced hiker. Yet, why do you continue to give meaningless as-the-crow-flies estimates of how long it will take you to get to your destination? T…

I'm glad you got better at it, but I don't think software estimates can ever be very good. Nor should they be.

That a project is estimatable has to mean that novelty is low and predictability is high. But low novelty is a sign of duplication, which should be factored out into things like libraries, frameworks, and self-service tools. High predictability is either a sign of duplication or it's a sign that people have basically agreed not to learn anything during a project. If you are shipping early and often and study users and metrics as you go, then you will always learn things that affect the plan. Which means that the schedule isn't predictable even in theory.

Re: Why are software development estimates regularly off by a factor of 2-3?

#45
post #18

So the article tries to describe the hidden complexity of software with a hiking analogy but then it leaves a huge part missing. Let's extend the analogy somewhat... this isn't your first hiking trip. In fact, you've been on dozens and dozens of hiking trips. You're an experienced hiker. Yet, why do you continue to give meaningless as-the-crow-flies estimates of how long it will take you to get to your destination? T…

Been going at it for a couple years now with consulting and freelancing. I've finally gotten good at hitting my estimates. What worked for me was to keep strict time of everything (shoutout to toggl.com, love it!), so I could learn from my mistakes. The trouble is now though, my competition seems to be underbidding me, but in reality they're providing those ~33% estimates they will never realistically keep, while I'm…

If you're really good at estimates, try to play that you can keep not only the final delivery, but also the partial ones. Something like "you can be sure I'll get 100% done because you can check when 10% is going to be done". Sure it's not a guaranteed sale - and it's harder to keep both partial estimates and totals, comparing to only totals - but it's still something.

Re: Why are software development estimates regularly off by a factor of 2-3?

#46
This McConnell book[1] is a must read on the subject. Generally developers just fail at estimating at a fine grained enough level and forget about all the ancillary tasks that take up a majority of a project's time.

[1] http://www.amazon.com/gp/aw/d/0735605351

Re: Why are software development estimates regularly off by a factor of 2-3?

#47
post #18

So the article tries to describe the hidden complexity of software with a hiking analogy but then it leaves a huge part missing. Let's extend the analogy somewhat... this isn't your first hiking trip. In fact, you've been on dozens and dozens of hiking trips. You're an experienced hiker. Yet, why do you continue to give meaningless as-the-crow-flies estimates of how long it will take you to get to your destination? T…

Been going at it for a couple years now with consulting and freelancing. I've finally gotten good at hitting my estimates. What worked for me was to keep strict time of everything (shoutout to toggl.com, love it!), so I could learn from my mistakes. The trouble is now though, my competition seems to be underbidding me, but in reality they're providing those ~33% estimates they will never realistically keep, while I'm…

What worked for me was to keep strict time of everything (shoutout to toggl.com, love it!), so I could learn from my mistakes

Right, that was part of my method as well. I learned to keep really good notes of each part of the project. At the end of each project, I compared my "what I thought it would take" with "what it actually took". In subsequent projects, I tried to match up similar complexity items with "what it actually took" notes to remind myself of the pain.

Re: Why are software development estimates regularly off by a factor of 2-3?

#48
post #9

I just don't know why people won't arbitrarily add 2-3 more time on the estimate...

Hofstadter's Law: It always takes longer than you expect, even when you take into account Hofstadter's Law.

Yes but wouldn't it at least close the gap to make the time estimate a little more realistic?

Re: Why are software development estimates regularly off by a factor of 2-3?

#49
I just had an estimate/actual conversation that went like this: I think it will take me X time. Ok, but I want it done in .5 X time. Ok, I'll try to get it done in .5 X time. I finish it in X time.

Is it a missed estimate? That depends on who answers.

Re: Why are software development estimates regularly off by a factor of 2-3?

#50
post #47

Earlier quoted context omitted.

Been going at it for a couple years now with consulting and freelancing. I've finally gotten good at hitting my estimates. What worked for me was to keep strict time of everything (shoutout to toggl.com, love it!), so I could learn from my mistakes. The trouble is now though, my competition seems to be underbidding me, but in reality they're providing those ~33% estimates they will never realistically keep, while I'm…

What worked for me was to keep strict time of everything (shoutout to toggl.com, love it!), so I could learn from my mistakes Right, that was part of my method as well. I learned to keep really good notes of each part of the project. At the end of each project, I compared my "what I thought it would take" with "what it actually took". In subsequent projects, I tried to match up similar complexity items with "what it…

Same! And I'm sure the reason it didn't take that long with getting good at it, was it hurts like hell when you do the 33% thing on a couple large projects, when you're on your own.
Post reply on HN