Technological debt is mistakenly thought of as a software problem, but when system design cannot change according to the needs of the business, it becomes a business problem. Just like financial debt, technological debt is a business liability - it affects the liquidity of the business.
Think of good design in a system as a line of credit: just as purchasing new equipment for the business without generating income creates a debt against the credit line, adding features to a system without improving its design is “borrowing” against the capabilities of the system. There can be good reason to do this; after all, credit is used to improve cash flow and solvency.
The danger is in thinking of this temporary loan as a permanent increase in funds. The debt must eventually be repaid. Failure to reduce the debt (improve the design) in favor of making new purchases (adding new features) eventually results in a large portion of effort going toward interest payments (patches and bug-fixes), and reduced buying power (ability to add new features).
Eventually, this can lead to a situation where all the effort is going toward interest payments (struggling to keep the system alive), and only trivial features can be added without major rework
.


Agile Journal - Emergent Design: Leveraging Agile Retrospectives to Evolve Your Architecture
Tags: agile, scrum, technicalproduct owner, architect