You will never become an expert at estimating

As I’ve mentioned before, accurate estimates are hard. To make matters even worse, you will never become an expert at it.

It’s just not possible. If you practice enough, you may become an expert at playing chess or tennis. Why? They are both activities with predictable rules and clear consequences to any action. The concept isn’t difficult to grasp, in order to master it you just need to practice (a lot).

The saying goes that no chess game is ever the same, but an expert chess player will still have an intuitive feel for the game. Looking at a chess board in the middle of a game, she can immediately tell you the preferred moves and the likely outcome of the game.

Estimating complex projects is another story. You probably have to deal with unknown uknowns. There are the stuff you know, and the stuff that you know that you don’t know. But what usually kick you in the groin, are all the things that you don’t know that you don’t know. Any number of things may happen during the project that will dramatically affect the outcome.

To make matters worse, our brain has a nasty habit of completely ignoring unknown information. In the context of estimating, that means unless you know absolutely everything about the task at hand, you will underestimate the work required. You have to force yourself to consider the known unknowns, and include them in your estimate.

Your brain also loves replacing a hard question with a simpler one. And most of the time, you won’t notice. “Will it be a good investment to buy this house?” is a complicated question, that most people readily replace with “Do I like this house?”. Much easier.

The same thing happens when someone asks you to estimate a complex system based on some simple drawings of the user interface. Your brain goes into lazy mode, and attempts to replace the difficult question “How long would it take to design, build and test all the logic behind that system while working in a team of several people?” with the much simpler “How long would it take me to build a system that looks like that?”

And the answer to that question, as we all know, results in a useless estimate.

The third problem is that we are all too confident in our own abilities, and in hindsight we are usually convinced that we had a hunch or gut feeling about the true outcome of the project. So whenever a project goes over budget, we usually “knew” deep inside. We just need to follow our gut the next time! And whenever a project is actually on time, we have probably added features until we spent the available time. And whenever a project is delivered before the deadline…just kidding, that never happens.

So the next time you are asked to estimate something: Pay attention to your gut feeling, that is your experience talking. But force your brain to keep working. Consider what you don’t know, and be honest with yourself and everyone else about the fact that your estimate will never be 100% accurate. The larger the project, the more uncertain your estimate will be.

If you want to know more about how your brain works in relation to decision making and predicting the future, I strongly recommend “Thinking, Fast and Slow” by Daniel Kahneman.

Happy estimating!



Posted on June 15, 2012, in Management, Software development and tagged , , . Bookmark the permalink. Leave a comment.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: