Keeping the product changeable.
WHAT IT IS
Consequences of earlier decisions that make current change slower.
WHY SOME IS CORRECT
Shipping quickly to learn is worth a cost you repay later.
WHAT MAKES IT DANGEROUS
Accumulating without acknowledgement.
WHAT IT LOOKS LIKE IN PRACTICE
Changes taking longer than they should Fear of touching certain areas Defects recurring Nobody understanding a component
WHAT TO TRACK
Where change is slow, and why.
WHAT TO PRIORITISE FIXING
Debt in areas you change frequently.
WHY
Debt in stable code costs nothing.
WHAT TO AVOID
Rewriting the whole product.
WHY
It takes far longer than expected, delivers no new value, and frequently fails.
WHAT TO DO INSTEAD
Improve incrementally, alongside feature work.
WHAT PROPORTION OF EFFORT TO ALLOCATE
Enough that it does not accumulate. A regular fraction works better than occasional campaigns.
WHAT TESTS PROVIDE
The confidence to change things.
WHY THAT MATTERS MOST
Without them, every change is risky, so changes stop happening.
WHAT TO ADD TESTS TO FIRST
Anything involving money, permissions or data.
WHAT TO DOCUMENT
Decisions and their reasons, so future work understands them.