Cook Computing

Technical Debt

September 9, 2003 Written by Charles Cook

An interesting piece by Martin Fowler:

Technical Debt is a wonderful metaphor developed by Ward Cunningham to help us think about this problem. In this metaphor, doing things the quick and dirty way sets us up with a technical debt, which is similar to a financial debt. Like a financial debt, the technical debt incurs interest payments, which come in the form of the extra effort that we have to do in future development because of the quick and dirty design choice. We can choose to continue paying the interest, or we can pay down the principal by refactoring the quick and dirty design into the better design. Although it costs to pay down the principal, we gain by reduced interest payments in the future.

Another downside to always taking the quick&dirty approach is the way it causes developer morale to spiral downwards. The technical debt builds up so much that there is no chance of ever paying it off so why bother even trying. There is no easy way out of that scenario.