XP2019 has ended
Back To Schedule
Tuesday, May 21 • 9:00am - 10:30am
Surviving Legacy Code (J. B. Rainsberger)

Sign up or log in to save this to your schedule, view media, leave feedback and see who's attending!

Working with legacy code remains difficult. We feel afraid to change it, but sometimes we have no choice. Learn key techniques to help you manage your risk. J. B. Rainsberger gives you a safe code base in which to experiment and he guides you through the confusing risk/reward decisions involved in living with legacy code. You will learn and practise several specific, safe techniques that you can start using on your own legacy code once you return to your project.

You should attend this workshop if you have code that seems impossible to change, code that you feel really uncomfortable changing, or you want to avoid creating code like that in the future. J. B.’s advice transcends business domains and programming languages. Moreover, you get to find out how he thinks through the tough choices as well as improve the design with (relative) grace and ease.

After learning a technique, it’s your turn to try it out for yourself. All you need is a working development environment for your favorite programming language and to install git. (Strictly speaking, you don’t even need to do that, but you probably should.) If you get stuck, then J. B. helps you get moving again. If something seems strange, then J. B. helps you make sense of it–or maybe he agrees that it’s strange and you should try something else.

Learning Outcomes:
  • See the central conflict in working with legacy code: I want to add tests to refactor safely, but I need to refactor to add tests at a reasonable cost.
  • Learn how to add tests quickly to existing code using the text-based output that the system already produces.
  • Learn 4 key design techniques that help address the central conflict of legacy code.
  • Learn the core principles of rescuing legacy code: optimize for safety, document everything, embrace imperfection, play the long game, you can't chase all the rabbits.
  • Learn how to maintain focus in the inherently distracting environment of rescuing legacy code.
  • Learn how to work more harmoniously with people in the inherently frustrating and anxiety-inducing atmosphere of legacy systems.
  • Have a few tricks to start using immediately when returning to work in addition to some longer-term plans for improvement.

avatar for J. B. Rainsberger

J. B. Rainsberger

Trusted Adviser, jbrains.ca
J. B. Rainsberger helps software companies better satisfy their customers and the businesses they support. Over the years, he has learned to write valuable software, turned himself into a joy to work with, and built a life that he loves. He has traveled the world sharing what he’s... Read More →

Tuesday May 21, 2019 9:00am - 10:30am EDT
E-2022 (2nd Floor)