The Cost of Complexity · Article 6 of 8
What module coupling actually costs you
Seven modules moving together, with coordination hours at zero, returns 4.50x, $27,000 per feature, and $1,008,000 a year.
The multiplier is 4.50x. Cost per feature is $27,000. The annual figure is $1,008,000. Seven modules at an interdependence of 0.5 produce that multiplier, and coordination hours are zero. The coupling term is interdependence times those seven modules. The coordination term is idle.
Why it happens
Coupling is the interdependence factor times connascence degree. The price of each level of that coupling is in Coupling Isn’t a Binary Switch, and Every Level Has a Price. Connascence degree is how many modules must move when one feature ships. Here the degree is 7. Interdependence 0.5 is the weight on each of those modules. Each added module adds that weight into the module term. A diff that lists more than seven modules raises the degree, the module term grows, and the multiplier rises with it. A diff that lists fewer modules lowers the degree and the multiplier falls with it.
The coordination term does not move with that module count, and on this page it does not move at all. Coordination overhead is 0 hours. The coordination term is those hours divided by the vacuum effort, so the ratio is idle. An added module does not create a meeting in this example. It only raises the degree inside the module term. That is why the multiplier can grow with module count while nobody adds a meeting. The formula has two additions after the vacuum work: the module term, and coordination overhead divided by vacuum effort. With coordination hours at zero, module count is the addition that remains.
On a codebase the reader sees one feature and seven modules in the same change. The pull request names those modules. Owners of each module still have the code land in their tree. The coordination-overhead input is 0 hours, so this page is pricing the coupling with the meeting hours set to zero. The vacuum effort stays at 40 hours, which is the baseline the module term scales. The gap above that baseline is the coupling term, because there is no coordination term beside it.
A reader measuring their own repository starts from the diff. Count the modules that have to change for the feature. That count is the connascence degree. Compare it with the 7 on this page. Read the interdependence factor as the weight on each of those modules. This page uses 0.5. Then look at coordination overhead. This page sets it to 0 hours on purpose, so the gap above the vacuum work can be read as coupling. A repository whose diffs routinely list seven modules, and whose meeting hours on that feature are at zero, is looking at this degree and this idle coordination term.
The year is the per-feature gap repeated. Features per year is 48. Each feature carries the same module term while the degree stays at 7, the weight stays at 0.5, and the coordination hours stay at zero. The annual figure is that gap times the feature count. The vacuum work is still inside every feature. The multiplier is what the seven modules do to that work when the coordination term contributes nothing.
If a later change adds coordination hours, the coordination term joins the multiplier and the gap is no longer the coupling term alone. This page holds those hours at zero so the module term can be seen by itself. The thing that grows the multiplier here is the length of the diff, one module at a time, at a weight of 0.5.
A worked example
Connascence degree is 7. Interdependence factor is 0.5. Coordination overhead is 0 hours. Vacuum effort is 40 hours. Blended rate is $150. Features per year is 48.
The multiplier is 1 + (0.5 * 7) + (0 / 40) = 4.50. Vacuum cost is 40 hours times $150, which is $6,000. Feature cost is $6,000 times 4.50, which is $27,000. The gap is $27,000 minus $6,000, which is $21,000. Coordination hours are zero, so that gap is the coupling term. The annual figure is $21,000 times 48, which is $1,008,000.
How to measure yours
Open the Engineering Cost Calculator and set Connascence Degree to 7 and Interdependence Factor until it reads 0.5. Keep the other inputs at the values in the worked example. Those two are the inputs to set first. Coupling is interdependence times connascence degree, so 7 and 0.5 are the module term. Coordination Overhead stays at 0 hours. Vacuum Effort stays at 40 hours. Features per year stays at 48.
Move Connascence Degree and the module term moves. The multiplier, the feature cost, the gap, and the annual figure move with it. Each added module adds the interdependence weight of 0.5. Move Interdependence Factor and the same term moves, because 0.5 is the weight on each of the seven modules. Leave Coordination Overhead at 0 so the gap stays on coupling. The coordination term does not move while those hours stay at zero, no matter how long the diff is.
If coordination hours leave zero, the coordination term joins the multiplier, and the gap is no longer the coupling term alone. Vacuum effort and the blended rate scale the baseline under a multiplier the module term has already set. Features per year scales the year. The inputs to set first remain Connascence Degree and Interdependence Factor.
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 4.50x with coordination hours at zero, so the whole distance past 2.00x is the module term: seven modules at an interdependence of 0.5. The line to watch is the length of the diff, with the meeting hours still at zero.
← Previous: How to calculate technical debt in dollars
Up next in The Cost of Complexity · Article 7
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.
Frequently asked questions
What Module Coupling Actually Costs You
What does coupling cost on one feature?
With coordination hours at zero, the gap above the $6,000 of work is coupling. That gap is $21,000 per feature.
Why are coordination hours zero in this example?
Zero coordination hours leaves the whole gap on the coupling term, interdependence 0.5 times connascence degree 7, which is the 4.50x multiplier.
What is the annual figure?
$21,000 times 48 features is $1,008,000. Cost per feature on the calculator is $27,000.
Which two inputs should I set first?
Set Connascence Degree to 7 and Interdependence Factor until it reads 0.5. Keep coordination hours at 0.
Newsletter
Be the first to get next articles in this series.