On codebetter.com Peter van Ooijen has published a blog entry on the evolutionary mechanisms one…
You have this great new project. With groovy new technologies, a fine bunch of developers, and a preliminary set of requirements that looks challenging. And now the customer asks you to give an estimate for the release date.
When will you deliver the product?
So you do a bit of estimating, perhaps using the Wideband Delphi technique, and taking into account the Cone of Uncertainty, and then you come up with a target release date of, say, six months from now. And you explicitly tell the customer that the date you're giving is a planned release date, not a promised date. The actual release date can be somewhat sooner or somewhat later. Right? There's probably a margin of plus or minus one month, or something like that. Right??
You just made a terrible error.
You forgot about power laws.
Power laws are everywhere. We find them in gravity, stock markets, populations, wealth, fractals, language, geophysics, revenues, intelligence… To name just a few. Power laws are easier to draw than to explain. Here's one:
Power laws are sometimes known as the 80-20 rule, sometimes as the long tail, sometimes a Zipf's Law, sometimes as scale-free networks, etc. But all of those variants come down to the same thing:
The relationship between frequency and magnitude of a phenomenon is not linear, and does not follow a normal distribution. Instead the relationship is polynomial. It's the logarithms of frequency and magnitude that have a linear relationship.
Suppose you were asked to estimate the size of the next earthquake in San Francisco. What would you do? Would you check the size of the last ten earthquakes (= your experience), and then calculate the average out of that? I'm afraid that would be a mistake. The power law is in earthquakes too, under the guise of the Gutenberg-Richter Law.
The distribution of changes in a complex system usually follows a power law. Most often the changes are small, and in rare occasions the changes are huge. You cannot come up with an average or typical size of an earthquake, because there isn't any: "What this [polynomial] relationship means is that there is no typical size in the conventional sense." (Wikipedia)
It's the same with that great new project of yours. Your estimate of the work itself may be fine. But then the real world steps in. And you experience disturbances. Your team leader finds herself a less troublesome job, one developer gets himself a bad social disease, another developer gets himself a wife (which for some people amounts to the same), the new technologies require nuclear workstations to achieve minimal performance, some project manager sneakily snatches away your last developer, and the requirements are multiplying like camels in Australia. Needless to say, your velocity drops like Madoff's credit balance over a black hole. All this, of course, results in a few changes to your planning.
Changes in a complex system follow a power law.
Your six-months-plus-or-minus-one estimate is a mathematical illusion. Forget about it. Reality doesn't follow your smoothly curved normal distribution. Reality follows vicious power laws. There is no typical size for the disturbances on your project, so you cannot calculate an average out of them.
Your project will suffer from power laws.
(images by Hey Paul, Hay Kranen, and National Resources Canada)
Twitter – Subscribe – Newsletter – Bookmarks
Latest, greatest and favoritest posts:
Self-Organization = Anarchy (Part 3)
Self-Organization = Anarchy (Part 2)
Self-Organization = Anarchy (Part 1)