Overview

Coined by Ward Cunningham, technical debt is like financial debt. It can be useful to 'borrow' time by taking shortcuts, but that debt must be 'repaid' later with interest (extra work). If not managed, the interest can become so high that it's impossible to add new features.

Causes

  • Pressure to meet deadlines.
  • Lack of knowledge or experience.
  • Poor architectural decisions.
  • Lack of automated testing.

Management

  • Track debt in the backlog.
  • Allocate time for refactoring.
  • Use static analysis tools to identify 'code smells'.

Related Terms