013 RR Technical Debt




The Ruby Rogues show

Summary: Panel: Aaron Patterson (twitter github blog) Charles Max Wood (twitter github Teach Me To Code Rails Summer Camp) James Edward Gray II (blog twitter github) Josh Susser (twitter github blog) 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 Working Effectively with Legacy Code by Michael Feathers (Aaron) SGU - Skeptic’s Guide to the Universe Podcast (James) SGU - Stargate Universe (amazon.com) (James) Coda Hale - Metrics, Metrics, everywhere (video) (Josh) Wunderlist (Chuck)