Accumulated compromise.
WHAT IT IS
Consequences of decisions taken for speed, now costing time.
WHAT IT LOOKS LIKE
Duplicated logic Missing tests Outdated dependencies Workarounds nobody remembers the reason for Areas everyone avoids changing
WHAT MAKES IT DANGEROUS
It compounds. Each change becomes slower and riskier.
WHAT TO MEASURE
Where time actually goes, and where defects originate.
WHAT TO PRIORITISE
Debt in areas that change frequently.
WHY
Debt in stable code costs little.
WHAT TO AVOID
A wholesale rewrite Refactoring without tests Fixing everything at once
WHAT TO DO INSTEAD
Improve areas as you work in them.
WHAT TO ADD FIRST
Tests, before changing anything risky.
WHY
Otherwise you cannot know whether you broke something.
WHAT TO TRACK
Known debt, explicitly, so it is visible rather than folklore.
HOW TO JUSTIFY THE WORK
In business terms: time lost, defects caused, risk carried.
WHY
Technical justification does not persuade those allocating time.