Thursday, 4 June 2015

Estimation and Inductive Logic

In the previous post we talked about estimating tasks using story points, and how measuring complexity was an exercise in relative estimation (a comparison of 2 things), rather than absolute measurement.  Estimating complexity rather than time is the most difficult part for people to get their heads around, and it might help to understand a bit about how we use estimation in everyday life to provide some context.

In order to do this, I need to delve into some old-school logic.  Stick with me, I promise this is going somewhere relevant.


There are two main types of inferential logic, and these are from the general to the particular (called deduction) and from the particular to the general (called induction).

Deductive reasoning is the process of creating a valid argument from 2 or more propositions.  The classic deductive example is the syllogism:

All Greeks are men
All men are mortal
Therefore, all Greeks are mortal

The conclusion to this syllogism (all Greeks are mortal) is said to be valid, and considered to be rigorously provable using symbolic logic, which we won’t go into here for reasons of brevity, but it looks like maths and comes prior to maths; it is the entire basis on which mathematics stands.  For ease of remembering, the logic that Sherlock Holmes uses to solve his cases is deductive – he has facts A, B and C, and deduces from them conclusion D (it’s not strictly accurate to say that about Holmes all of the time, but it’s true for enough most of the time to be a useful way of remembering it).


Inductive reasoning is the process of drawing conclusions from specific examples.  Unlike deductive reasoning, there is no certainty to inductive reason; it infers, or produces a probability, rather than producing a logically valid conclusion.  This is the so-called problem of induction, and has been argued over by philosophers for a very long time.  An example of inductive reasoning would be:

The sun has risen every day since I was born.  Therefore it will rise again tomorrow.

Now, barring some (literally) astronomically unlikely event, this is true, at least for the next 4 billion or so years.  But it’s not true in the sense that the syllogism above is true.  There is nothing that can change the valid conclusion of the syllogism; it is a matter of logic, and the “real world” can’t alter that validity.  Even if there were no Greeks, or a Greek was found who was immortal, the logic of the statement would still produce a valid conclusion. 

But the inductive statement about the sun rising could be false, or it could be made false by something happening.  As an example of that, in Britain for a long time it was considered that a defining feature of a swan was that it was white.  This was taken as just a fact of life – the sun is yellow, grass is green, swans are white.  An inductive statement around that might be “I’ve never seen a swan, but if I do, it’ll be a white swan”.  Perfectly reasonable, but also completely false, because it turns out there are black swans in other countries.  Ultimately, the logic of a “true” inductive statement simply doesn’t provide a valid logical conclusion, even if the statement is factually correct every day of your life. 

The important thing about inductive reasoning is that it is how we predict things in order to navigate around our lives.  If I was asked how long it takes to get from Swansea to Cardiff, I would say “54 minutes”, because I know from experience that that is how long it takes the train to get from Swansea to Cardiff, or I might say “about an hour”, because I know from experience how long it takes to drive there.  That is inductive reasoning.


All very interesting, but how does this relate to estimating story points?


We estimate things - the time it takes to get somewhere, the height of a person, the weight of a bag - based on inductive reasoning. I'll make that point again to be absolutely clear: We estimate using inductive reasoning.  That means that estimation is a process of taking our previous experience and drawing logical conclusions from it. 


It is therefore entirely natural to think that the process of "estimation" in sprint planning will use the same experience-based reasoning, regardless of whether we are estimating time or story points.  After all, no matter what the system of measurement, you're using the same experience to make the estimation.  This must mean that complexity and time are really correlates of each other, right?

Wrong.

When you are estimating story points, the process is one of comparison, NOT one of estimation.  This is where people seem to get hung up.  Even if they don't understand what inductive logic is, something feels wrong to a lot of people if they are asked to estimate something in complexity without correlating that complexity with time. There's a good reason for that: Estimation as an activity requires experience of previous situations from which you use inductive logic to make a prediction about the future.  But when you are starting out in agile, you probably don't HAVE any previous experience in estimating complexity, but you DO have experience in estimating time.  So it feels much more natural when you try to estimate a task to work out how long it will take you, instead of just how complex it is. Your mind gets pulled into the literal meaning of the word "estimation", but you're not estimating at all, you're comparing. This is a qualitatively different activity. You compare "against" (something else), you estimate "in" (a unit of measurement).

When you go into your next sprint planning, try swapping the word "estimate" with the word "compare".  You may find that the process makes a lot more sense for you.  And if it doesn't, at least now you know why!