Legacy code is profitable code that we feel afraid to change. When programmers want to improve how they work with legacy code, many of them focus on looking for techniques specifically chosen to get "difficult" code under control--usually by adding tests. Even if they learn to do those things very well, those programmers soon learn two inconvenient things: (1) that changing code safely doesn't magically improve the design and (2) that almost nobody seems to want to let them take the time to change the code safely! In this talk, I discuss a few ways to approach legacy code that might seem indirect, but that provide direct benefits to any programmer trying to make progress on projects that involve significant legacy code. (And yes, these techniques help programmers significantly even when there's no legacy code obstacle to overcome just now.)
This talk provides an overview of the topics involved, so feel free to ask questions to help you decide how to get started using these techniques to your immediate advantage!
J. B. Rainsberger ([@jbrains](https://www.jbrains.ca)) helps companies profit sooner from delivering software while coaching people to work with more joy and less stress. Most years, he travels the world sharing what he's learned about programming, taking control of his backlog, building rewarding relationships with people, and designing a lifestyle that he enjoys. The rest of the time he helps clients remotely, writes, and coaches people one on one. He invites you to read his work at <https://blog.thecodewhisperer.com> if you're mostly interested in programming and <https://blog.jbrains.ca> if you're also interested in more general topics. He lives in Atlantic Canada with his wife, Sarah and misses their part-time "home" in Stockholm.