Wednesday, 6 July 2016

Why not estimating doesn't make sense

Here's a breakdown on my view of "not estimating" (or the hashtag #NoEstimates).

Let's start with the NoEstimates definition:

Key: "...alternatives to estimates [of time, effort, cost] for making decisions"
One could wonder why "value" or "benefit" is left out of the list, as if value alone would be enough, but anyway, this is in essence a good description why we estimate: to make (inform) decisions.

Let's continue with definitions. What does it mean "to estimate"? Let's go to the dictionary:

But, perhaps NoEstimates uses another definition? No, it doesn't seem so. This is a slide from a presentation by Woody Zuill:

Basically this definition is the same thing as the dictionary version. The dictionary is just more "condensed" and better generalized.

So, the definition would now be "...alternatives to having a general idea about the size or cost of something for making decisions" (I excluded "value").

Let's look at "size". When making decisions, those decisions have impacts. What we want to get a general idea about is the size of the impacts of those decisions. And here the NoEstimates definition of "estimate" fits as well. Everything we do has a cost and takes some effort (and has "value", but we've for some reason left that out). It's the size of those things we want to have an idea about.

Now, one automatically wonders: what would an alternative (to estimates) be?

There are alternatives: Random or chance/hope (and time traveling, but I won't cover that).

You could do "Eeny, meeny, miny, moe" or roll a die, flip a coin, JavaScript Math.random() or turn to Tarot cards, haruspicy, tasseography, or... well the possibilities are probably endless.
But if you'd make a decision (and spend money on something) would you use any of these methods? Well, some do (I guess). But as a piece of advice?

This can't be it. But other alternatives?

Setting a (fixed) budget? But what should the size of that budget be? Math.random()? And how would we have an idea of the size of the scope for that budget ("What's possible")?

Setting a timebox? Question still remains: what's the size of that timebox? Math.random() again..? And the other question remains as well: the size of the scope for what can be accomplished within the timebox?

Seriously, I can't come up with any alternatives. And I've so far never heard one either. And to be honest; there are none either. It's plain old common sense.

Hence, not estimating doesn't make sense.


  1. Indeed. To make any decision without considering the cost/impact of that decision, simply because hey, you can't be SURE of it, is to willfully put on a blindfold, and/or to say that cost & impact simply don't matter. Who can possibly support that?

  2. In general. Instead of predicting (and estimating) the future, look some days or weeks back and evaluate if you are on the right path. If Yes, continue. If No, try to figure out what you can do better.

  3. #NoEstimate includes estimates, just a lot smaller ones. Why estimate when you don't know? That's exactly the same thing as hoping, just with a set number that might come in the way. Sure, if you aren't going to be involved and see if things are heading in the wrong direction or takes to long time, estimate away and end up with a forced product, late product or more expensive product.

    Believing that this will generate a good amount of ROI is not an estimate. It's not random either. An estimate would be to try to figure out how much income it will make when you have no idea how good it'll be, how many customers you'll get, how the weather will change, how the economy will change. If you believe it'll be a good thing to do based on your knowledge of whatever area we are working in, an estimate won't really give anything more. You won't do an estimate and say "Hey, this won't give me any income...thank god I worked on this estimate!". That's what market research is for, not estimates. You research how many people of your target group lives in a relevant area, you don't estimate. If you can't get that number the problem is TFB and you should perhaps change the target group or move to another area where you can get that numbers because the area you were in were no good, or realise that you simply have no fucking clue and decide if you want to take that risc or not. What you shouldn't do is make an estimate and rely on that for your decision.

    If you can make a very correct estimate, then you have a problem that is very small or you've been very good at picking out small chunks of information to get a very good overview.

    You were looking for a solution other than estimates (guesses) and here it is:

    Research facts
    Decide if you trust that solving the problem is important enough to work at.
    Figure out what you can make that solves the problem or part of the problem om a short period of time.
    Keep track of the development and pull the plug if things are going the wrong way, keep at it if everything looks like you are working towards solving more and more of the problem AND solving those parts are worth keeping at it.

    At one point you might think, no at this pace solving the major problem is not worth working at. It's simply to fucking big. Luckily all the work you've done so far has solved parts of the problem and all steps have been worth it. Or in worst case you realised it was all in vain in time to fail with a far lower cost than if you had an estimate and didn't stop until you reached that and the goal wasn't reached.

    You can't just stop doing estimates, you have to work at the problem the correct way as well. #NoEstimate is not a key, it's just a provocative part of a better and more often than not a more cost effective plan to solve problems.

    When Elon Musk decided he was going to go to Mars he didn't start building the rocket that would take him there. He started solving parts of the problem with minimal viable products. What do I need to go out in space, what do I need to get the cost of a rocket down, what do I need to go to the space station, what do I need to land on earth again? The only estimates he has are really really big and very very lofty. Imagine if his goal was to go to mars and back with the same ship and take a fee for travel. That would be a really really bad investment if you tried to do it, so he isn't. He made a rocket that could launch and get back while being lighter than other rockets. Why? Better ROI while still solving part of the first goal.

    Be aware that your belief that things are worth doing is a guess and when you stop believing it's worth continue, cut your losses. #NoEstimates

    1. An estimate is not a guess. A common misunderstanding in NoEstimates. Go learn what a estimation is about first.

      Anyway, overall, what you say makes sense though.

      Simply put: we should at least try to help estimate how other people's money should be spent. Anything else wouldn't be an act of collaboration. All work has a cost, regardless how small or big that work is. Those paying for that work wants to have an idea roughly what kind of figures they can expect on the invoice and also roughly what they can expect to get for that amount of money. This is basic stuff (and is easy to relate to yourself when hiring labor work, like craftsmen etc.) This is why NoEstimates doesn't make any sense. Or as Alistair Cockburn says: "NoEstimates is a hoax". It is.