Technical debt
Meaning
Technical debt is the extra development work that arises when a quick-and-dirty coding solution is chosen instead of applying the best overall design, leading to future complications and slower progress.
Origin
The potent metaphor of “technical debt” was first articulated by Ward Cunningham, a visionary in the realm of software development and one of the creators of the first wiki. In 1992, he delivered a powerful presentation, likening the shortcuts taken in software design to a financial loan. A company might take on a financial debt to achieve rapid growth, knowing they’ll pay interest, and Cunningham observed the same dynamic in coding. Building software quickly, even with less-than-ideal solutions, gets a product out the door fast, but it accrues “interest” in the form of increased complexity, future bugs, and a slowdown in subsequent development. Cunningham’s insight was that some debt is strategic, a conscious trade-off for speed, but all of it demands eventual repayment or the escalating interest will cripple an organization's future innovation.
Examples
- Our team incurred significant technical debt by rushing the initial launch without proper testing, which now slows down every new feature we try to add.
- The decision to skip refactoring the old module has created a pile of technical debt that will eventually need to be paid off with dedicated development time.