Glossary

What Is Technical Debt?

Technical debt is the accumulated cost of shortcuts taken during development — every 'we'll fix it later' decision that slows down future changes and increases bug risk.

The metaphor comes from Ward Cunningham: taking shortcuts in code is like taking on financial debt. You get speed now, but you pay interest later — every new feature takes longer because you're working around the shortcuts you took before.

Types of technical debt:

  • Intentional — "Ship it now, refactor after we validate" (reasonable MVP tradeoff)
  • Accidental — bad patterns introduced by inexperience or time pressure
  • Bit rot — code that was correct but became outdated as the system evolved

How technical debt compounds: A single shortcut is cheap. Ten shortcuts in the same codebase interact unpredictably. Adding a new feature requires understanding — and working around — all ten. Velocity drops. Bugs increase. Engineers dread touching the affected areas.

Common SaaS technical debts that hurt most:

  • No multi-tenancy from the start — retrofitting is expensive
  • Missing TypeScript types — silent errors in production
  • No test coverage on billing logic — every change risks payment bugs
  • Hardcoded configuration — environment parity breaks

Managing it deliberately: Good engineering means choosing which shortcuts to take and when to pay them back. A "tech debt sprint" once per quarter keeps it from compounding into a rewrite. The worst outcome is debt accruing invisibly until the codebase is unmaintainable.

Related Terms

Want this built?