Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Why is estimating hard?

1. You haven't done it before. Not exactly the same thing. You think you've done it before, but you haven't. If you had actually done it before, you would probably be faster this time, not slower.

2. Other things besides you have changed, or will change. Coworkers, company, customers, tools, economic realities, the weather. Either it's already changed, or it's going to change. That has an impact on deliverability, even for the exact same work. (but it's not the same work, because you haven't done it before)

3. You have changed, or will change. You're literally a different person since the last time you did it, and you haven't taken that into account, and now things take a different amount of work/time.

4. You're fallible. You just remembered wrong, guessed wrong, fucked up, forgot, etc.

5. Estimating is a skill. After a long career, you can look back at what you did and what happened, and look at what you've got now, and make an estimate. The more experienced you get, the better your estimates get. That doesn't mean they're accurate, because you can't control #2-4. But they'll certainly be closer.

My favorite is when I actually have a very strong feeling about an estimate, and I tell my boss, and he doesn't want to believe it, so he arbitrarily tries to find a way to get a better estimate. I end up right, he conveniently forgets my original estimate.



I have a story about the boss: years ago the boss walks over to me and describes a straightforward change with priority that it should start right away. I said it was a two or three day job and that considering testing and other internal process could be confidently delivered in two weeks. "That's too long, never mind". I then overhear him asking a coworker about the same project. He says: "Easy, that is a two or three day project", "great!".

What happens next? The project was delivered after two weeks due to back and forth testing and integration, debugging, etc.


Had a boss that did this, but always picked the overconfident, unreliable, under-bidder. He was incapable of bidding anything in increments of days/weeks. Everything was "an hour" to "an afternoon".

So I'd say "2 weeks to complete end to end".

The other guy would say "I'll crank it out this afternoon". Other guy would deliver code that wouldn't run, and then require 3 weeks from me, QA, and him to actually massage into something that works the right way.

So instead of 2 person-weeks, it would take like ~5-6 person-weeks all in. Great stuff.


Congratulations! You've just gone through a crash course of Bidding On Enterprise Projects, For Dummies.


I’ve been there many times too.

My conclusion in former years was that I had won, as I’d been right. But my conclusion now is that the other employee won, as they get to deliver the software, increase their “power” as they now know about one more piece of software or feature (on account of having written it). The overrun will be forgotten, but “this person delivered the feature” will be remembered.


>1. You haven't done it before. Not exactly the same thing. You think you've done it before, but you haven't

Not to mention, even if you have done the exact same thing before it's unlikely you'll be satisfied doing it the same way. What % of projects are finished with everyone thinking "Yeah that was done perfectly there's nothing I would change if I could start from scratch"?


Not to mention, you're still just learning. You don't get proficient in anything by doing it once. After you do something a few times (in relatively short succession - enough for the sequence of actions to stick around in your memory; compare: spaced repetition), only then you can have a good feel for how long it takes (and you have a baseline against which to compare your ideas to improve the process).


Note that asymptotically, believing that work is worthless is the same as ignoring it. I think this is interesting because in theory there is an infinite amount of potential work that everyone is ignoring at any given point.


Thanks. I just woke up and you're telling me I might as well go back to sleep since statistically I will make zero progress today.


Fantastic points!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: