Copyright © by Mark J. Sebern Software Engineering Process I SE Technical debt
Copyright © by Mark J. Sebern 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?
Copyright © by Mark J. Sebern 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
Copyright © by Mark J. Sebern Types of Technical Debt How do the following types differ? Naive technical debt Unavoidable technical debt Strategic technical debt
Copyright © by Mark J. Sebern Consequences of Technical Debt Unpredictable tipping point Increased delivery time Significant # of defects Rising development & support costs Product atrophy Decreased predictabilit y Under- performanc e Universal frustration Decreased customer satisfaction
Copyright © by Mark J. Sebern Causes of Technical Debt Deadline pressure False “acceleration” Decreased verification Cumulative debt effects (decreasing velocity)
Copyright © by Mark J. Sebern Managing Technical Debt Managing debt accrual Making debt visible Servicing the debt
Copyright © by Mark J. Sebern Managing Technical Debt Managing debt accrual Making debt visible Servicing the debt Good technical practices Strong “done” definition Understanding of debt economics (delay vs repayment costs)
Copyright © by Mark J. Sebern Managing debt accrual Making debt visible Servicing the debt Good technical practices Strong “done” definition Understanding of debt economics (delay vs repayment costs) Managing Technical Debt Don’t forget that debt bears interest!
Copyright © by Mark J. Sebern Managing Technical Debt Managing debt accrual Making debt visible Servicing the debt Good technical practices Visibility at the business level (balance sheet) Strong “done” definition Visibility at the technical level (defects, PBIs, cards) Understanding of debt economics (delay vs repayment costs)
Copyright © by Mark J. Sebern Managing Technical Debt Managing debt accrual Making debt visible Servicing the debt Good technical practices Visibility at the business level (balance sheet) Deciding whether to repay Strong “done” definition Visibility at the technical level (defects, PBIs, cards) Repay when found, incrementally, high- interest first Understanding of debt economics (delay vs repayment costs) Repay while producing value (avoid balloon payments)
Copyright © by Mark J. Sebern Review Types of technical debt Consequences Managing technical debt