frontend
How to Explain Technical Debt to Non-Tech People
Thoughts from the intersection of code, craft, people, and progress.
Use metaphors. Avoid jargon. Tell a story.
Technical debt becomes easier to discuss when it is connected to outcomes rather than presented as a mysterious engineering discomfort. The useful conversation is about risk, speed and future choices, not whether everybody appreciates the emotional burden of an old dependency.
Debt is a useful metaphor only when it leads to a useful decision. Naming a compromise is not enough; the team needs to know what it costs, when that cost will matter, and what signal should trigger repayment.
I have learned to be suspicious of advice that only works in a tidy example. Real projects come with history, deadlines, uneven confidence and requirements that move while you are looking at them.
Optimise for the next decision
Engineering choices are rarely permanent, but they can make the next choice dramatically easier or harder. The useful question is not whether an approach is perfect. It is whether it leaves the team in a good position when reality changes.
I look for feedback loops, visible trade-offs and a cheap route back. Small releases expose assumptions while they are still affordable. Clear defaults reduce accidental variation. A little discipline early is usually kinder than a rescue project later.
The best technical decision often buys clarity before it buys capability.
Good engineering creates options. It solves today's problem without quietly charging tomorrow's team an unreasonable fee.
There will always be exceptions. The trick is to make them deliberate exceptions rather than habits nobody remembers choosing.