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.
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.
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.
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.
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.