lautaro@wilsf — bash — ~/rodati/the-hidden-tax-on-every-hire.md

Rodati · · 1,296 words · 6 min

The hidden tax on every hire

Complete graphs showing how communication lines multiply as a team grows, from 3 people and 3 lines up to 14 people and 91 lines
fig 0. links = n choose 2 the lines explode while the headcount only ticks up.

When you add a person to a team, the org chart shows plus one. One more brain, one more pair of hands, a little more capacity. That is the number everyone counts.

Here is the number nobody counts. That same hire also adds a fresh set of communication lines, and it quietly lowers how hard everyone already on the team pulls. Two costs, both invisible, both real. I learned to call it the tax on every hire.

the lines

Look at the picture above. Three people have three lines between them. Add one person and you have six. By ten people you already have forty five lines, and by fourteen you have ninety one. You hired one person. You bought a pile of new conversations, and every one of them has to stay in sync.

There is a clean formula behind that explosion. Every pair of teammates needs one line between them, so the number of lines in a team of n is simply the number of pairs you can make from n people. Mathematicians write that “n choose 2”, and for any team of real size it climbs like the square of the headcount.

how many lines a team of n needs:

   lines(n) = n choose 2  ≈  n² / 2

     n  │  lines
     3  │      3
     5  │     10
    10  │     45
    14  │     91
    50  │  1,225

Read the last two rows. Going from five people to fifty grows the team by ten times. It grows the lines by more than a hundred. That gap is the square talking, and it is why the overhead sneaks up on you: the people add up, but the wiring multiplies.

This is the old idea behind Brooks’s Law. The work that a team has to do to coordinate itself does not grow with the team. It grows with the square of the team. Double the people and you roughly quadruple the wiring. At some point you are paying more in keeping everyone aligned than you are getting back in output. (Lines of communication and team size walks through the math.)

The trap is that the capacity feels linear and the overhead feels free, so you keep adding. The lines pile up silently in the background until one day the team that used to move fast spends every morning in standups and every afternoon in threads.

the dilution

The second cost is older and stranger. In the 1910s an engineer named Maximilien Ringelmann had people pull on a rope, alone and in groups, and measured the force. He expected the group to pull as hard as the sum of its members. It never did. The bigger the group, the less each person pulled.

the same rope, more hands:

1 person    [#]==========  O
                           /|\     each pulls  100%
                           / \

2 people    [#]==========  O  O
                           /|\/|\   each pulls   93%
                           / \/ \

3 people    [#]==========  O  O  O
                           /|\/|\/|\   each pulls   85%
                           / \/ \/ \

8 people    [#]==========  O  O  O  O  O  O  O  O
                           /|\/|\/|\/|\/|\/|\/|\/|\   each pulls   49%
                           / \/ \/ \/ \/ \/ \/ \/ \

We call it social loafing now. When effort blurs into the group, people ease off without ever deciding to. Not because they are lazy, but because their slack stops being visible, and visible slack is what keeps most of us honest. By eight people on the rope, each person is giving about half of what they would give alone. (The Ringelmann effect has the full study.)

Put the two costs on one picture and you get this. Potential output is what you would get if every new person added their full share. Actual output is what you really get once coordination and dilution take their cut. The gap between them has a name.

Performance against group size Potential output rises in a straight line as the group grows. Actual output rises then flattens. The widening gap between them is process loss. Potential Actual Process loss Obtained output 0 2 4 6 8 0 200 400 600 800 Size of group Performance
fig 2. The straight line is what you paid for. The curve is what you got. The shaded wedge is process loss. After Ringelmann's rope pulling study.

what this meant at Rodati

At Rodati I was young and I believed in the linear story. When something was slow, I added people. More hands on the rope, more output, obviously.

It did not work like that. Past a certain size the team got slower, not faster. Mornings filled with syncing. Decisions that one person used to make in an afternoon now needed three people in a room and a follow up thread. Everyone was busy and the work crawled. I thought I had a motivation problem or a talent problem. I had a math problem. I was paying the tax and blaming the people.

the rule

Headcount is not free capacity. Every hire buys you output and charges you coordination plus dilution, and the bill grows with the square of the team.

So add a person only when the work they will add clearly beats the tax they will add. When a team starts to drag, the first move is rarely more people. It is fewer lines: split the group into small pods that each own an outcome, so the rope stays short and everyone can still see who is pulling.

Small teams are not a constraint you tolerate. They are the cheapest performance you will ever buy.

And this matters more now than it ever has. AI keeps lifting the ceiling on what a single person can produce, so a small team with the right tools can ship what used to take a whole department. You capture the output of the big group without paying its communication tax or its dilution. The smaller and sharper the team, the more that leverage compounds.

about:blank ↗ open in new tab
site won't load? ↗ open in new tab
doom.exe — id Software, 1993

click inside the canvas to enable keyboard + sound · arrows / WASD to move · ctrl to fire

mario-bross.exe — Nintendo, 1985

click canvas to enable keys · arrows = D-pad · Ctrl/⌃ = A (jump) · Alt/⌥ = B (run) · 1 = Start · 2 = Select · Tab = remap
🔇 audio? open at archive.org once, click their speaker icon to unmute, reload here.

carmen.exe — Brøderbund / Sega, 1996

click "Click to Begin" then canvas · arrows = D-pad · Ctrl/⌃ = A · Alt/⌥ = B · Space = C · 1 = Start · Tab = remap
🔇 audio? open at archive.org once, click their speaker icon to unmute, reload here.

pokemon.exe — Game Freak, 1996

click canvas to enable keys · arrows = D-pad · Ctrl/⌃ = A · Alt/⌥ = B · 1 = Start · 2 = Select · Tab = remap
🔇 audio? open at archive.org once, click their speaker icon to unmute, reload here.

zork.exe — Infocom, 1980

click canvas to type. text adventure — try look, n s e w, open mailbox, take leaflet, read leaflet. quit with quit.

paint.exe — untitled.png
Trash
empty
Finder
~
help.txt — bash — ~

$ what is this?

lauta.blog is a personal site by Lautaro Schiaffino — a serial founder. It collects what he's learned from building three companies (Rodati, Sirena, Darwin AI) and from living, plus a few side rooms (books, food, board games, portfolio).

$ how do I navigate?

Three ways:

  1. Tabs at the top of the terminal window (~ · sirena · darwin · rodati · whoami · portfolio · books · boardgames · food) click any to switch sections.
  2. Keyboard shortcuts — press ? to see all of them. g+s jumps to Sirena, D toggles dark mode, etc.
  3. Shell — click the + at the end of the tab bar to open an interactive shell. Try tree, ls darwin, cat sirena/lesson-1.md, open whoami, subscribe you@example.com, help.

$ what about the menu bar?

$ traffic lights work

The three dots in the title bar do something: red closes the window (icon appears on the desktop, click to reopen), yellow minimizes (pill at bottom of desktop, click to restore), green maximizes.

$ contact

Reach me on x.com, or subscribe at /newsletter.

$ shortcuts

Press ? any time, or .

shortcuts.txt — bash — ~
navigation
g hhome (~/)
g wwhoami
g ssirena
g ddarwin
g rrodati
g ffood
g nnewsletter
g ttags
g uuses
view
Dtoggle dark mode
+bigger text
smaller text
0reset text size
edit
aselect all
ycopy page url
window
nnew shell tab
mminimize
zzoom (max)
xclose window
obring to front
help
?toggle this help
escclose