Skip to content

The Cost of Complexity · Article 7 of 8

Measuring engineering productivity in a language finance accepts

Cost per feature is the productivity number finance can read. These inputs return 3.25x, $19,500 per feature, and $648,000 a year.

David Vartanian5 min read

The multiplier is 3.25x. Cost per feature is $19,500. The annual figure is $648,000. Finance can read cost per feature. Output per sprint records that a feature shipped. Connascence degree 4 at an interdependence of 0.5, plus 10 coordination hours on 40 hours of vacuum effort, produce that multiplier across 48 features.

Why it happens

Output per sprint hides the multiplier. Cost per feature shows it. The metric behind that reading is in The Setup That Turns a 20-Hour Feature Into an 80-Hour One. The multiplier has two additions on top of the vacuum work. The module term is interdependence times connascence degree. Here that is a weight of 0.5 on 4 modules. The coordination term is coordination hours divided by vacuum effort. Here that is 10 hours over 40 hours. Cost per feature is the number that already matches a budget line.

The module term is what moves when the module count rises. Each added module adds the interdependence weight of 0.5. A diff that lists more than four modules raises the degree, the module term grows, and the multiplier rises with it. The coordination term does not move with that count. It stays where it is until the 10 hours or the 40 hours change. Module count and coordination hours both sit inside cost per feature. They arrive through different terms, and cost per feature shows both without asking anyone to defend a story point.

On a codebase the reader sees a feature estimated at 40 hours and a diff that names four modules. Reviews and the meeting around the change add 10 coordination hours. A sprint report can still say the feature shipped. The report’s unit is the feature. Cost per feature is the same feature after the module term and the coordination term. A reader who quotes the vacuum hours and leaves the multiplier off the page is quoting the baseline. The worked example is the page that puts the multiplier back on.

Across the year the same shape repeats. Features per year is 48. Each feature carries the module term from the four modules and the coordination term from the 10 hours. The annual figure is the per-feature gap, repeated. That pair, cost per feature and the annual figure, is the reading finance can use. The degree, the 0.5 weight, and the 10 coordination hours are how the reading was produced. They are inputs a finance partner can be shown, because each one is a count: modules in the diff, hours in the meetings, features in the year.

A reader taking this to their own repository counts four modules in the change and 10 hours of coordination around a 40-hour feature. If the diff lists the four modules and the calendar shows the 10 hours, the worked example is the cost per feature this page is talking about. If they report output per sprint and leave the multiplier off the page, the vacuum hours are the number that gets quoted and the multiplied cost is the number that gets paid. The 40 hours remain the baseline. They are the feature before either term is applied.

The coordination term does not grow because the team added a module. It grows because the hours around the feature grew, or because the vacuum effort shrank and the same meetings became a larger share of it. The module term does the opposite: it ignores the meeting hours and follows the file list. Cost per feature is the sum of those two stories. Splitting them is how a finance conversation stays on an input someone can go and count.

A worked example

Connascence degree is 4. Interdependence factor is 0.5. Coordination overhead is 10 hours. Vacuum effort is 40 hours. Blended rate is $150. Features per year is 48.

The multiplier is 1 + (0.5 * 4) + (10 / 40) = 3.25. Vacuum cost is 40 hours times $150, which is $6,000. Feature cost is $6,000 times 3.25, which is $19,500. The annual figure is ($19,500 minus $6,000) times 48, which is $648,000.

How to measure yours

Open the Engineering Cost Calculator and set Connascence Degree to 4 and Coordination Overhead to 10. Keep the other inputs at the values in the worked example. Those two are the inputs to set first. Connascence degree 4 is the module count in the module term. Coordination overhead of 10 hours is the numerator of the coordination term. Interdependence stays at 0.5. Vacuum Effort stays at 40 hours. Features per year stays at 48.

Move Connascence Degree and the module term moves. The multiplier, the cost per feature, and the annual figure move with it. Each added module adds the interdependence weight of 0.5. The coordination term does not move with the degree. Move Coordination Overhead and the coordination term moves. The same three results move with that term, and the module term stays still. Leave Vacuum Effort at 40 so the denominator of the coordination term and the baseline hours stay on the worked example.

Interdependence is the weight on the four modules. It stays at 0.5 while degree and coordination are set first. Features per year stays at 48 so the annual figure stays the per-feature gap repeated. The inputs to set first are still Connascence Degree and Coordination Overhead, because those are the two terms above the vacuum work on this page.

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. These inputs sit at 3.25x. Four modules at an interdependence of 0.5, plus 10 coordination hours on 40 hours of vacuum effort, are what push the multiplier past 2.00x. Output per sprint can still look full on that side of the line. Cost per feature is the reading that shows it.

← Previous: What module coupling actually costs you

Up next in The Cost of Complexity · Article 8

Rewrite the monolith or keep patching it

The current inputs cost $1,458,000 a year above the work. A second run with a smaller change surface costs $172,800 a year. The gap is $1,285,200.

Continue reading →

Frequently asked questions

Measuring Engineering Productivity in a Language Finance Accepts

Which number should finance use?

Cost per feature. These inputs return 3.25x and $19,500 per feature.

What is inside the $19,500?

The 40 hours of work are $6,000. The rest of the $19,500 is the multiplier.

What is the annual figure?

($19,500 minus $6,000) times 48 features is $648,000.

Which two inputs should I set first?

Set Connascence Degree to 4 and Coordination Overhead to 10. Keep the other inputs from the worked example.

Newsletter

Be the first to get next articles in this series.