Technical Debt: The WyCast Portfolio Management System
Ward (Howard) Cunningham. (View Paper → )
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…. entire engineering organisations can be brought to a stand-still under the debt load of an unconsolidated implementation.
Howard G. Cunningham is a famous programmer who developed the first wiki and was a co-author of the Manifesto for Agile Software Development. A pioneer in both design patterns and extreme programming he knew is stuff.
He coined the term "technical debt" in a report for the 1992 OOPSLA conference during his time at Wyatt Software. Cunningham used the term to describe the implied cost of future reworking required when choosing an easier, but limited, solution instead of a better approach that might take more time. He likened it to financial debt, explaining that rushing software out the door to gain immediate benefits is akin to taking a loan. However, just like financial debt, if this "technical debt" is not repaid promptly through proper refactoring and code improvement, it accumulates interest, making it increasingly difficult to implement changes in the future.
Cunningham's metaphor highlights the trade-offs involved in software development decisions, particularly when balancing the need for speedy delivery against long-term code quality and maintainability.