Prioritizing Technical Debt as if Time & Money Matters • Adam Tornhill • GOTO 2019
This presentation was recorded at GOTO Copenhagen 2019. #GOTOcon #GOTOcph http://gotocph.com Adam Tornhill - Author of "Your Code as a Crime Scene" @adamtornhill2546 @codescene-softwareengineer6553 RESOURCES / adamtornhill https://github.com/adamtornhill / adam-tornhill-71759b48 http://www.adamtornhill.com ABSTRACT Many codebases contain code that is overly complicated, hard to understand, and hence expensive to change and evolve. Prioritizing technical debt is a hard problem as modern systems might have millions of lines of code and multiple development teams -- no-one has a holistic overview. In addition, there's always a trade-off between improving existing code versus adding new features so we need to use our time wisely. So what if we could mine the collective intelligence of all contributing programmers, and start to make decisions based on information from how the organization actually works with the code? In this presentation you'll see how easily obtained version-control data let us uncover the behavior and patterns of the development organization. This language-neutral approach lets you prioritize the parts of your system that benefit the most from improvements, so that you can balance short- and long-term goals guided by data. The specific examples are from real-world codebases like Android, the Linux Kernel, .Net Core Runtime [...] TIMECODES 0:00 Introduction 0:37 Lehman's "Laws" of Software Evolution 3:19 QUANTIFYING TECHNICAL DEBT? 4:56 THE PERILS QUANTIFYING TECHNICAL DEBT 8:32 Version-Control - A Behavioral Data Source 9:24 Case Study: Android 16:43 X-Ray of ActivityManager Service.java 19:41 Code Quality In Context: Why you shouldn't fix all code issues 21:51 What Is Legacy Code? 24:26 Case Study: Off-Boarding 24:54 Case Study: ASP.NET MVC Core 28:35 Tooling: Try it on your own Code 31:00 Analysing Microservice Architectures 33:25 Aggregation: Architectural Hotspots in Spinnaker 35:20 Microservice Dependencies: The Impact of Change 36:52 Change Coupling: Component or Feature Teams? 37:59 Dependencies and Teams: Locality of Change 43:13 Re-Think Software Architectures: From Accidental to Essential Download slides and read the full abstract here: https://gotocph.com/2019/sessions/974 RECOMMENDED BOOKS Adam Tornhill • Software Design X-Rays • https://amzn.to/3DEeEnI Adam Tornhill • Your Code as a Crime Scene • https://amzn.to/3FI5E2V Adam Tornhill • Lisp for the Web • https://leanpub.com/lispweb Adam Tornhill • Patterns in C • https://leanpub.com/patternsinc https://bsky.app/profile/gotocon.com / gotocon / goto- / goto_con / gotoconferences #Legacy #DeveloperProductivity #Teams #TechnicalDebt #AdamTornhill #CodeScene CHANNEL MEMBERSHIP BONUS Join this channel to get early access to videos & other perks: / @goto- Looking for a unique learning experience? Attend the next GOTO conference near you! Get your ticket at https://gotopia.tech Sign up for updates and specials at https://gotopia.tech/newsletter SUBSCRIBE TO OUR CHANNEL - new videos posted almost daily. https://www.youtube.com/user/GotoConf...

Prioritizing Technical Debt as If Time & Money Matters • Adam Tornhill • GOTO 2022

The Many Meanings of Event-Driven Architecture • Martin Fowler • GOTO 2017

Modular Monoliths • Simon Brown • GOTO 2018

Zig 2026: No-AI Policy, $670K Foundation, Left GitHub & Why Zig Isn’t 1.0 - Andrew Kelley Explains

Spec-driven Development: How AI Changed Everything (And Nothing) by Simon Martinelli @ Spring I/O 26

Introduction to NoSQL • Martin Fowler • GOTO 2012

Andrej Karpathy: From Vibe Coding to Agentic Engineering w/ Stephanie Zhan

A Philosophy of Software Design | John Ousterhout | Talks at Google

Turing Award Winner: Disagreeing with Google, Postgres, Future Problems | Mike Stonebraker

🚀 TDD, Where Did It All Go Wrong (Ian Cooper)

How to Become a Great Software Architect • Eberhard Wolff • GOTO 2019

Conan O’Brien Delivers the Commencement Address | Harvard Commencement 2026

Amazing Code Reviews: Creating a Superhero Collective • Alejandro Lujan • GOTO 2019

A Crystal Ball to Prioritize Technical Debt • Adam Tornhill • GOTO 2017

🚗 BYD : The biggest SCAM of the car industry ?

Mastering Tech Leadership in 50 Minutes • Tim Berglund • GOTO 2023

Yes... Microservices REALLY ARE Technical Debt

Technical debt isn't technical - Einar Høst - DDD Europe 2019

Message Queues in System Design Interviews w/ Meta Staff Engineer

