In 1952, Alan Turing published a seminal paper on the mathematics of self-organising cells, that set in motion whole new fields of research in self-organisation, emergence, and complexity. It is believed that team organisation and collaboration has much to do with self-organisation and the emergence of complex behaviour. But, it is also in many cases turning out to be an intractable problem in software development.
Consider the humble slime mould, which when food is plentiful exists as a single celled creature. But, under conditions of food scarcity the single-celled creatures coalesce into what looks like a single body creature. The single-celled creatures emerge into this complex structure by secreting a chemical mark and by following such markers they congregate into a single body creature. When conditions are favourable again they will breakup to return to their single-celled existence.
What has this to do with team organisation and software development? Self-organising teams that code as one body to deliver bug free code sprint after sprint is a utopian dream of every product manager. To that end we have created a multitude of frameworks, viz. kanban, scrum, agile etc. Whether these frameworks have been successful is dependent on who one talks to. Of course, there are some critical differences between slime moulds and our software developer:
- The constituent single-celled creature of the slime mould is a simple structure, whose routine revolves around eating and procreating in whatever order. Its complex behavior only emerges when it congregates with other creatures of its type to form the slime mould. But, our software developer starts out as a complex creature with an ego, and influenced by economic, social, and psychological factors. They have needs, wants, and personal goals, prior to becoming member of a team. How do you balance these private goals and team goals?
- An even larger issue with comparing self-organisation of software teams with that of the slime moulds is that there is no pace maker amongst the single-celled constituents of the slime mould. Each and every single-cell in the congregation is an equal – no leader, and no slave. But, when it comes to software development teams, the situation is quite the opposite. There is always a pace maker, either in the guise of a product manager or scrum master etc. Not unlike the coxswain, the pace makers maintain the rhythm of the delivery; hence we have the velocity measure, a beautiful stick to wave around when the rhythm slows.
- Wouldn’t it be nice if the developers left a chemical marker (not unlike the slime mould) to encourage congregation into teams? Many of the tools that help in agile development typically provide the kind of markers that should encourage better collaboration. But, their success depends on the responsible actions by the developer in recognising the primacy of team goals, and the need to share.
Human character will not change any time soon, we are creatures that like hierarchies, given an opportunity we will quickly adjust to a master-and-slave, or us-and-them groupings. Evolution has made us thus over millions of years, and simply because of the onset of software development does not mean a reversal is imminent. Yes, there will always be exceptions, and holacracy may eventually be the model that will be universally adopted. In the mean time, we need to find a way to get greater success in building product teams.
If we are really interested in slime mould like behaviour, we need to turn to virtual reality for a solution. A virtual reality world for developers, where developers don’t have to be cajoled to work as a team, they have no choice but to work as a single body towards a shared goal. They have no choice in this virtual reality, where a bad check-in that breaks the source bucket is immediately notified to all. Collaboration is not a choice. The price paid is lack of individual innovation, but this does not preclude team innovation validated in minutes since collaboration is not a choice. We are Borg, we are coming, and we will assimilate you.