Hello, my name is Jessica and I'm a developer advocate with LaunchDarkly. We are a feature management platform that helps you control your software by decoupling the process of deployment from releasing.
Today we're going to talk about how orders of magnitude scale with complexity. So when something goes wrong, what's your first instinct? Do you ask for help? You'd be forgiven for thinking that collaboration is the answer to your problems here. Because between the two idioms of a problem shared being a problem halved and two heads being better than one. It's understandable that you think that bringing another person to the mix can improve your chances of getting to a solution faster. But this isn't always the case.
If you've played computer games, you might remember in Age of Empires 2, the best way to get a structure built quickly is to assign as many villagers to the task as possible. When it comes to digital infrastructure that exists outside of video games or video games themselves, we have to factor in a few key differences. Now in the mythical man month, a collection of essays on the craft of software development. We discussed the idea that the number of people and the amount of time required to get something done by aren't really interchangeable as commodities. This is only true when a task can be partitioned amongst many workers with no communication amongst them. But when a task cannot be partitioned either due to its structure or its complexity, the application of more effort has no impact on the actual schedule.
Now software development falls kind of in between these two categories. It can be partitioned, but communication is required between each subtask. And in these situations, the best possible outcome doesn't come close to an even trade-off between people and hours. Now there are a few schools of thought around how the cognitive load around communication is at least distributed. But it's quite accepted that intercommunication, talking to each other, is where the majority of the work lies. Now, if each part of the task you're working on needs to be separately coordinated, the that section of work, it increases at a near exponential level. Now, three people will require three times as much interaction as two people doing the exact same piece of work. Things only get compounded when you throw together group meetings. This projected timeline really shows Brooks or an option that adding people power to late software only stands to make it later.
Now, to tackle this, let's talk about the concept of collective intelligence. Collective intelligence is described by researchers as a group's capability to be able to perform well across a wide variety of tasks, and that's doing so together. Despite the evidence and utility of collective intelligence as an index of group-level competence, collective intelligence as a subject matter is fairly new as a concept. But one study that sought to kind of uncover where the magic happens with collective intelligence was based on League of Legends. They used the massive online battle arena game as a method of testing whether or not virtual teams paired based on their abilities could outperform those that had an in-depth understanding of one another. And what has League got to do with work? Well, virtual teams are very common these days. You know, massive online battle arena games, they're characterized by their intensity, their need for fast decision making, and their competitiveness, which sounds pretty familiar to a lot of business operations. I think I'd recognize a few of those traits for sure.
Comments