Technical Debt is the implied cost of additional rework caused by choosing an easy or quick solution now instead of a better approach that would take longer.

Understanding Technical Debt

Technical Debt Quadrant

Technical debt isn’t inherently bad - like financial debt, it can be a strategic tool when managed properly.

Types of Technical Debt

Deliberate and Reckless

“We don’t have time for design” - Conscious decision to skip good practices.

Deliberate and Prudent

“We must ship now and deal with consequences” - Strategic decision with awareness of costs.

Inadvertent and Reckless

“What’s layering?” - Debt from lack of knowledge or skill.

Inadvertent and Prudent

“Now we know how we should have done it” - Learned through building; normal learning process.

Managing Technical Debt

Identifying Debt

  • Code that’s difficult to modify or extend
  • Frequent bugs in specific areas
  • Slow development velocity in certain modules
  • High complexity metrics
  • Poor test coverage
  • Outdated dependencies

Measuring Impact

Not all technical debt matters equally. Prioritize based on:

  • Change Frequency: How often does this code change?
  • Business Impact: How critical is this code to the business?
  • Coupling: How much does this debt spread to other areas?
  • Time to Fix: What’s the remediation cost?

Paying Down Debt

Opportunistic Refactoring: Fix debt when working in an area

"Leave the code better than you found it"

Dedicated Effort: Schedule time for major debt reduction

  • Sprint capacity allocation (e.g., 20% for technical work)
  • Dedicated refactoring sprints
  • Tech debt reduction as part of each feature

Prevent New Debt

  • Code review standards
  • Automated quality gates
  • Definition of Done includes quality criteria
  • Regular architecture reviews

Communicating Technical Debt

To Non-Technical Stakeholders

Avoid: “We have technical debt in the payment module”

Better: “Making changes to payments takes 3x longer than it should, increasing feature delivery time and bug risk”

Use business impact:

  • Development velocity
  • Bug frequency and severity
  • Customer satisfaction
  • Time to market
  • Scalability limitations

Tracking Debt

  • Document as issues/tickets with clear impact statements
  • Maintain a tech debt backlog
  • Regular debt review sessions
  • Visualize debt impact on roadmaps

Broken Windows Theory

One broken window, left unrepaired, instills a sense that the owners don’t care. So another window gets broken. People start littering. Graffiti appears. Serious structural damage begins.

Don’t Live with Broken Windows: Fix bad designs, wrong decisions, and poor code immediately when you see them.

Resources