Recently, I have started working on a large code base. It can reasonably considered “legacy” in many parts, given that some of the core files that I’m touching are around 20 years old. Also, there aren’t anywhere near enough unit tests - even if there are a good numbers of integration tests. This has led me to think back to one of the best programming books I have ever read, Working effectively with legacy code by Michael Feathers.