Skip to content

The Cost of Complexity · Article 1 of 8

Why your engineering team gets slower as it grows

Growth slows delivery for a measurable reason: coordination between coupled parts. Here is what that costs and how to put a number on it.

David Vartanian6 min read

The multiplier is 3.00x. Cost per feature is $18,000. The annual figure is $576,000. Delivery time per feature triples as a team grows from 15 to 60, and headcount is not the cause. Five modules at an interdependence of 0.3, plus 20 coordination hours on 40 hours of vacuum effort, produce that multiplier.

Why it happens

A change that touches one module later touches five, and each extra module adds review and integration on the original hours. The Engineering Tax series names that multiplier the Sync Tax in The Sync Tax. The module term is interdependence times connascence degree: a weight of 0.3 on 5 modules. The coordination term is 20 coordination hours divided by 40 hours of vacuum effort. Delivery time is the vacuum hours times the multiplier. The opening’s triple is that delivery time, and the worked example is where it is priced.

The module term is what moves when the module count rises. Each added module adds the interdependence weight of 0.3. A diff that lists more than five modules raises the degree, the module term grows, and the multiplier rises with it. The five modules are the “five or more” in the opening, set to degree 5 in the worked example. The coordination term does not move with that count. It sits in the ratio of 20 hours to 40 hours until one of those hour counts changes. Growth shows up in those two inputs: more modules in the diff, and more hours of review, alignment, and integration around the feature.

Team size does not enter the formula. The inputs that move the multiplier are the module count and the hours around the feature. A team of 15 and a team of 60 can share the same vacuum effort of 40 hours. The slowdown in the opening is the change that now touches five modules and carries 20 coordination hours. Headcount can grow while those inputs stay put, and the multiplier stays where the worked example put it. Headcount can grow because the diff got wider, and then the degree and the coordination hours are what the calculator prices.

On a codebase the reader sees a 40-hour feature whose diff names five modules. Each module needs review, alignment, and integration. Those hours are the 20 coordination hours. A plan that still says 40 hours is quoting the vacuum effort. The calendar that shows the multiplied hours is quoting the multiplier. Across 48 features the annual figure is the per-feature gap, repeated. The file list and the meeting hours are the two places a reader can go to see why the calendar and the plan disagree.

A reader measuring their own repository counts the modules in a current feature and compares the count with 5. They add up the coordination hours around that feature and compare the sum with 20. They keep vacuum effort at the hours the work would take in a clean module, 40 on this page. If the team has gone from 15 people toward 60 and delivery time per feature has tripled, the page’s account of that triple is degree 5, interdependence 0.3, and 20 coordination hours. Adding a module adds to the module term. Adding an hour of review adds to the coordination term, which still does not move when the only change is the module count.

Each extra module adds the interdependence weight into the module term, and it adds review and integration on the original 40 hours only when those hours actually grow. The 20 coordination hours are the coordination term beside the module term. They can be counted separately. A team that hires and leaves the diff at five modules, with the same 20 hours around each feature, has the same multiplier the worked example already shows. A team whose diffs grow past five modules has a larger module term, whether or not anyone was hired.

A worked example

Connascence degree is 5. Interdependence factor is 0.3. Coordination overhead is 20 hours. Vacuum effort is 40 hours. Blended rate is $150. Features per year is 48.

The multiplier is 1 + (0.3 * 5) + (20 / 40) = 3.00. Vacuum cost is 40 hours times $150, which is $6,000. Feature cost is $6,000 times 3.00, which is $18,000. The annual figure is ($18,000 minus $6,000) times 48, which is $576,000. Delivery time for that feature is 40 times 3.00, which is 120 hours.

How to measure yours

Open the Engineering Cost Calculator and set Connascence Degree to 5 and Vacuum Effort to 40. Keep the other inputs at the values in the worked example. Those two are the inputs to set first. Connascence degree 5 is the module count in the module term. Vacuum effort of 40 hours is the baseline the multiplier turns into delivery time. Interdependence stays at 0.3. Coordination Overhead stays at 20 hours. Features per year stays at 48.

Move Connascence Degree and the module term moves. Each added module adds the interdependence weight of 0.3, so the multiplier grows with the module count. Delivery time, the feature cost, and the annual figure move with it. The coordination term does not move with the degree. Move Vacuum Effort and the 40-hour baseline moves, and the coordination term moves because those hours are its denominator. The worked example holds vacuum effort at 40 so delivery time stays the vacuum hours times the multiplier.

Coordination Overhead stays at 20 hours while those two inputs are set. Those 20 hours are the review, alignment, and integration on the five modules, and they are the numerator of the coordination term. Interdependence stays at 0.3. Features per year stays at 48. Team size does not enter the formula, so the team-size control can sit anywhere while these inputs produce the worked example.

Cost is the vacuum work times the multiplier, so the work is one divided by the multiplier of what you pay. Above 2.00x, more than half of every feature’s cost is overhead. At 3.00x the overhead is twice the 40 hours of work. Five modules at an interdependence of 0.3, plus 20 coordination hours, are what put the multiplier on that side of 2.00x. The line to watch is whether delivery time is the 40 hours or the 40 hours times the multiplier.

Up next in The Cost of Complexity · Article 2

Why small features take months on a legacy codebase

A 40-hour feature takes 464 hours when twelve modules move with it. The calculator returns 11.60x and $69,600 for that feature.

Continue reading →

Frequently asked questions

Why Your Engineering Team Gets Slower as It Grows

Why does an engineering team slow down as it grows?

Every change touches more coupled modules. With connascence degree 5, interdependence 0.3, 20 coordination hours, and a 40-hour feature, the calculator returns 3.00x.

Does adding engineers fix a slowdown?

Team size does not enter the formula. The inputs that move the 3.00x are module count and the hours around the feature.

What does a 40-hour feature cost at 3.00x and $150 an hour?

Vacuum cost is $6,000. Feature cost is $18,000. At 48 features a year the annual figure is $576,000.

Where do those inputs go?

Set Connascence Degree to 5 and Vacuum Effort to 40 on the Engineering Cost Calculator. Keep the other inputs from the worked example.

Newsletter

Be the first to get next articles in this series.