The metaphor of technical-debt was first expressed by Ward Cunningham in 1992:
Shipping first time code is like going into debt. A little debt speeds development so long as it is paid back promptly with a rewrite… The danger occurs when the debt is not repaid. Every minute spent on not-quite-right code counts as interest on that debt. Entire engineering organizations can be brought to a stand-still under the debt load of an unconsolidated implementation, object-oriented or otherwise.
Like many other experienced software developers, I’ve seen, created and addressed my share of technical debt during my career. These posts cover some of my thoughts on the subject, including some ideas on the different kinds of technical debt and the different ways they can be mitigated or avoided.