The day I wrote this text I had been drawing screen designs with Paint.NET. The only reason is that, in our team of five people, I happen to be the one with above-average drawing skills, which enables our developers to deliver a good looking product faster. Similarly, my work as a manager (and part-time designer) is sped up considerably by our architect, who excels at turning my designs into readable API documents, which tends to impress the customers that we talk to. At the same time the architect’s job is accelerated by our developers who seem to be producing code at the speed of thought and verify his ideas almost before he has finished showing his PowerPoint slides. It seems we are not just a team. We are an autocatalytic set.
An autocatalytic set is a system in which the agents reinforce and accelerate each other’s productivity. For example: suppose there are a number of molecules in a nice and warm pool of acidic gloop. Some of these molecules will participate in chemical reactions, thereby forming new molecules. And these new molecules in their turn also participate in chemical reactions. Schematically, one can draw a picture like this one:
Each molecule in the pool is a participant in a chemical reaction. But each molecule is also the product of another chemical reaction. We can imagine a set of molecules where each reaction is being accelerated by one of the other molecules (a catalyst) in the set, while the catalysts themselves are likewise products of chemical reactions reinforced by other catalysts. In short, the entire set of molecules is catalyzing itself. It is an auto-catalytic set.
Theoretical biologist Stuart Kauffman has shown that the forming of such an autocatalytic set is mathematically almost inevitable when diversity and connectivity are increased in a network. Such a heterogeneous system is self-sustaining. It has no need of anything else but itself, and a little energy from outside. In fact, there are suggestions that autocatalytic sets contributed significantly to the formation of life on Earth.
The principle of auto-catalysis is important. Not just for complexity theory, but also for me and my team. As more diverse people are added to the team, heterogeneity in the team increases. More team members are then able to play the role of catalyst for the work of some of the other team members, until at some point all work in the team is catalyzed by one or more of the others.
The catalyst is important because the project is always in a state of flux. Someone who can help a project to jell is worth two people who do just work. – Peopleware, Tom DeMarco, Tim Lister
I have a strong feeling that autocatalysis could be a scientific explanation for the “jelled” teams Demarco and Lister wrote about, and the “hyperproductivity” of software teams that agile expert Jeff Sutherland has frequently referred to. And even if I’m wrong, it still makes an interesting case for support of diversity, connectivity, and specialization in software teams.
On the day I wrote this text our team had a planning meeting, and we all noticed how fast we were going with only three weeks left for our product launch. Probably none of us thought: “Wow, we sure are auto-catalyzing nicely these days,” but we certainly felt that each of us was contributing to the productivity of the team. And I’m sure that the question “How am I helping the others go faster?” could have been answered easily by each of us.
(photo by cod_gabriel)
This article will be part of the book Management 3.0: Leading Agile Developers, Developing Agile Leaders. You can follow its progress here.
|Latest, greatest and favoritest posts:
The 9 Capabilities of Communicators
It’s Only Communication When There’s Verification
Discipline * Skill = Craftsmanship