by shbhrsaha on 5/9/22, 5:27 PM with 39 comments
by williamkuszmaul on 5/10/22, 2:13 PM
The reason this does well, is that oftentimes, (1) overestimates the true answer by roughly the same multiplicative factor as (2) underestimates the true answer by. So the geometric mean cancels the over and under estimates in order to get an estimation that does pretty well.
I find that this works remarkably well for estimating the dimensions of buildings, trees, etc.
by throwaway4good on 5/10/22, 9:49 AM
by abetlen on 5/10/22, 11:46 AM
(Best + Worst + 4 * Average) / 6
One nice property is that it imposes a distribution that adjusts for longer tailed risks.
by zerop on 5/10/22, 11:23 AM
1. Starting with an End date and create a plan from there. Some top leads want to get promoted and want to achieve X by this quarter or next.
2. With so many people leaving, there is not enough time and resources to onboard new folks, who are accounted in deliveries
3. Too many parallel initiatives
4. Unstable production taking daily attention
5. Not able to priortise tech debts over business features
6. Decision makers at top don't have grass root visibility or don't want to have.
by m4l3x on 5/10/22, 8:02 AM
by trashtester on 5/10/22, 11:43 AM
Then multiply by 4.14.
This provides room for
Phase 1: First verions of the deliverable: xpi/2
Phase 2: Trying to work around all the cases where the initial design was bad: xpi/2
Phase 3: Re-factor from scratch (with the same team) : x1
Sum phase 1-3 : x(pi+1)
This is for facing the customers/stakeholders. When facing the team, only present them with Phase1, with the estimate of xpi/2.
Otherwise, phase 1 alone will take x(pi+1).
by jph on 5/10/22, 9:27 AM
R = Realistic estimate. Based on work being typical, reasonable, plausible, and usual.
O = Optimistic estimate. Based on work turning out to be notably easy, or fast, or lucky.
P = Pessimistic estimate. Based on work turning out to be notably hard, or slow, or unlucky.
E = Equilibristic estimate. Based on 50% probability suitable for critical chains and simulations.
by dncornholio on 5/10/22, 11:12 AM
by airbreather on 5/11/22, 6:47 AM
P10 = 10% chance of occuring, P90 = 90% chance of occuring.
How it's typically done is standard scheduling packages, like Prima Vera, allow you to specify a band or range of duration/effort for individual tasks/activities.
This, when combined with task dependency information (which you must give it in the form of a Pert chart or similar, it takes a few different formats of data) means it can calculate the critical path across the whole range of activities for an overall outcome and yield the project P10/P90.
Then, you can run sensitivity analysis and identify key pivot points, look at assigning more resources to certain efforts etc etc and optimise the schedule, plus track actual progress as you go and make forecasts.
But this is all based on the premise of doing the kind of engineering where you have some reasonable idea of what your actual goals and methods are before you start, so if you are running under agile you are probably screwed because even if you tried this planning, your planner/s could probably never keep up with actual.
To understand the difference between an engineered project and an agile one see my comment https://news.ycombinator.com/item?id=31299834#31301616
by troelsSteegin on 5/10/22, 10:01 AM
Having multiple people independently estimate a given problem is a more robust way to estimate, in general. Other than as a lead and a dev each sizing something up, I don't think I've seen that in practice. It feels a little weird for developers to be estimating each other's work. I think it's interesting if and only if Committment is truly separated from estimation.
by fishtoaster on 5/10/22, 4:16 PM
Partially, this is on engineers. They'll say "That'll take 36 days" and not realize that they're implying a higher level of specificity than they intend.
Partially, this is on consumers of estimates (managers, etc). They'll hear "It'll be about 36 days, but that's just a super rough estimate, we haven't planned it out yet, it could be way more..." but they stopped listening and wrote down "estimate: 36 days."
My current eng team has fixated on two distinct levels of eng estimates. The first is super high level: "minutes to hours", "hours to days," "days to weeks", "weeks to months," or "months to quarters." The second is a number of hours. We give out the high-level estimates freely - they're super helpful for project planning. We give out the second number only when we have a pretty solid plan with estimated tickets.
It's worked pretty well because engineers can always be clear on which estimation type is called for. It's also helpful because non-engineers can get used to hearing the high-level estimates pretty quickly and know to treat them as super vague.
* We actually deliver all hour estimates as 30/60/90 estimates: "we're 30% sure it'll be done in 36 hours, 60% sure it'll be done in 50 hours, and 90% sure it'll be done in 80 hours". There's still a tendency of people to just use the 60% estimate as "The Estimate," but it's better than nothing.
by onion2k on 5/10/22, 9:56 AM
I've never been in a position to actually use this approach well, but I like the idea of it a lot.
by marcosdumay on 5/10/22, 4:51 PM
Thus, if your goal is to lie to management stating that "we met 98% of our estimations last year" implying that because of this, there is not problem, then yes, go work on improving your estimates.
If your goal is to get things done so you can get some real progress, go set realistic targets on time or ROI and learn to throw away tasks that failed it.
And if your goal is to never get an estimation wrong, because they are commitments that you can never get free after you made them, go practice your interview skills and move to a better environment.
by makach on 5/10/22, 12:36 PM
by LouisContant on 5/10/22, 1:05 PM
by throwaway98797 on 5/10/22, 1:13 PM
often folks don’t know if what is being estimated is actually knowable.
building something new pre product market fit is a crapshoot until it’s not.
by windows2020 on 5/10/22, 1:30 PM