Engineering

Technical Debt

Technical debt refers to the implied cost of future rework required when shortcuts or suboptimal solutions are chosen during software development for the sake of speed.

In depth

Ward Cunningham coined the term as a useful analogy: just as financial debt accrues interest, technical debt accrues 'interest' in the form of slower future development.

Types of technical debt: - Deliberate: consciously choosing a quick solution knowing it needs rework later - Inadvertent: poor choices made without realizing they're suboptimal - Bit rot: code becomes outdated as dependencies and requirements evolve

For startups, some technical debt is rational — shipping faster matters more than perfect code in pre-PMF stage. The danger is accumulating so much debt that velocity drops to nearly zero.

Signs technical debt is a problem: - Features take 3× longer than they should - Developers are afraid to touch certain parts of the codebase - Every new feature introduces new bugs - No tests → any change could break anything

The fix: regular refactoring sprints, incremental rewrites, and hiring engineers who understand the tradeoff between speed and quality.

Real example

A startup hardcodes their business logic in API routes instead of a proper service layer to ship faster. This works for an MVP. After 12 months, every new feature requires duplicating logic in 5 places — a classic technical debt accumulation story.

Tools & calculators

Related terms

Ready to build your product?

Fixed price. 21-day delivery. Senior team.

Get a free scoping call →

Browse the glossary