Working Effectively with Legacy Code, by Michael Feathers

If you have to work with code that someone else wrote a long time ago, then this is a highly recommended book. Michael focuses on preparing the codebase before you start making modifications. The book covers things like sensing, separation, and seams.