Date: Sat, 20 May 2017 08:00:00 -0400
<h3>Summary</h3> <p>Healthy code makes for happy coders, and there are many ways to measure the health of a project. This week Andrew Mason talks about the Undebt project from Yelp!, as well as some of the other tools and practices that have been developed to make sure that the balance on their technical debt card stays low. Give it a listen to learn how and why to measure and address the painful parts of your software.</p> <h3>Preface</h3> <ul> <li>Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.</li> <li>I would like to thank everyone who supports us on <a href="https://www.pythonpodcast.com/podcastinit?utm_source=rss&utm_medium=rss">Patreon</a>. Your contributions help to make the show sustainable.</li> <li>When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at <a href="https://www.pythonpodcast.com/linode?utm_source=rss&utm_medium=rss">www.podastinit.com/linode?utm_source=rss&utm_medium=rss</a> and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app.</li> <li>Visit the <a href="https://www.pythonpodcast.com?utm_source=rss&utm_medium=rss">site</a> to subscribe to the show, sign up for the newsletter, read the show notes, and get in touch.</li> <li>To help other people find the show please leave a review on <a href="https://itunes.apple.com/us/podcast/podcast.-init/id981834425?mt=2&uo=6&at=&ct=&utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">iTunes</a>, or <a href="https://play.google.com/music/m/I7ogju4xv6adasgqz6545jndgsy?t=Podcastinit_-_Python_and_the_people_who_make_it_great&utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Google Play Music</a>, tell your friends and co-workers, and share it on social media.</li> <li>Your host as usual is Tobias Macey and today I’m interviewing Andrew Mason about technical debt and refactoring with Undebt.</li> </ul> <h3>Interview</h3> <ul> <li>Introductions</li> <li>How did you get introduced to Python?</li> <li>How do you define technical debt and why is it an important aspect of a project to keep track of?</li> <li>How would you characterize refactoring in general and when you might want to do it?</li> <li>What is Undebt and what was the problem that you were facing at Yelp when it was created?</li> <li>For someone who wants to get started with using Undebt what does that process look like and how does it work under the covers?</li> <li>What are some of the other tools and techniques available for refactoring Python code and how do they differ from what is possible in Undebt?</li> <li>What are some of the other tools and methods that you use to maintain the overall health of your codebase?</li> <li>What are some of the limitations and edge cases that you have experiemced working with Undebt?</li> <li>It is often a difficult balancing act when working in a team to determine how much time to spend paying down technical debt and building tools that will act as force multipliers vs doing feature work that will be visible to end-users. In your experience, what are some ways to manage that tension?</li> </ul> <h3>Keep In Touch</h3> <ul> <li>Andrew <ul> <li><a href="https://github.com/ajm188?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">GitHub</a></li> <li><a href="https://fixedpoint.xyz/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Website</a></li> <li><a href="https://twitter.com/andrew_mason1?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">@andrew_mason1</a> on Twitter</li> </ul> </li> </ul> <h3>Picks</h3> <ul> <li>Tobias <ul> <li><a href="http://amzn.to/2p9d1er?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Continuous Delivery</a> by Jez Humble and David Farley</li> </ul> </li> <li>Andrew <ul> <li><a href="https://github.com/google/xi-editor?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">XI Editor</a></li> <li><a href="http://amzn.to/2rz86mj?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">The Circle</a> by David Eggers</li> </ul> </li> </ul> <h3>Links</h3> <ul> <li><a href="https://martinfowler.com/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Martin Fowler</a></li> <li><a href="https://sites.google.com/site/unclebobconsultingllc/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">“Uncle” Bob Martin</a></li> <li><a href="https://github.com/Yelp/git-code-debt?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">git-code-debt</a></li> <li><a href="https://github.com/Yelp/undebt?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Undebt</a></li> <li><a href="http://pyparsing.wikispaces.com/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">PyParsing</a></li> <li><a href="https://www.pythonpodcast.com/episode-95-parsing-and-parsers-with-dave-beazley-and-erik-rose/?utm_source=rss&utm_medium=rss">Podcast.<strong>init</strong> Episode About Parsing</a></li> <li><a href="https://github.com/python-rope/rope?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Rope</a></li> <li><a href="http://pre-commit.com/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Pre-Commit</a></li> <li><a href="https://www.pylint.org/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">PyLint</a></li> </ul> <p>The intro and outro music is from Requiem for a Fish <a href="http://freemusicarchive.org/music/The_Freak_Fandango_Orchestra/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">The Freak Fandango Orchestra</a> / <a href="http://creativecommons.org/licenses/by-sa/3.0/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">CC BY-SA</a><img alt="" height="0" src="https://analytics.boundlessnotions.com/piwik.php?idsite=1&rec=1&url=https%3A%2F%2Fwww.pythonpodcast.com%2Ftech-debt-and-refactoring-at-yelp-with-andrew-mason-episode-110%2F&action_name=Tech+Debt+and+Refactoring+at+Yelp%21+with+Andrew+Mason+-+Episode+110&urlref=https%3A%2F%2Fwww.pythonpodcast.com%2Ffeed%2F&utm_source=rss&utm_medium=rss" style="border: 0; width: 0; height: 0;" width="0" /></p>