Working with legacy code remains difficult. We feel afraid to change it, but sometimes we have no choice. When faced with legacy code, some programmers have no idea where to start and others have 100 ideas and these options paralyze them. J. B. Rainsberger gives you a code base where you can experiment safely and suggests some specific testing and design techniques that will help you get started changing code and build confidence every day. You will learn and practise several specific, safe techniques that can help you improve the legacy code that you encounter in your projects. In addition, we will discuss some non-code aspects of surviving legacy code, related to managing your workload and navigating interpersonal relationships in a context where emotions tend to be abnormally intense and the cost of failure seems unusually high. The practice code base is available in over 30 different programming languages. You will be able to practise at almost any level from Beginner to Advanced, although we assume that you have had at least one job where you have worked on a project with other people, even if that project did not involve significant work on legacy code.
J. B. Rainsberger (@jbrains) helps companies profit sooner from delivering software while he helps people work with more joy and less stress. He travels the world for part of the year sharing what he's learned about programming, managing his work, building great relationships with people, and designing his lifestyle. The rest of the year he helps clients remotely, writes, and coaches people one on one. You can find his blogs at https://blog.thecodewhisperer.com