In software development, technical debt is a metaphor equating Extreme Programming’s incremental, get-something-started approach with the acquisition of money through a loan. A monetary loan, of course, has to be paid back with interest. In terms of software development, payback requires the developers to refactor the program as they learn more about how it interacts with other applications and which features end users are using, or not using, or wish they had. Just as monetary debt can easily spiral out of control if not managed properly, so can technical debt.
In business, the metaphor is often used to illustrate the concept that an organization will end up spending more in the future by not addressing a technical problem when it first presents itself. The assumption is that if an organization chooses to ignore a course of action it knows should be taken, the organization will risk paying for it in terms of time, money or damage to the organization's reputation in the future. As time goes by, efforts to go back and address the original problem may become complicated by new developments. Eventually the problem may reach a tipping point and the organization must then decide whether or not to honor its original debt and continue investing time and effort to fix the problem. This decision can be made more difficult by something called the sunk cost effect, which is the emotional tendency of humans to want to continue investing in something that clearly isn't working.
The metaphor is credited to software developer Ward Cunningham, who is perhaps best known for creating the first wiki. Cunningham proposes that getting software up and working as quickly as possible is not necessarily a bad thing. Cash that has been acquired with a loan can be spent right away. Similarly, a software product that ships quickly can provide immediate benefit to the business that needs it -- while also providing the program's developers with valuable feedback about how their code is working in the real world.
Ward Cunningham explains why he chose the word debt.
Continue Reading About technical debt
- ComputerWeekly: How software developers' "plastering over the cracks" with code leads to technical debt