Technical debt is like financial debt - it allows you to go faster in the short term, but creates interest payments that slow you down over time. When you prioritize one aspect (speed, cost, or safety) too heavily, you create imbalances that manifest as technical debt.
The key insight: There's no such thing as a free lunch in software development. Every shortcut has a cost, and that cost compounds over time if not addressed.
This involves how easily code can be modified, updated, and extended over time. Poor maintainability creates increasing complexity and slower development cycles. When code becomes difficult to understand or change, every future modification takes longer and introduces more risk.
The ability of a system to handle increased load or growth. Neglecting scalability considerations during design can lead to architectural debt that becomes increasingly difficult to address later. What works for 100 users may completely break down at 10,000 users.
Remember: While the triangle above focuses on the primary trade-offs during development, maintainability and scalability are equally important long-term considerations that compound technical debt when ignored.