Yet another recurring phrase on DotNetRocks’s podcasts, and a catchy one at that! The term ‘technical debt’ was coined by Ward Cunningham to describe the eventual consequences a software development organization incurs when it chooses to do things the quick and dirty way, which benefits the short-term but increases complexity and ultimately is more costly in the long term.
Technical debt incurs interest payments in the shape of extra effort required for future development, but can be paid down by refactoring the quick and dirty design into better designs. It costs to pay down technical debt, but you gain by reducing future interest payments.
Technical debt is almost unavoidable in any real-world development project, and sometimes it may be sensible to incur some technical debt in order to meet an important deadline just as businesses incur some debt to take advantage of a market opportunity.