In agile software development we regularly hear references to scientific terms such as self-organization and emergence. Next week, when I’m at the Agile 2009 conference in Chicago, I am certain to hear people throwing around terms like self-organizing teams and emergent design.
As I’ve indicated before, these words have their origins in complexity science (plus related sciences). And this happens to be one of my favorite topics.
“At the heart of complex adaptive systems theory’s relevance to software development is the concept of emergence, and the factors leading to emergent results.” – Jim Highsmith, Adaptive Software Development
“Scrum is not a methodology, a defined process or set of procedures. It's an open development framework. The rules are constraints on behavior that cause a complex adaptive system to self-organize into an intelligent state.” – Jeff Sutherland, Shock Therapy (presentation)
OK, this is all mighty interesting. But… are agilists right in applying complexity science to software development? Do the complexity scientists themselves agree that words like self-organization and emergence not only apply to ant hills, the brain, and the immune system, but also to Scrum teams?
Well, let’s see what scientists have to say about people like us borrowing their scientific terms:
“Abuse of science is…
To use scientific terminology without bothering much about what the words actually mean.
Importing scientific concepts without giving the slightest empirical orconceptual justification.
Displaying superficial erudition by shamelessly throwing around terms where they are irrelevant.
Exhibiting a veritable intoxication with words, with a superb indifference to their meaning.”
OK, I cheated a little. The rant above was not directed at agilists using (or abusing) complexity science, but to people in general abusing various sciences. Still, it makes one think. And to really hammer it in I have another quote here that hits somewhat closer at home:
“Not unexpectedly, the complexity gurus are most upset with how complexity science terms are loosely, if not metaphorically, defined and tossed in managerial discourse – one [guru] goes as far as to suggest that the books offer many insights for managers, but one should simply black out all references to complexity science.”
Yes, I cheated again. This rant was directed at management literature abusing terms from complexity science, not agile literature. But… we are warned.
We have to be careful when carrying over terms from complexity science to other disciplines, including management and software development. For example, when a small issue in a software project unexpectedly turns out to have big consequences, it is all too easy to say that this is a typical example of the butterfly effect. But, without really understanding what the butterfly effect actually means in a scientific context, we might be making ourselves a laughing stock among chaos theorists and complexity scientists!
So, is the term self-organizing team abuse of science?
And is the term emergent design abuse of science?
Personally, I don’t think so. But it would be good to really think things over for a while.
In the next few weeks and months I intend to write some more about ideas and concepts found in complexity science, that we might be able to apply to managing software development. And though I really do have a veritable intoxication with words, I intend to do this with proper regard to their scientific meaning and by providing ample justification.