Legacy Code Improvement Guide: Refactoring for Maintenance Development is a must-read book for anyone working with legacy code.
If you're dealing with legacy code, this is a book you should consider reading.
As a prerequisite, it seems to require a certain level of ability to write tests to some extent.
- A seam is a place in the code where you can change the program's behavior without directly editing that location.
- Every seam has an enabling point, where you can decide which behavior to use.