August 25, 2006

...Learn TDD with Codemanship

Good vs. Bad Variation - How Can We Know?

I'm distinctly amused by David J Anderson's recent blog post on good vs. bad variation. I suppose I should be glad that he's finally accepting that diversity is an important factor in the process of innovation, even if he's still clinging on to the metaphor of software development as manufacturing. Just a few months ago he was singing to a different tune. You know the one - it's in the key of Six Sigma and it has a chorus that they sing over and over and over again, getting slightly faster and more in-tune each time. Then when the key and the tempo suddenly change the band are plunged into chaos because they've forgotten how to play anything else except the chorus. (Although, by this time, they are very, very good at it).

The problem with "good variation vs. bad variation" is that it's impossible to know in advance which extra string to your bow - which piece of random redundant capability - you might suddenly find useful when the unexpected (that we should have been expecting) is inevitably but unpredictably thrust upon us.

Is Stephen Hawking's illness "good variation" or "bad variation", for example? It is hard to seperate out the components of a complex system into "good bits" and "bad bits", since they succeed or fail as a whole. I've seen Star Trek. I know what happens when you put all the good parts of a person in one body and all the bad parts in another. Its never what you expect. Wishy-washy Good Kirk can't command a starship without womanizing Bad Kirk's decisiveness and assertiveness.

So I can't help chuckling when I see people talking about "good random stuff that we never knew we were going to need" vs. "bad random stuff that we can't know in advance that we'll never need".
Posted 14 years, 11 months ago on August 25, 2006