Dictionary
Technical Debt
Technical debt is the accumulated cost of shortcuts, suboptimal code, and deferred maintenance that slows future development and increases complexity over time. Like financial debt, it compounds: each shortcut makes subsequent changes harder, slower, and riskier. Technical debt arises from prioritizing speed over quality, letting dependencies become outdated, or when evolving requirements outpace the original architecture.
Common forms include duplicated code, missing tests, inconsistent patterns, outdated libraries with known vulnerabilities, tightly coupled modules that resist change, and documentation that no longer reflects reality. Managing technical debt requires regular refactoring sessions, dependency updates, and deliberate allocation of engineering time to maintenance alongside feature work. The practical challenge is making technical debt visible to non-technical stakeholders, which often means translating it into reduced velocity, increased bug rates, and growing onboarding time for new developers.