Growing software teams: size DOES matter
Growing software teams
The problem
Consider the amount of different communication channels (that relate directly to communication overhead and potential misunderstandings) on teams growing in size using the formula N*(N-1)/2:
- 1 person: 0 channels
- 2 persons: 1 channel
- 3 persons: 3 channels
- 4 persons: 6 channels
- 5 persons: 10 channels
- 6 persons: 15 channels
- 7 persons: 21 channels
- 8 persons: 28 channels
- 9 persons: 36 channels
- 10 persons: 50 channels
- …
Having a team of 10 people creates 50 potential communication channels, and I can guarantee that, the more channels you have, the worse the communication between them gets.
The solution
If your project starts to require bigger teams, I would advise you to consider context mapping and align your teams with your bounded contexts…
I have seen way to many teams not understanding Conway’s law properly and creating a huge amount of overhead and problems that could be easily fixed by organizing the teams in a similar way that the software is organized : keep responsibilities properly divided in both teams and software development ….. Of course you need to understand the overhead of integrating both teams and software, but that is another story altogether.
PS: this a blog post based on a comment I wrote.
PPS: I’m for hire from Februari 2014, so if you might have an interesting project for me, please let me know.