As usual, each time I venture around Backreaction, I find something interesting to read. This time, it’s Bee’s musing about group dynamics. She states that in every group, there is a soul, a brain, a heart and an asshole. They are not necessarily separate people, sometimes one person may combine two or more functions.
As usual with any classification, you often find the limits. I believe that Bee is mostly referring to groups in movies or books, to the kind of dynamics that makes a plot interesting. But even then, you often find other parallel classifications, for instance hero + heart + comic relief, or good + bad + ugly, and so on…
Application to programming teams
In programming teams, I think that the same kind of classification applies. It is not necessarily exactly the same pattern, however. In most programming teams, for instance, you don’t care much about having a heart. You do care about having a soul and a brain. And generally, you also need a “benevolent dictator“, or maybe a “general”, i.e. someone who thinks about the organization of the project. I don’t want to call this person a “manager”, because in my experience, it is very rarely a manager doing that job.
The relevant observation Bee makes is that, in general, you don’t need more than these few people. A plot with 20 all-equal people is not generally much worse than a plot with 4 main characters. Similarly, programming teams are most efficient when they are small and focused. As soon as the team grows, you need a clear hierarchical organization, so that each subteam remains around 5 people. Equalitarian programming teams rarely work efficiently. In general, the hierarchy establishes itself based on historical and productivity precedence, as illustrated by many open-source teams, most notably the Linux kernel team.
It seems to be a pretty general rule. If you look at the large companies, they were usually created by a very small group of complementary people (I made random guesses for the role attribution):
- Steve Jobs (soul), Steve Wozniak (brain), Mike Markkula (general) for Apple
- Bill Gates (soul), Paul Allen (brain), Steve Ballmer (general) for Microsoft
- Scott McNealy (soul), Bill Joy (brain), Vinod Koshla (general) for Sun Microsystems