technical debt
Deferred maintenance cost
Technical debt is the accumulated cost of shortcuts taken during software development.
Like financial debt, it accrues interest—quick fixes and expedient code that works now but creates maintenance burdens later.
Teams take on technical debt when they prioritize speed over quality: We shipped fast but now we're paying down technical debt.
The metaphor has spread beyond programming to any domain where deferred work compounds: The organization's technical debt in outdated processes was slowing everything down.
Accumulated unfinished work
- legacyWhat's passed down
- codebaseSoftware project's complete source
- complexityState of being complicated
- dependenciesThings required for operation
obsolescence · bugs · workarounds · shortcuts · cruft · entropy · rot · sprawl
Attention, stake, or fee
- overheadLocated directly above
- velocityDirected rate of motion
- productivityOutput relative to input
- opportunity costSacrificed alternative's worth
risk · liability · trade-off · deadline pressure · resource allocation · cognitive load · burnout · attrition
Ease of understanding text
- scalabilityCapacity for growth
- performanceCarrying out a task
- reliabilityConsistent, predictable performance
- maintainabilityEase of ongoing repair
testability · extensibility · stability · robustness · resilience · regression · defects · incidents
Code improvement, same behavior
- code reviewExamination of written software
- clean codeWell-organized, maintainable programming
- modularityDivisibility into independent units
- optimizationMaximizing efficiency or performance
testing · documentation · migration · modernization · rewrite · cleanup · overhaul · redesign
backlog
Accumulated unfinished work
- legacyWhat's passed down
- codebaseSoftware project's complete source
- complexityState of being complicated
dependencies · obsolescence · bugs · workarounds · shortcuts · cruft · entropy · rot · sprawl · bloat
interest
Attention, stake, or fee
- overheadLocated directly above
- velocityDirected rate of motion
- productivityOutput relative to input
opportunity cost · risk · liability · trade-off · deadline pressure · resource allocation · cognitive load · burnout · attrition · estimation
readability
Ease of understanding text
- scalabilityCapacity for growth
- performanceCarrying out a task
- reliabilityConsistent, predictable performance
maintainability · testability · extensibility · stability · robustness · resilience · regression · defects · incidents · outages
refactoring
Code improvement, same behavior
- code reviewExamination of written software
- clean codeWell-organized, maintainable programming
- modularityDivisibility into independent units
optimization · testing · documentation · migration · modernization · rewrite · cleanup · overhaul · redesign · decoupling
- tech methodsagile, debugging, scrum, testing, kanban
- workplace problemspoor communication, miscommunication, missed deadlines, budget overruns, scope creep
- vulnerabilitiesvulnerability, insecurity, weakness, self-doubt, flaw
- codefunction, source code, variable, array, class
- programmingvariables, functions, for, function, debugger
- antipatternsspaghetti code, dead code, code smell, cargo cult, golden hammer
technical debtclean code
Well-organized, maintainable programming
best practices · sustainable development · craftsmanship · paying down debt · refactoring
debt, technique, technical, technician, technically, technicality, technicalities, non-technical