Definitely get a copy of Working Effectively With Legacy Code, by Michael C. Feathers. Indispensable. Second, and more aimed at the project/product management level is Kill It With Fire: Manage Aging Computer Systems (and Future Proof Modern Ones) from Marianne Bellotti. Older, but still worth a look in some cases, is Object-Oriented Reengineering Patterns, 2008, by Demeyer, Ducasse, and Nierstrasz.
And finally, at the code level, it's absolutely essential to have a copy of Martin Fowler's Refactoring: Improving the Design of Existing Code handy. Yes, many tools have automated the mechanics of refactoring, but knowing when and how to use them needs this book.
Definitely get a copy of Working Effectively With Legacy Code, by Michael C. Feathers. Indispensable. Second, and more aimed at the project/product management level is Kill It With Fire: Manage Aging Computer Systems (and Future Proof Modern Ones) from Marianne Bellotti. Older, but still worth a look in some cases, is Object-Oriented Reengineering Patterns, 2008, by Demeyer, Ducasse, and Nierstrasz.
And finally, at the code level, it's absolutely essential to have a copy of Martin Fowler's Refactoring: Improving the Design of Existing Code handy. Yes, many tools have automated the mechanics of refactoring, but knowing when and how to use them needs this book.