On project estimations

It is often the case in many projects that a “high-level estimate” is requested in regards to the budget and time of completion, this makes sense as it stands to reason that anyone looking to invest in a project would want certainties regarding these areas.

The problem with high-level estimates is that they get increasingly less dependable the longer in time they attempt to predict things, the margin of error piles up with every little thing you estimate, the more time you put into the equation the more possible unknown variables that can pop up unexpectedly. A good analogy to illustrate the point is: you might consider investing a small amount of money in a risky startup today, but would you invest a very large amount upfront on a risky startup with a projected return of years? It probably wouldn’t be the the safest investment and I doubt very many people would go for it.

Investing a large amount upfront on a risky startup is exactly what trusting a high-level estimate is though, when you expect a plan that covers the next six or twelve months to be completed you are trusting all the smaller estimates inside to be pinpoint accurate, you are also failing to account for any of the thousands of unknown factors that can (and will) come up along the way. Anyone who has ever undertaken a medium to large scale project of any type will know that as it unfolds everyone in the team will learn a lot about the problem at hand, the more time that passes the more opportunity to learn, while this is something that can be taken advantage of in some ways it too works against high-level estimates: this means the moment you start a project is the one you are the most ignorant about the whole thing, and the worst time for you to be predicting how things will work out.

Where does this leave us? In the painful reality that high-level estimates are a dangerous guess made by someone who doesn’t really know what they’re talking about. High-level estimates are a product of people expecting certainties that they can’t have in order to feel better about taking risks, placing any actual trust in them does more harm than good though: it’s the equivalent of kids covering themselves with the bedsheets hoping that not seing possible dangers will help in some way.

Estimates are not completely without merit, it’s just important to know their limitations: they get more accurate the shorter the timespan that’s involved in their execution which means that estimating weeks or a month of work becomes feasible, this is exactly the approach we take! We look at the big picture and recognize what the general direction a project needs to move in is, but we only really trust short-term estimations of the work we need to do in order to get us closer to those goals, this allows for a healthy dose of course-correction along the way, it allows for plans to be changed in the least painful possible way.

The truth is that uncertainty is here to stay and attempts to control it by these means are likely to backfire, we think embracing and working with this uncertainty is the most realistic way of doing things, fear of it keeps you in your toes, it makes you revisit your choices often and reevaluate your course of action every couple of weeks, does this seem like a lot of work? Well, it is! Welcome to the world outside of the bedsheets :).

Relevant Commitstrip: