Technical Debt from Ward Cunningham

“Technical Debt” is one of those terms which has taken on a life of its own, far beyond the original notion proposed by Ward Cunningham, the engineer who proposed the notion. Let’s see what Mr. Cunningham originally meant:

I coined the debt metaphor to explain the refactoring that we were doing on the WyCash product. This was an early product done in Digitalk Smalltalk, and it was important to me that we accumulate the learnings we did about the application over time by modifying the program to look as if we had known what we were doing all along and to look as if it had been easy to do in Smalltalk.

The explanation I gave to my boss, and this was financial software, was a financial analogy I called “the debt metaphor”. And that said that if we failed to make our program align with what we then understood to be the proper way to think about our financial objects, then we were gonna continually stumble over that disagreement and that would slow us down which was like paying interest on a loan.

Modern usage covers a lot more ground than misalignment between the understanding of the business domain and its implementation in software. Yet this original notion remains useful for determining how to address any sort of technical debt, in its originally proposed or currently understood usage.