Frederick Brooks wrote about this in 1975. The Mythical Man-Month. Most people who work in tech have heard of it. Far fewer have actually internalized what it means.

The formula is simple. The number of communication paths in a team of n people:

n(n−1) / 2

Run it through a few team sizes and the picture gets uncomfortable fast:

Go from 4 people to 8 and you haven’t doubled the communication overhead — you’ve multiplied it by almost five.

That’s quadratic growth. Not linear.


This is why “let’s just add more people” so often backfires. Every new person added to a team doesn’t just bring their own capacity. They also bring a new set of relationships that need to be maintained, synced, and coordinated. New lines of potential miscommunication. New meetings.

At some point the team spends more time coordinating than actually building.

Adding manpower to a late software project makes it later.

Brooks called this the core paradox of software engineering. Not because people are bad at their jobs, but because the coordination cost of adding someone mid-flight is immediate, while the productivity gain comes much later — if at all.


The practical implication is that small teams punch above their weight not despite being small, but because they’re small.

A team of 4 with 6 communication paths can move fast, make decisions quickly, and stay aligned without much ceremony. A team of 10 with 45 paths needs processes, documents, and syncs just to stay coherent. The overhead is structural, not personal.

This is also why I’m skeptical when I see teams growing as the default response to slow delivery. Sometimes the right answer is to make the team smaller, sharpen the scope, and remove the noise. More focus, fewer paths. I wrote more about how this plays out in practice in How I Run a Technical Audit.

The math doesn’t lie. It just gets ignored.


Now make it worse. Add specialization.

The formula assumes everyone can talk to everyone with roughly the same friction. That’s already a lie in a team of ten engineers. But most product teams aren’t ten engineers. They’re a product manager, a designer, a frontend dev, a backend dev, a data engineer, a DevOps person, a security person, a QA person — and somehow they’re supposed to move together.

36 paths for nine people. But now each path costs extra, because half of them don’t speak the same language.

The designer and the backend dev don’t share a vocabulary. The data engineer needs frontend context before they can instrument anything. The frontend dev needs the schema first. The PM needs the data before they can tell if the feature worked. Everyone is waiting on a conversation that nobody has fully had yet.

The formula counts paths. It doesn’t count the quality of those paths.

Two senior engineers who’ve worked together for three years? That’s a fast path. A new platform hire and a PM from a different background? That path is slow, lossy, and expensive every single time it gets used.

I’ve been in these teams. Standups get longer. Not because people are lazy — because everything needs a translation layer. You stop asking questions in Slack because you don’t know who owns the answer. Decisions that should take an afternoon take a week.

There’s no clean fix. But being honest about what specialization actually costs is a start. Keep the critical paths short. Don’t add a new discipline just because something feels slow.

A team of six that moves together will outship a team of fifteen that spends half its time translating.


Here’s the thing that rarely gets said out loud: communication is the most expensive thing in a company. Not salaries.

Salaries are visible. They show up in a spreadsheet, they get scrutinized in budget reviews, they’re negotiated carefully. Companies have entire processes around optimizing headcount cost.

But communication cost is invisible. Nobody measures how much it costs when a senior engineer spends three hours in meetings that could have been a two-paragraph brief. Nobody calculates what it costs when a team of twelve needs two weeks to reach a decision that a team of four would make over lunch. Nobody tracks the compounding tax of unclear ownership, misaligned context, and information that degrades every time it crosses a role boundary.

Say a senior engineer earns 100 kudos a month. If that person spends 40% of their time on coordination overhead — syncs, clarifications, waiting for decisions, re-explaining context — you’re burning 40 kudos a month on communication friction. Per person. Scale that across a team of fifteen and you’re losing 600 kudos a month. Not to bad hires. To meetings. That’s six full salaries, gone, every single month, and it won’t show up anywhere in your budget.

The irony is that companies often grow headcount because delivery feels slow, which increases the communication load, which makes delivery slower, which creates pressure to add more people. The diagnosis is wrong from the start.

Salaries are a cost. Communication is a tax. And unlike salaries, nobody is managing it.