Task estimation

Hellstormy@lemmy.dbzer0.com to Programmer Humor@programming.dev – 937 points –
35

Teach this to your manager: At the beginning of a task, uncertainty is highest. Under no circumstances should you give an estimate in ‘man-hours’. Even days is too precise. The first estimate should be in months or years (of course depending on the size of the project). Then, as your insight into the project grows, you refine that to months, then weeks, later days. A vague estimate with a lower and a higher bound is way more useful to your manager than a ridiculously ‘precise’ but highly speculative number.

This lesson was brought to you by either “Code Complete 2” or “Rapid Development” by Steve McConnel, and by my former manager who wanted projects estimated in minutes.

my former manager who wanted projects estimated in minutes.

Sorry, the number buffer overflowed.

I usually say what unit of measurement we're counting in: days, weeks or months. For more detail, more specs are needed.

1 more...

Don't forget to add padding, so I'd just round it out to 18 months to be safe.

A good project manager doubles your number an adds 20% anyway.

Triples it if you are working more than one project.!

A typical project manager will get a range, take the lower bound and communicate it as the only relevant number to every other stakeholder. When that inevitably does not work out, all the blame will be passed on to you unfiltered.

Depending on where you work it may or may not be worth giving someone new the benefit of the doubt, but in general it is safer to only ever talk about the upper bound and add some padding.

I hear this criticism all the time, but I've never seen it happen in 5 companies I've worked for so far. Usually there's an understanding that estimates are wild guessing, and things are planned using dependencies rather than timeliness.

Only novice PMs do that and believe it or not, the project manager carries the can for failure .

I have a friend who's a new PM (in scaled agile). He isn't up on expectation management.

We have a process where we request data from another agency which takes "from 7 seconds to 12 days"

And of course he tells people that. And of course they hear "7 seconds"

I have told him that if the SLA is 12 days, say "less than 12 days"

My teams new hire project manager was even more advanced. When they found out we were working on 5-10 projects at once with no PM, they quit.

We had 3 PMs when I started here, and have been down to 0-1 for 6 months. That 0-1 runs a whole unrelated team, but is technical still a PM.

Dysfunction is fun. The plus side? No one asks me for estimates.

Wow. I just lost mine. Been through at least 5 so far... Of course I'm working on around 6 projects at any point.

My favourite was when I migrated a website to Plesk, and my boss wondered why it took me 8 hours to migrate a single website...

this is my number one thing I hate. So we are going to be converting over one system to another and you have no ideas what issues will pop up. give an estimation on the project. or like estimation onf fixing a bug or doing something you think the software can do but your not real sure till you look into it.

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

The known unknowns and especially the unknown unknowns never get factored into an estimate. People only ever think about the happy path, if everything goes right. But that rarely every happens so estimates are always widely off.

The book How Big Things Get Done describes a much better way to factor in everything without knowing all the unknowns though - Just look a previous similar projects and look how long they took, take the average and bounds then adjust up or down if you have good reason to do so. Your project will very likely take a similar amount of time if your samples are similar in nature to your current task. And the actual time already factors in all the issues and problems encountered and even if you don't hit all the same issues your problems will likely take a similar amount of time. And the more previous examples you have the better these estimates get.

But instead of that we just pluck numbers out of the air and wonder why we never hit them.

yeah I have literally had something where I list off a bunch of problmatic stuff and how it could be some high side and then follow up or everything could go swimmingly which never happens and we could have this low side and they are like ok so the low side. no. no. that is not what im saying.

Montgomery Scott of the Starship Enterprise has entered the chat.

My manager once accused me of overinflating my (granted, very conservative) estimates just to be able to pull off a Scotty and be early in 10% of the time.

I don't know, that mindset is so foreign to me. If someone was overestimating how long it would take because they were simply trying to be conservative and not run into unexpected cost overruns, I would commend them. I've always considered it more prudent to expect something to take longer so you know the kind of budget you need up front instead of lying to yourself about it. It costs a lot more (in terms of lost time and productivity) to have to swing a new budget mid-project because it turns out you've burned through the planned budget and you're only 2/3 the way done with the project.

So, screw your manager, you're doing the right thing, in my eyes. I guess that's why I'm not in charge of anything.

You know, maybe we shouldn't be taking estimation advice from a 1980s science fiction movie that amounts to a systematic method of lying.

Yes, I've used it before. Yes, you can hopefully have everything average out in the end. Yes, project managers demand estimates. None of these are good reasons to back up how fundamentally flawed it is.

It's called a joke. We're in a sub called "programmer humor." You must be fun at parties.

Except people take that method seriously all the time. All the objections I raised were one's people have actually thrown back at me.

I'm tons of fun at parties. Everybody loves seeing my collection of bottles from defunct soda companies.

My boss asking, me: "2 days to a week".

Meaning: 2 days best case scenario, but there's likely something where i'm stuck for days trying to solve it, so a week.

My boss: "ok, two days then."

That's because all tasks finish in the dot of the "i" of the Jeremy Bearimy sprint, I dunno what to tell you...