Episode 11: Avoiding Legacy Code with Michael Feathers




Tech Done Right show

Summary: <h2>Avoiding Legacy Code with Michael Feathers</h2> <p>Follow us on Twitter! @tech_done_right or leave us a review on iTunes and sign up for our <a href="http://www.techdoneright.io/newsletter" rel="nofollow">newsletter</a>!</p> <h2>Guest</h2> <p><a href="https://twitter.com/mfeathers" rel="nofollow">Michael Feathers</a>: Author of <a href="https://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052" rel="nofollow">Working Effectively with Legacy Code</a>; <a href="https://www.r7krecon.com/" rel="nofollow">r7krecon.com</a> </p> <h2>Summary</h2> <p>What makes a code base go bad and become "Legacy Code"? Can teams avoid writing bad code? Michael Feathers, author of <em>Working Effectively With Legacy Code</em> joins Tech Done Right to talk about technical debt, how communication can prevent bad coding practices, why coding problems are never just about code, and what it's like to go around the world seeing the worst code messes ever written.</p> <h2>Notes</h2> <p>02:36 - The Definition of “Legacy Code”</p> <p>04:25 - What makes code bases go bad?</p> <p>07:26 - Working as a Team to Avoid Technical Debt and Other Problems</p> <p>09:49 - Tools and Techniques That Have Changed Since the Book was Written</p> <ul> <li><a href="https://github.com/michaelfeathers/scythe" rel="nofollow">scythe</a></li> </ul> <p>12:38 - Lack of Institutional Memory</p> <p>15:24 - What creates technical debt?</p> <ul> <li><a href="https://www.scrumalliance.org/why-scrum" rel="nofollow">Scrum</a></li> <li><a href="http://www.extremeprogramming.org" rel="nofollow">Extreme Programming</a></li> </ul> <p>22:50 - “Symbiotic Design”</p> <ul> <li><a href="https://www.r7krecon.com/provocation" rel="nofollow">Symbiotic Design Provocation</a></li> <li><a href="https://www.r7krecon.com/implications" rel="nofollow">Symbiotic Design Implications</a></li> <li> <a href="https://en.wikipedia.org/wiki/Conway%27s_law" rel="nofollow">Conway’s Law</a> </li> </ul> <p>25:38 - Test-Driven Development</p> <ul> <li><a href="http://confreaks.tv/videos/railsconf2014-keynote-writing-software" rel="nofollow">Keynote - Writing Software (2014 TDD is dead from DHH)</a></li> <li> <a href="https://www.youtube.com/watch?v=Cx6aGMC6MjU" rel="nofollow">RailsConf 2017: Opening Keynote by David Heinemeier Hansson</a> </li> </ul> <p>31:44 - Fads in Codebases</p> <p>36:58 - Error Handling in Applications (in Relation to Conway’s Law)</p><p>Special Guest: Michael Feathers.</p><p>Sponsored By:</p><ul><li> <a rel="nofollow" href="http://www.tablexi.com">Table XI</a>: <a rel="nofollow" href="http://www.tablexi.com">A trusted UX design + software development company. We are 35 meticulous and curious minds in Chicago with a 15 year history of building websites, mobile applications and custom digital experiences for everyone from startups to storied brands. Our partners trust us to create innovative solutions that drive their businesses forward.</a> </li></ul><p>Links:</p><ul> <li><a title="Working Effectively With Legacy Code" rel="nofollow" href="http://amzn.to/2qNuZFr">Working Effectively With Legacy Code</a></li> <li><a title="michaelfeathers/scythe: A tool for detecting barely used code in production" rel="nofollow" href="https://github.com/michaelfeathers/scythe">michaelfeathers/scythe: A tool for detecting barely used code in production</a></li> </ul>