Back to glossary
T
Definition

Technical Debt IT definition

The future cost of short-term technical shortcuts — in code, architecture, or tooling — that will have to be paid back to keep the IT estate moving.

Technical debt is the implicit cost of technical decisions taken to ship faster in the short term at the expense of quality, maintainability, or longevity. Like financial debt, it accrues interest: every rushed feature, every unpatched dependency, every legacy application kept alive past its vendor's end-of-life slows down everything that follows.

Ward Cunningham coined the term in 1992 for software development, but it applies to the whole IT estate: source code, architecture, infrastructure, tooling, processes, documentation. For a CIO, it is now one of the biggest brakes on transformation: McKinsey estimates that 20 to 40 % of a company's technology value is consumed by managing its technical debt.

Forms of technical debt

  • Code debt: duplicated, untested, undocumented code that complicates every change.
  • Architecture debt: aging monoliths, tight couplings, structural choices that no longer fit.
  • Infrastructure debt: outdated OS, end-of-life databases, unsupported dependencies.
  • Application debt: applications kept alive past vendor support — see technical obsolescence.
  • Knowledge debt: missing documentation, key engineers gone, lost expertise.
  • Security debt: unpatched vulnerabilities, loose access controls, audits postponed.

Intentional vs accidental debt

Martin Fowler's quadrant is useful:

  • Intentional, prudent debt: "we know this shortcut will cost us, but time-to-market makes it the right trade". Manageable if documented and tracked.
  • Intentional, reckless debt: "we shipped without tests, we'll see later". The worst profile — invisible and forgotten.
  • Accidental, prudent debt: "with what we knew then, this was the right call". Unavoidable, paid back as context changes.
  • Accidental, reckless debt: a team that doesn't realize it is taking on debt — usually from inexperience.

Why technical debt costs

Unmanaged debt extracts a real toll:

  • Velocity: engineering teams spend up to 30 % of their time working around debt instead of building value (Stripe Developer Coefficient Report).
  • Hidden costs: over-spend on cloud, obsolete licenses, permanent corrective maintenance.
  • Operational risk: more frequent incidents, longer MTTR, RTO/RPO impossible to meet.
  • Security: every unpatched dependency is a CVE waiting. Log4Shell and the 2021-2024 supply-chain attacks were brutal reminders of the cost of software debt.
  • Talent retention: developers and SREs avoid debt-saturated estates; turnover rises.

Measuring and tracking debt

Measurement comes before repayment. The most common indicators:

  • Code smells, cyclomatic complexity, test coverage: via SonarQube, CodeClimate.
  • Dependency age: share of libraries past end-of-support (Snyk, Dependabot).
  • Density of end-of-life applications: pulled from the application portfolio.
  • Debt weighted by business value: cross criticality and technical health (TIME matrix).
  • Debt cost per team: time spent patching divided by total capacity.

Repayment strategies

Three proven patterns:

  • Dedicated budget: 15 to 20 % of engineering capacity ring-fenced for debt, protected by management.
  • The boy-scout rule: "leave the code better than you found it". Continuous repayment alongside new features.
  • Modernization programs: dedicated projects for structural debt (monolith refactor, exiting a legacy stack). Expensive, long-payback, but irreplaceable for big-ticket debt.

Kabeen automatically surfaces the applications in technical debt across your IT estate (end-of-life, low usage, duplicates, weak adoption) and gives the CIO a quantified rationalization plan.

Frequently asked questions

What is technical debt?

+

Technical debt is the future cost of technical shortcuts taken to ship faster: untested code, outdated dependencies, ill-fitting architecture, applications past vendor support. Like financial debt, it accumulates interest (slowdowns, incidents, risk) and eventually blocks any further change if it isn't paid back regularly.

How do you measure technical debt?

+

Through complementary indicators: code quality (SonarQube, test coverage, cyclomatic complexity), age and criticality of dependencies (Snyk, Dependabot), share of end-of-life applications in the portfolio, and crucially the time engineering teams spend working around debt versus shipping value. Stacked together, these form a debt score that can be steered.

How do you pay down debt without blocking new features?

+

Three combinable levers: reserve a dedicated capacity budget (15 to 20 % of every sprint), enforce the boy-scout rule (every change leaves the code slightly cleaner), and run targeted modernization programs for the structural debt. The classic mistake is to treat debt as an exceptional project — debt is paid down continuously or it grows.

How is technical debt different from obsolescence?

+

Obsolescence is a specific kind of debt: a technology or application no longer supported by its vendor or no longer fit for purpose. Technical debt is broader — it also covers poorly written code, fragile integrations, missing documentation, dated architectural choices — all of which can exist on perfectly current technology stacks.

Need help mapping your IT landscape?

Kabeen helps you inventory, analyze and optimize your application portfolio.

Try for free