Software Engineering Process I • SE-2800-07 • Technical debt
Technical Debt • What is debt (in a financial sense)? • Principal, interest, payments, compounding • What’s the basic idea of “technical debt”? • Is “debt” (always? ever?) a bad thing? • Is “debt” (always? ever?) a good thing?
Kinds of Technical Debt • Unfit (bad) design • Defects • Insufficient test coverage • Excessive manual testing • Poor integration and release management • Lack of platform experience • Other kinds? Briefly, define each kind
Types of Technical Debt • How do the following types differ? • Naive technical debt • Unavoidable technical debt • Strategic technical debt
Consequences of Technical Debt Increased delivery time Unpredictable tipping point Significant # of defects Decreased customer satisfaction Rising development & support costs Universal frustration Product atrophy Under-performance Decreased predictability
Causes ofTechnical Debt False “acceleration” Deadline pressure Decreased verification Cumulative debt effects (decreasing velocity)
Managing Technical Debt Don’t forget that debt bears interest!
Review • Types of technical debt • Consequences • Managing technical debt