The amount of communication paths / dialogues people have to maintain with each other to share the context of what they are working on in a team is, I believe, critical to delivering quality software at pace, here are some of my thoughts….
The number of possible concurrent communication paths a person in a team needs to maintain, as a function of number of people in a team can be expressed as:
C = number of communication paths and N = number of people in the team.
This explosion of active communication paths to maintain in a team shows some of the thinking behind the often stated team sizing logic of sizing at 7 (+/- 2) people per team.
Arguably for intense periods of research into new approaches, and when solving very hard problems keeping the team smaller and led by an established expert is more critical than when trying to iterate on a well understood approach, as the former requires more context sharing than the later.