Stratum 04 / Reduce|5-min read

How to reduce tech debt: three models that work

Prioritise what to fix, allocate time to fix it, prevent the next layer from forming. Three pages of cheat sheet for the leader who needs to start on Monday.

Step 01 / Prioritise

Three priority tiers

Not all debt is created equal. Sort yours into three tiers in 30 seconds.

Tier 1 / Fix Nowblocks every team daily

Debt that costs hours of pain every single working day. The 45-minute build. The flaky test that fails 1 in 4 runs. The deploy that requires a runbook. Stop the bleeding first.

Tier 2 / Plan Forhigh-churn modules

Debt in code that changes weekly. Use churn-times-complexity to find it. These pay back fastest because every refactor saves friction every sprint thereafter.

Tier 3 / Deferaesthetic / cold code

Ugly code in modules nobody touches. Resist the urge. Time spent here is time not spent on Tier 1.

Step 02 / Allocate

Three sprint allocation models

Pick the one that fits your team's shape and political reality. Mixing models within a quarter erodes the discipline.

Model

The 20% Rule

Reserve 20% of every sprint

Best for: Steady-state teams with healthy velocity. Shopify and Atlassian's published default.

Watch out: Erodes when delivery pressure spikes. Needs a leader who protects it.

Model

Dedicated Sprints

1 full sprint per quarter

Best for: Concentrated debt in specific modules. Easier to defend politically.

Watch out: Episodic by nature. McKinsey 2023 found systematic allocation outperforms.

Model

Debt Squad

Permanent 1-2 engineer rotation

Best for: Teams of 8+ with critical debt. Specialised focus.

Watch out: Squad becomes the dumping ground. Rotate to prevent burnout.

Step 03 / Execute

Refactoring techniques quick reference

Pick the technique that fits the shape of the debt. Avoid the big-bang rewrite unless the codebase is genuinely irrecoverable.

TechniqueOne-lineBest for
Strangler FigReplace incrementally; route traffic gradually to the new path.Legacy monolith you cannot rewrite atomically.
Branch by AbstractionAdd an abstraction layer, swap implementations behind it.In-tree refactors of widely-called code.
Test FirstAdd characterisation tests before touching anything.Untested legacy code where behaviour is unknown.
Seam DecompositionFind natural boundaries; extract along them.God-classes and tangled service boundaries.
Boy-Scout RuleLeave code cleaner than you found it on every PR.Continuous low-grade improvement; pairs well with 20% Rule.

Step 04 / Prevent

Stop the next layer forming

Six-item checklist. Adopt all six and your annual accrual rate drops from 18% to single digits.

  • Tag debt at creation. Every shortcut links to a cleanup ticket in the backlog.
  • Update Definition of Done. Add “no new debt without a tracked cleanup”.
  • Architecture review for large features. Catch design debt before it ships.
  • Quarterly debt budget. Allocate explicitly in OKR planning, not as residual.
  • Automated quality gates. CI fails on regression; SonarQube ratchet up.
  • Quarterly debt retrospectives. Track the trend; celebrate paydown.

For the full strategy selector quiz, comparison matrix, and detailed technique guides: techdebtcalculator.com/payoff.

Measure firstPitch leadershipSee ROI ->