013 RR Technical Debt

by Charles Max Wood on August 1, 2011

Panel:

Discussed in this episode:

  • Deliberate technical debt – deferring development to when you can later afford the time
  • Inadvertent technical debt – adding technical debt without realizing it or because libraries/frameworks go out of date.
  • When would you deliberately accrue technical debt?
    • Time crunches
    • Everything pretty much devolves down to time
    • Deferring for lack of expertise
  • Shorten time to market by trading time.
  • Lean Startup
  • What’s the right solution? Fix your code? or rewrite your code?
  • Quantify the cost of your technical debt – Josh gave an example.
  • Sources of Technical Debt:
    • Upgrade costs
    • Test coverage
    • Application features
    • Non-core features
    • Compatibility costs
    • Coupled code
    • Dependencies
    • Early adoption
  • Solutions:
    • Versioning
    • Upgrading
    • Do the work
    • Bypassing the problem – Solving it a different way
  • How do you know you’re adding technical debt?
    • When you start to feel the pain.
    • When you make the initial payment.
  • Technical debt is a deficiency in your code or process. It’s costing you time.
  • Counter-examples:
    • Code you don’t need to maintain
    • Code you can avoid without incurring immediate or eventual cost
  • How do you avoid technical debt?
    • Good abstractions
    • Good refactoring
    • Refactoring (by Martin Fowler)
  • Declaring Bankruptcy – Folding up the project? Restarting/rewriting?

Picks

3 comments
Jakub Godawa
Jakub Godawa

Hey, thanks for the podcast. I was quite surprised about the rewrite stories :) on more thing: could you do the links on the posts open in different target window? cause it's impossible to rewind the podcast. cheers

iain
iain

Ward Cunningham, the inventor of the term "technical debt" has a YouTube video explaining it: http://www.youtube.com/watch?v=pqeJFYwnkjE It's interesting to see that he doesn't support writing code badly. Technical debt is actually more 'lean startup' minded than you thing: you start coding before you know exactly what the problem is. Always write the code as well as you can, but don't try to know everything about the problem you're trying to solve.

ryan
ryan

I think you are linking to last weeks audio file :)

Trackbacks

  1. [...] now, pay later Technical Debt, a panel discussion with Aaron Patterson, Charles Max Wood, James Edward Gray II and Josh [...]

Previous post:

Next post: