The Mathematics of Agile Communication
byLet me ask you a question; why do agile frameworks recommend limiting team size to 7±2?
If you answered “communication” or "collaboration", congratulations you're correct. But do you understand why?
In mathematical terms, team communication is an O(n2) [read: order n squared] complexity problem, where n is the number of people in a team. That is, for every new team member, it takes an exponentially greater time to share information. Let me prove this to you with a thought experiment.
Constant Complexity - O(1)
Let’s start with the least complex form of communication, the announcement. If I, as a manager, make an announcement to my entire organisation, it doesn't matter whether I address 7, 70 or 7,000 people, the announcement will take the same amount of time. The complexity of this communication can be defined as O(1) [read: order 1].
Linear Complexity – O(n)
If we provide a forum where all team members can announce what they are working on (such as the daily stand up), then the time required to finish the meeting will scale linearly with the size of the team. This is an O(n) [read: order n] complexity problem. If we use the daily stand up as an example, a team of 7 can easily finish such a meeting in 15 minutes. Whereas, a team of 70 would be lucky to finish in 2 hours (and even luckier to still be awake).
Think of it this way, if everyone takes two minutes to update the team, then three people will take 6 minutes, four will take 8, five will take 10, and 70 will take 2 hours, 20 minutes.
Quadratic Complexity – O(n2)
But here is the crux. If a team is collaborating together, as an agile team is meant to do, the complexity of communication begins to increase exponentially. Let's take our meeting from the previous example, but make it an open discussion rather than updates. Start with 5 people in a room, all working closely together on a problem. If we take our baseline of 2 minutes to communicate a message (and it will, of course, vary greatly), it would take 20 minutes, cumulatively, for everyone to collaborate with the other 4 people. Add a 6th person, and it would take a cumulative 30 minutes to communicate with the other 5. At the extreme (and unrealistic) case, a team of 70 would take over 80 hours to collaborate together.
(Thanks Wikipedia for the Image)
As you can see, the larger the team, the more complex and time-consuming communication between team members becomes. This is an O(n2) [read: order n squared] complexity problem.
* If you want to be pedantic, this is equivalent to Metcalfe’s law which is actually n(n − 1)/2, an element of O(n2).
Final Thoughts
While this is, of course, a simplification of how communication works, it does go to show the complexity involved in managing large teams. This is why it is better to make multiple, small and semi-independent teams, each with a specific domain of responsibility.
Communication or collaboration between teams is then, by extension, reduced and managed by team leaders, scrum masters or SME's.