Type to explore Drawk studio productions

Discover cross-platform games, mobile apps, architecture articles, and interactive GLSL labs.

← Back to Posts

The Communication Formula: Why N × (N - 1) / 2 Makes Small Teams Unbeatable

TL;DR: Adding more engineers to an ambitious project almost never speeds it up. Communication channels scale quadratically according to the combinatorial formula \(C = N \times (N - 1) / 2\). A tight team of 4 people manages just 6 communication paths, while a team of 20 people must navigate 190 paths. As team size increases, coordination tax quickly consumes the entire working day. Small, autonomous, high-agency teams of 3 to 5 people ship faster, cleaner software because they spend their energy building rather than synchronizing.

flowchart TD subgraph BLOATED["THE 20-PERSON COMMITTEE (190 CHANNELS)"] B1["20 Engineers on Project"] --> B2["190 Unique Communication Channels"] B2 --> B3["Calendar Fills with Standups, Syncs & Status Meetings"] B3 --> B4["Fragmented Context & Competing Architectural Visions"] B4 --> B5["Consensus Paralysis & Finger-Pointing on Regressions"] B5 --> B6["Velocity Collapses Under Coordination Overhead"] end subgraph FOCUSED["THE 4-PERSON STUDIO POD (6 CHANNELS)"] F1["4 Focused Engineers"] --> F2["6 Clear Communication Channels"] F2 --> F3["Single Unified Mental Model Held in Everyone's Head"] F3 --> F4["Decisions Made in 5 Minutes at the Whiteboard"] F4 --> F5["Uninterrupted Deep Flow State Across the Day"] F5 --> F6["High-Velocity Production & Rock-Solid Software Ships"] end
┌────────────────────────────────────────────────────────────────────────┐
│                   THE COMMUNICATION CHANNEL EXPLOSION                  │
├───────────────────────────────────┬────────────────────────────────────┤
│   LARGE COMMITTEE (N = 20)        │   FOCUSED POD (N = 4)              │
├───────────────────────────────────┼────────────────────────────────────┤
│ • 190 unique communication paths  │ • 6 direct communication paths     │
│ • 4 to 6 hours of daily meetings  │ • 15-minute morning alignment      │
│ • Decisions require 5 approvals   │ • Decisions made instantly in chat │
│ • Endless Slack pings and context │ • Hours of uninterrupted flow      │
│ • 80% coordination, 20% building  │ • 10% coordination, 90% building   │
└───────────────────────────────────┴────────────────────────────────────┘

When a software project falls behind schedule, the instinctive reaction from corporate leadership is almost always the same: hire more engineers.

It feels like simple arithmetic. If five developers can build half the product in three months, surely ten developers can finish it in half the time.

Yet every seasoned engineer knows what actually happens when you double team size midway through a project: delivery slows down, bug counts spike, and the codebase becomes an inconsistent patchwork of competing styles.

In 1975, Fred Brooks codified this reality as Brooks' Law in The Mythical Man-Month: "Adding manpower to a late software project makes it later."

The reason is not that the new engineers are incompetent. The reason is pure mathematics: the communication channels formula.

The Mathematical Graph Blueprint

In any group of \(N\) people, the number of unique two-way communication links \(C\) is given by the combination formula:

\[ C = \frac{N \times (N - 1)}{2} \]

Here is how that network topology transforms as you add team members:

┌────────────────────────────────────────────────────────────────────────┐
│                   TEAM COMMUNICATION GRAPH TOPOLOGY                    │
├────────────────────────────────────────────────────────────────────────┤
│ 3 PEOPLE (3 CHANNELS)         │ 5 PEOPLE (10 CHANNELS)                 │
│         [A]                   │              [A]                       │
│        /   \                  │             /   \                      │
│       /     \                 │          [E]─────[B]                   │
│     [B]─────[C]               │           \ \   / /                    │
│                               │            \ [X] /                     │
│ Complete mutual context. Zero │             [D]─[C]                    │
│ meeting overhead needed.      │ Near-instant consensus. High agency.   │
├───────────────────────────────┴────────────────────────────────────────┤
│ 10 PEOPLE (45 CHANNELS)       │ 20 PEOPLE (190 CHANNELS)               │
│ Dense mesh of Slack pings, PR │ Full-blown coordination paralysis. Most│
│ approvals, and status syncs.  │ work hours spent talking about work.   │
└────────────────────────────────────────────────────────────────────────┘

When you look at the progression, the scaling reality becomes clear:

  • 3 people: 3 channels. Everyone knows what everyone else is doing. You don't need Jira, sprint planning, or daily standups. Alignment happens in real time.
  • 4 people: 6 channels. Still effortless. A single shared chat channel or quick conversation resolves any architectural question.
  • 8 people: 28 channels. Cracks begin to appear. Subgroups form, information gets siloed, and "alignment syncs" become mandatory.
  • 12 people: 66 channels. More than ten times the channels of a 4-person team. Half the day is consumed reading Slack threads, answering questions, and resolving merge conflicts.
  • 20 people: 190 channels. The system enters terminal coordination drag. The majority of engineering energy is spent explaining things to other people rather than writing code.

The Coordination Tax Matrix

Team Size (\(N\)) Channels (\(C\)) Daily Coordination Tax Real Build Time / Day Effective Delivery Velocity
2 people 1 ~15 minutes (Direct pair) 7.5 hours Peak Efficiency (100%)
3 people 3 ~30 minutes (Informal) 7.0 hours Exceptional (95%)
4 people 6 ~45 minutes (Light sync) 6.5 hours Optimal Studio Pod (90%)
6 people 15 ~1.5 hours (Standup + PRs) 5.0 hours Moderate Drag (70%)
10 people 45 ~3.0 hours (Meetings + reviews) 3.5 hours High Friction (45%)
20 people 190 ~5.0 hours (Committees + Jira) 1.5 hours Coordination Paralysis (15%)

Notice the tipping point: once a team exceeds 6 or 7 people, individual developers spend more time managing communication channels than solving engineering problems.

Why Small Teams Consistently Outbuild Giants

Throughout software history, the most consequential platforms, engines, and products were built by small, fanatically focused squads:

  • John Carmack and John Romero built the core of DOOM with a handful of people in a lakeside office.
  • WhatsApp scaled to 450 million active users with just 32 engineers (a ratio of 14 million users per engineer).
  • Instagram had 13 total employees when Facebook acquired it for $1 billion with 30 million active users.
  • SQLite, one of the most widely deployed software libraries on planet Earth, was engineered and maintained by three core developers.

Small teams succeed because they unlock four structural multipliers:

1. Complete Mental Model Cohesion

In a 3-person team, every engineer can hold the entire architecture in their head. They know how the database schema maps to the API, how the shaders bind to the GPU pipeline, and where the tricky edge cases live. There are zero handoff misunderstandings because there are no handoffs.

2. Near-Zero Decision Latency

When an architectural fork arises, a small team gathers around one screen, weighs the trade-offs, picks a direction, and begins writing code five minutes later. In a 20-person hierarchy, that same decision requires a RFC document, an architectural review board presentation, feedback cycles, and two weeks of waiting.

3. High Personal Agency and Ownership

On a 4-person team, there is nowhere to hide. You directly touch the critical path. When you ship, you feel personal pride in the craftsmanship; when something breaks, you fix it immediately. On a 50-person team, developers become cog-turners working on tiny, isolated Jira tickets, and craftsmanship gets replaced by compliance.

4. Radical Simplification

Large teams build complex architectures because they have too many people to keep busy. If you have 30 backend developers, you will inevitably build 30 microservices, Kubernetes clusters, and event streaming fabrics. A 3-person squad does not have the bandwidth for self-inflicted complexity; they build clean, monolithic, simple systems that are easy to run and debug.

The 4 Principles of Pod Engineering

If you are structuring an engineering studio or leading a technical team, organize around these four rules:

  1. The Rule of 5: Never let a single engineering squad exceed 5 people. If a product demands more capacity, split the work into decoupled, independent pods with strict API contracts rather than expanding a single team.
  2. Conway's Law Alignment: Structure your code modules to mirror your small team boundaries. Each pod should have end-to-end ownership over its module, from data model to user interface.
  3. Protect Unbroken Flow: Treat engineering calendar fragmentation as an emergency. Group communication into tight morning windows and preserve 5-hour uninterrupted blocks for deep craft.
  4. Kill Consensus Committees: Assign clear architectural ownership to the person with their hands on the keyboard. Informed debate is essential; consensus voting is poison.

Software engineering is not a linear manufacturing line. It is a creative discipline of shared mental models. Keep your teams small, keep your communication channels short, and let your engineers build.

References, Standards & Verified Data

  • Brooks' Law & Combinatorial Channel Scaling: Fred Brooks, The Mythical Man-Month: Essays on Software Engineering (Addison-Wesley, 1975, Anniversary Edition 1995) - Introduces the formula \(C = N \times (N - 1) / 2\) and the intercommunication penalty \(O(N^2)\) when adding personnel to software projects.
  • Conway's Law: Melvin E. Conway, "How Do Committees Invent?" (Datamation, April 1968) - Proves that software architectures inevitably replicate the communication structures of the organizations that design them.
  • Dunbar's Hierarchy of Social Group Sizes: Robin Dunbar, Neocortex size as a constraint on group size in primates (Journal of Human Evolution, 1992) - Identifies the cognitive limit of active human relationships and the critical 5-person "support clique" required for deep trust and zero-friction coordination.
  • Graph Theory Standard: In graph theory, a complete graph \(K_n\) represents a network where every vertex connects to every other vertex. The number of unique edges equals the binomial coefficient \(\binom{n}{2} = \frac{n(n-1)}{2}\).
  • Verified Scale Benchmarks: WhatsApp served 450 million monthly active users with 32 software engineers (14 million users per engineer) utilizing Erlang/FreeBSD prior to acquisition. SQLite has been continuously maintained across billions of deployments worldwide by three core authors (D. Richard Hipp, Dan Kennedy, Joe Mistachkin).

← Back to All Posts