~ $ cd projects/technical-debt && cat README.md

Technical debt

The compound effect of technical debt on productivity. Taking shortcuts saves time at first, and creates interest that slows every feature after.

The simulator models two teams building the same features:

  1. Clean development: a consistent pace, no shortcuts, steady productivity.
  2. Debt-driven development: an initial boost from shortcuts, then a compound slowdown.

$ technical-debt

24clean features
16debt features
month 10break-even
33.3%loss on the shortcut road

Cumulative features

0510152011224MonthsFeaturesCleanDebt-drivenCleanDebt-driven

Monthly delivery rate

00.20.40.60.8111223MonthsFeatures a monthClean: 1Clean: 1Clean: 1Clean: 1Clean: 1Clean: 1Clean: 1Clean: 1Clean: 1Clean: 1Clean: 1Clean: 1Clean: 1Clean: 1Clean: 1Clean: 1Clean: 1Clean: 1Clean: 1Clean: 1Clean: 1Clean: 1Clean: 1Debt-driven: 1Debt-driven: 1Debt-driven: 1Debt-driven: 1Debt-driven: 1Debt-driven: 0Debt-driven: 1Debt-driven: 1Debt-driven: 0Debt-driven: 1Debt-driven: 0Debt-driven: 1Debt-driven: 1Debt-driven: 0Debt-driven: 0Debt-driven: 1Debt-driven: 0Debt-driven: 1Debt-driven: 0Debt-driven: 0Debt-driven: 1Debt-driven: 0Debt-driven: 1CleanDebt-driven

25% saved at first, 10% interest on every feature: clean development overtakes at month 10, and by month 24 the shortcut road has delivered 33.3% less.

What the dials do

What it shows

The moment when clean development overtakes debt-driven development in total features is the break-even point. Short-term gains become long-term losses; the higher the interest, the sooner. Zero interest is the only case where the shortcut wins, and zero interest is not a thing that happens to real code: skipped tests, quick fixes and accumulated complexity are all paid for by whoever touches the code next.

Real-world implications

This is what happens in projects that skip tests, documentation or design, take quick fixes instead of proper solutions, and let complexity accumulate. The hidden cost is not the shortcut. It is every change that comes after it.

~/projects/technical-debt $

~/projects/technical-debt $