What does Conway's Law have in common with the video game League of Legends? They can both teach us about how to organise development teams that achieve collective intelligence. When it comes to the art of software development, it's never a game of chance
Gaming the System: How Video Games Can Help us Create More Effective Virtual Teams
AI Generated Video Summary
Today's Talk explores the lessons that video games can teach us about building virtual teams. The impact of communication on software development is discussed, highlighting the importance of understanding software for successful deployment. The concept of collective intelligence is introduced, emphasizing the role of social perceptiveness, cognitive diversity, and equal distribution of communication. The Talk also emphasizes the need to optimize team performance with key metrics and suggests keeping teams small and cross-functional to enable easy communication and lower cognitive loads.
1. Video Games and Virtual Teams
Hello everyone, I'm Jessica Craig and I'm a Developer Advocate with LaunchDarkly. Today, I'll talk about video games and what they can teach us about building better virtual teams. Collaboration is not always the answer to solving problems. The Mythical Man month discusses the impact of communication on software development. Collective intelligence is a group's capability to perform well, and it can be influenced by social perceptiveness, cognitive diversity, and equal distribution of communication.
Hello everyone, I'm Jessica Craig and I'm a Developer Advocate with LaunchDarkly.
I'm here today to talk to you about video games and what they can teach us about building better virtual teams. When something goes wrong, what is your first instinct? Do you ask for help? You should be forgiven for thinking that collaboration is the answer to your problems. Between the idioms of two heads being better than one and a problem shared as a problem halved, it's understandable to think that bringing another person into the mix could stand to improve your chances of getting towards the solution and getting you there faster. I mean, it works with pair programming right? But this isn't always the case.
Now, if you've played computer games and remember Age of Empires 2, you'll recall that the best way to get a structure built quickly is to assign as many villagers on to that task as possible. But when it comes to digital infrastructure outside of a video game, or indeed video games themselves, we need to factor in a few key differences.
Now, the Mythical Man month, as many of us know, is a collection of essays on the craft of software development that discusses the idea that the number of people and the amount of time required for something to get done can be interchangeable as commodities only when a task can be partitioned among many workers with no communication among them. But when a task cannot be partitioned, either due to its structure or indeed its complexity, the application of more effort has no impact on the schedule at hand. Now, software development falls in between these two aforementioned categories. Tasks can, of course, be partitioned. We can break something down into smaller batch sizes, but communication is required in between each sub-task, either for problem solving or for handing off for status. Now, 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 towards communication is weighted. But it's widely accepted that intercommunication is where the majority of the work lies. Now, if each part of the task that you're working on needs to be separately coordinated, the effort required to complete that section of work increases at a near-exponential rate with the more people that you get involved. Now, three people will require three times as much interaction as two people to get the same amount of work done, and that just increases, as we can see with the line here. Now, things only get compounded when group meetings come into the mix. This projected timeline, it really shows Brooks' law in action, that adding people power to late software projects only stands to make them even later. But to tackle this, let's talk about the concept of collective intelligence.
Now, collective intelligence is described by researchers as a group's capability to perform well. It's essentially an index of group-level competence that, despite being widely recognised, are still being actively studied and understood. Now, one study used the vehicle of massive online battle arena game, League of Legends, as a method of testing whether or not virtual teams paired based on their abilities, rather than an in-depth understanding of their working habits and one another, could outperform the latter. Now, what the hell has it got to do with work? Well, much of the massive online battle arena games are often characterised by their intensity, their fast decision-making, and their competitiveness, which is not quite unlike the real-world organisations that we work in every day. And what did these researchers find? Well, when investigating the measure of collective intelligence, researchers found that a group's ability to perform well at a task was largely transferable, meaning that if they could do one thing well, they're likely to be able to do new tasks well in addition. Now, the things that can make us collectively intelligent are social perceptiveness, a moderate level of cognitive diversity, and large amounts, and the equal distribution of communication. But on this last point, researchers noticed that the verbal communication didn't equate to or high levels of verbal communication, rather didn't equate to a high level of collective intelligence. In fact, researchers measured the standard deviation, both in the lines of chat of successful players and the word count within those chat messages. And they found that higher chat, high chat lines or more chat communication didn't equate to a high level of collective intelligence or indeed performance.
2. Communication and Team Performance
Higher chat doesn't equate to collective intelligence. Skilled players spend less time communicating. Understanding software is crucial for successful deployment. Optimize team performance with key metrics. Keep teams small and cross-functional. Enable easy communication and lower cognitive loads.
And they found that higher chat, high chat lines or more chat communication didn't equate to a high level of collective intelligence or indeed performance. One of the early observations of the study, in fact, found that the most skilled players tend to spend less time communicating by preference. They're good at the game and that's where they want to spend their time. They minimise context switching, they engage in non verbal cues almost instinctively.
Does that sound familiar? A taste at communication, mentioned here, is the unexpressed recognition of the position of others. And most importantly it leads to actions for common goals. In the context of a company, this looks like this is evidence of advocating for observability measures, automation, but, of course, opting for metrics that everyone genuinely understands. If we don't understand the software that we're testing, we're likely to restrict the number of times we deploy.
And as anyone who's read the book Accelerate or followed the annual State of DevOps reports will know, optimizing for team performance can be achieved by tracking these four key metrics, all of which you want to lower aside from deployment frequency, which you want to be as high as possible. Now, if the software that we're working with doesn't fit neatly within our heads, these metrics will have a near finite value. We're likely to distrust our tests in the first instance, our confidence to deploy will plummet, and if we don't understand the services that we're working with, we won't be able to restore them when they inevitably do indeed go down.
So, as a quick recap, keep your team small, aim for no more than nine on your squad, if possible. Keeping teams cross-functional, with one team member intentionally chosen to help you enforce this final principle, to take on people with the reputation of specialists but with the capabilities of generalists, is a great way to get your virtual teams off to a good start. Enable taste of communication, by making systems easy to understand and easy to traverse. Lower cognitive loads. Our cognitive load needs to be kept low so that everyone knows what to do. This helps us strengthen our systems and when we communicate, and when we do communicate, it becomes far more meaningful.
Now here's the list of resources. And finally, thank you so much.