Copyright © 2012-2014 by Mark J. Sebern Software Engineering Process I SE-2800-07 Technical debt.

12
Copyright © 2012-2014 by Mark J. Sebern Software Engineering Process I SE-2800-07 Technical debt

Transcript of Copyright © 2012-2014 by Mark J. Sebern Software Engineering Process I SE-2800-07 Technical debt.

Copyright © 2012-2014 by Mark J. Sebern

Software Engineering

Process ISE-2800-07

Technical debt

Copyright © 2012-2014 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 © 2012-2014 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 © 2012-2014 by Mark J. Sebern

Types of Technical Debt

• How do the following types differ?

• Naive technical debt

• Unavoidable technical debt

• Strategic technical debt

Copyright © 2012-2014 by Mark J. Sebern

Consequences of Technical Debt

Unpredictable tipping point

Increased delivery

time

Significant # of

defects

Rising development & support costs

Product atrophy

Decreased

predictability

Under-performan

ce

Universal frustration

Decreased customer

satisfaction

Copyright © 2012-2014 by Mark J. Sebern

Causes ofTechnical Debt

Deadline pressure

False “acceleratio

n”

Decreased verificatio

n

Cumulative debt effects (decreasing

velocity)

Copyright © 2012-2014 by Mark J. Sebern

Managing Technical Debt

Managing debt accrual

Making debt visible

Servicing the debt

Copyright © 2012-2014 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 © 2012-2014 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 © 2012-2014 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 © 2012-2014 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 © 2012-2014 by Mark J. Sebern

Review

• Types of technical debt• Consequences• Managing technical debt