12. @t_magennis
12
Don’t estimate if you don’t have to
Set achievable dates, backed by a plan
Used data (only) when it exceeds judgement
Estimate in the largest units practical
Track missed assumptions (not status)
This presentation lists my top 5 tips for forecasting and estimating software projects. My name is Troy Magennis and I run a consulting company focused on helping organizations plan more reliably.
The famous quote from George Box succinctly says that no matter how hard we try, or how much money we spend, all forecasting models are wrong in some way.
Being wrong doesn’t mean useless. The guidance we get from a model just has to be superior and cost effective against the status quo methods – in software development estimation, that’s a very low bar.
Our industry uses flawed methods at worst, a gut instinct at best. Even with crude models we will see an improvement in outcomes.
Starting with definitions of estimation and forecasting models. There is often a lot of debate about this on Twitter, so I‘m going to give you my definitions.
Guess or Estimate is what it sounds like – someone, hopefully someone with historical context gives an opinion. Its not always in-expensive though. Getting an expert or a team of experts to give an estimate can take considerable time. Its also common for expert guesses to be in the form of a range. This helps convey some uncertainty and risk of each guess. It turns out although due to cognitive biases humans perform poorly at guessing. However, we can be trained by practicing. Dylan Evans in his book Risk Intelligence, and Douglas Hubbard in How to Measure Anything teach ways to calibrate estimators.
The difference between estimate and forecast isn’t if data is used. Good experts will call upon data to help them weigh in on a decision. We earn the right to use the word forecast when we are estimating the future using some more formal mathematical or statistical model or technique. Trend based extrapolation is common, this is called regression. Velocity based burn-downs/up’s are a regression forecast.
As models get more complex, they begin to provide a set of results, and this allows statistical probability to be computed. This is called probabilistic forecasting.
If there are no choices that will cause a change in direction then there is little or no need to estimate. Sometimes though, the ability to change investment levels once work has begun is limited. Sometimes the cost of missing a certain date is excessive. For these cases, some forecasting is necessary in order to find what investment in people and resources is required to achieve an objective date.
Estimation and forecasting help provide clarity over which option is best to pursue. However, just focusing on choosing the best option often leads to elaborate methods that still fail.
The ability to eliminate poor or un-economical options is a key reason to estimate. We often forget the disasters we avoid by even the minutest of research and estimation about a potential option.
For example, The companies goal is to get from point A to point B. This could be a financial goal, or a customer retention goals. Its some increase in value.
The teams identify three options. By even a crude estimate in effort (displayed here by line length), Option 3 is at last 2x option 1 and 2. By quickly ruling out Option 3, we are still left with Option 1 and 2, but since they are so close we could just as easily toss a coin than go into days of estimation deliberation.
Often to rule out options is to just know one option is an outlier. Use a calendar quarter if it makes a decision. Then months, and once you are blow that make it clear options are pretty much equal given the uncertainty of risk. Looks for some factor OTHER than calendar date that separates these options.
I hear estimation takes a long time, and almost every time I look its because of this premature detail estimation when some other glaring factor was overlooked. For example, speed and reliability of the final solution.
Expert judgement is called upon to estimate when we need to. Context matters. Einstein may not have been great at giving you the recovery time from certain surgery, a surgeon understands that through seeing historical trends of recovery time. But that same surgeon may not be the right person to delve into space and time calculations.
One point of caution here is that its not raw intelligence, or the act of doing the equations or surgery that counts here. It’s the exposure to prior samples. Its seeing the feedback from experiences that helps calibrate the experts against their cognitive biases.
Given equal access to estimates by calibrated experts and historical data, we are faced with a decision of which one to trust. It comes down to how much you trust the expert and the data. Now it is up to you to use your intuition and experience to choose. My advice: do both and hope they agree. When they don’t – look at the assumptions used by each and take the one that accounts for more assumptions you can corroborate in some way.
I tend to avoid giving calendar dates as a forecast. I give a credible plan for hitting a desired date. I fix the date, or a few dates and work out what it takes to hit those targets. Often this highlights what is humanly viable versus dreamland. By approaching forecasting in this way, hard decisions about team size and scope size is dealt with upfront. A solution to hitting a planned date is a collaborative process not a combative one. Its harder to say just work harder when you can say, we actually don’t have any team until December.
Never underestimate the power of arbitrary BUT achievable and credible goals. For example, in the NY Marathon historical finish times, there are huge spikes just prior to round numbers. This doesn’t mean someone who finishes around 5 hours will finish at 4 hours; it just means that people who would have finished just after 4 hours, somehow manage to get those few extra minutes. 1.4 times more likely to finish in the minute prior to 4 hours than the minute after.
What I’m really saying here is work out the plan, and round it up or down to the nearest month. Its easier to communicate. And its likely that people make informed prioritization decisions to hit that target.
To summarize the five tips for forecasting,
Don’t estimate if you can get away with it
Use the largest units of measure that gets a decisions
Balance your trust of data versus experts
Fix an achievable date and work a plan to achieve it
And track what assumptions you make in your plan. Use these as binary indicators of hitting or missing the plan.