Carlos Cifuentes
Glossary

Technical debt

Technical debt is the future cost created by technical shortcuts or postponed maintenance, which makes later changes slower and riskier until it is paid down.

Ward Cunningham introduced the debt metaphor to explain a trade-off to non-technical people. Shipping a quick solution today is like borrowing money. You get something sooner, and you pay interest afterward: every later change in that area takes more time than it would have with a clean solution. Paying the principal means going back and doing the work properly.

Debt comes from several sources:

  • Deliberate shortcuts taken to meet a date.
  • Decisions that were reasonable then and are outdated now.
  • Dependencies and frameworks that were never upgraded.
  • Missing tests and documentation.

Example

A team stays on AngularJS after its support ended because the roadmap is full. Nothing breaks that month. The interest shows up later. A library they need supports only modern frameworks. A security audit flags the unsupported dependency. Candidates decline offers because of the stack. Each year the migration gets larger, since new features are still being written in the old framework.

Common misunderstanding

Two ideas get mixed up here. First, debt and bad code are different things. A careful shortcut taken with a plan to fix it is debt. Careless work with no plan is simply poor quality. Second, taking on debt can be a sound decision, as with a loan, when the team knows the interest and pays it down.

The trouble starts when the debt is invisible. Make it concrete: list the items, estimate what each one costs in slower delivery or in risk, and put the largest ones on the roadmap next to the features. The AngularJS end-of-life options guide shows how this applies to an unsupported framework.

Why it matters. An unsupported framework is debt whose interest grows every year. Describing a migration in those terms helps the business compare its cost against the cost of waiting.

Related terms

Planning a migration or a micro-frontend platform?

In a 20-minute call you describe your situation and I tell you how I'd approach it. If it isn't worth doing yet, I'll say so.

Message me on LinkedIn