Glossary

Technical Debt

Technical debt is the implied future cost of choosing a fast or easy solution now instead of a better one that would take longer. Like financial debt, it accrues interest — every shortcut makes future changes slower until it's paid down.

Ward Cunningham coined the metaphor: shipping imperfect code to learn quickly is like borrowing money. It can be a smart trade — you get to market sooner — but you owe a principal (the cleanup) and you pay interest (every future change in that area is harder, slower, and more bug-prone until you refactor).

Debt comes in many forms: duplicated logic that must be changed in five places, a function that's grown to 300 lines, missing tests that make every edit risky, a dependency three major versions behind, dead code nobody dares delete, suppressed type errors. Some is deliberate and tracked; the dangerous kind is the unintentional drift nobody is measuring.

The point of measuring it is not zero debt — that's neither achievable nor worthwhile — but keeping it visible and serviceable, so teams make the borrow-or-pay decision deliberately instead of waking up insolvent.

How GateTest handles it

A large slice of GateTest's modules quantify technical debt rather than security: duplicateCode, deadCode, codeQuality (function length, complexity, TODO/FIXME), typescriptStrictness (any-leaks, @ts-ignore abuse), importCycle, and the architecture-drift checks. Each finding is a concrete, located line of debt you can choose to service.

Related modules: duplicateCode, deadCode, codeQuality, typescriptStrictness

Frequently asked questions

Is all technical debt bad?

No. Deliberately shipping a simpler solution to move fast can be a smart trade, as long as the debt is tracked and serviced. The dangerous kind is the unintentional, unmeasured drift that quietly makes every change slower and riskier.

How do you measure technical debt?

Through concrete, located signals: code duplication, dead code, oversized functions, complexity, suppressed type errors, import cycles, and outdated dependencies. GateTest's quality modules surface each of these as a finding tied to a file and line.

See Technical Debt on your own repo

Free preview of findings. Pay per scan — no subscription. AI auto-fix PR on the Scan + Fix tier.

Related terms