Adam Tornhill: Your Code as a Crime Scene - Episode 194

Azure DevOps Podcast

Episode | Podcast

Date: Mon, 23 May 2022 08:00:00 +0000

<p><span style="font-weight: 400;">Adam Tornhill is a programmer who combines degrees in engineering and psychology. He's the founder of CodeScene where he designs tools for software analysis. He’s also the author of</span> <em><span style="font-weight: 400;">Software Design X-Rays</span></em><span style="font-weight: 400;">, the best-selling book</span> <em><span style="font-weight: 400;">Your Code as a Crime Scene</span></em><span style="font-weight: 400;">,</span> <em><span style="font-weight: 400;">Lisp for the Web,</span></em> <span style="font-weight: 400;">and</span> <em><span style="font-weight: 400;">Patterns in C</span></em><span style="font-weight: 400;">. Adam’s other interests include modern history, music, and martial arts.</span></p> <p> </p> <p><strong>Topics of Discussion:</strong></p> <p><span style="font-weight: 400;">[2:10] Adam talks about how he got his start in code metrics 25 years ago and why he’s discovered that it’s so hard to write good code.</span></p> <p><span style="font-weight: 400;">[3:48] What are the other book ideas Adam has to add to his existing four?</span></p> <p><span style="font-weight: 400;">[4:53] What motivated Adam to write</span> <em><span style="font-weight: 400;">Your Code as a Crime Scene</span></em> <span style="font-weight: 400;">and what is the premise?</span></p> <p><span style="font-weight: 400;">[9:02] When assembling the data, relevance, as well as quality, are both important.</span></p> <p><span style="font-weight: 400;">[10:29] Cyclomatic complexity is an old metric, as are many others, that is not quite tangible or relevant.</span></p> <p><span style="font-weight: 400;">[11:58] Why Adam prefers to look at code health vs. code quality.</span></p> <p><span style="font-weight: 400;">[13:26] The process is slightly different when looking at code health for existing code vs. writing new code.</span></p> <p><span style="font-weight: 400;">[15:23] How does CodeScene aid in the pull request process?</span></p> <p><span style="font-weight: 400;">[18:31] CodeScene integrates with your version control repository and work tracking tools to find where bugs were introduced.</span></p> <p><span style="font-weight: 400;">[22:22] Is CodeScene meant to be a standalone tool or can it work alongside many of the other tools on the market?</span></p> <p><span style="font-weight: 400;">[24:57] Adam’s rules of thumb for those getting started in software systems.</span></p> <p><span style="font-weight: 400;">[28:12] Why Adam’s preferred method of delivering software architecture has changed over the years.</span></p> <p><span style="font-weight: 400;">[30:36] What are the steps for implementing CodeScene into a codebase?</span></p> <p> </p> <p><strong>Mentioned in this Episode:</strong></p> <p><a href="http://architecttips.clearmeasure.com/"><em><span style="font-weight: 400;"> Architect Tips</span></em></a> <span style="font-weight: 400;">— New video podcast!</span></p> <p><a href="https://azure.microsoft.com/en-ca/services/devops/?&amp;OCID=AID736756_SEM_7eul5uID"> <span style="font-weight: 400;">Azure DevOps</span></a></p> <p><a href="https://www.clear-measure.com/"><span style="font-weight: 400;">Clear Measure</span></a> <span style="font-weight: 400;">(Sponsor)</span></p> <p><a href="https://www.amazon.com/NET-DevOps-Azure-Developers-Architecture/dp/1484253426"> <em><span style="font-weight: 400;">.NET DevOps for Azure: A Developer’s Guide to DevOps Architecture the Right Way,</span></em> <span style="font-weight: 400;">by Jeffrey Palermo</span></a> <span style="font-weight: 400;">— Available on Amazon!</span></p> <p><a href="https://www.youtube.com/channel/UC-ROXy08zc-qTA0-3GAQDLw"><span style="font-weight: 400;"> Jeffrey Palermo’s YouTube</span></a></p> <p><a href="https://twitter.com/jeffreypalermo?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5Eauthor"> <span style="font-weight: 400;">Jeffrey Palermo’s Twitter</span></a> <span style="font-weight: 400;">—</span> <span style="font-weight: 400;">Follow to stay informed about future events!</span></p> <p><a href="https://codescene.com/community-edition"><span style="font-weight: 400;">CodeScene — Free Community Edition</span></a></p> <p><a href="https://github.com/adamtornhill"><span style="font-weight: 400;">Adam Tornhill on Github</span></a></p> <p><a href="https://pragprog.com/titles/atevol/software-design-x-rays/"><em><span style="font-weight: 400;"> Software Design X-Rays</span></em></a></p> <p><a href="https://pragprog.com/titles/atcrime/your-code-as-a-crime-scene/"><em> <span style="font-weight: 400;">Your Code as a Crime Scene</span></em></a></p> <p><a href="https://www.adamtornhill.com/articles/lispweb.htm"><em><span style="font-weight: 400;"> Lisp for the Web</span></em></a></p> <p><a href="https://www.adamtornhill.com/articles/patternsinc/patternsincnew.htm"> <em><span style="font-weight: 400;">Patterns in C</span></em></a></p> <p><a href="https://arxiv.org/abs/2203.04374"><span style="font-weight: 400;">“Code Red: The Business Impact of Code Quality”</span></a></p> <p> </p> <p><strong>Want to Learn More?</strong></p> <p><span style="font-weight: 400;">Visit</span> <a href="http://azuredevopspodcast.clear-measure.com/"><em><span style="font-weight: 400;">AzureDevOps.Show</span></em></a> <span style="font-weight: 400;">for show notes and additional episodes.</span></p> <p> </p> <p><strong>Quotes:</strong></p> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">“Software development and software code, in particular, are very abstract. There’s no way I can really take a software system and pull it out and turn it around and inspect it for flaws.” — Adam [6:34]</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">“What I’m most interested in is trends; so are we moving in the right direction or the wrong direction?” — Adam [15:14]</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">“My experience, from working with all of these companies, is that pull requests and code reviews, in general, are extremely valuable… but they also tend to become a bottleneck in practice.” — Adam [16:10]</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">“A surprise is simply one of the most expensive things you can put into a software architecture.” — Adam [30:15]</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">“While these mechanics are simple, information is only good when acted upon.” — Adam [31:20]</span></li> </ul> <p> </p> <p><strong>Adam:</strong> <a href="https://adamtornhill.com/"><strong>Website</strong></a> <strong>|</strong> <a href="https://twitter.com/AdamTornhill"><strong>Twitter</strong></a> <strong>|</strong> <a href="https://www.linkedin.com/in/adam-tornhill-71759b48/"><strong>LinkedIn</strong></a></p>