Most software professionals spend much of their time working with someone else's brutally imperfect code. When you consider the serious constraints that legacy code was created under, it's no surprise it looks so bad. The question is: now what? In Brutal Refactoring , Michael Feathers starts with code bases "as they are," not as "we pretend them to be" - and shows how to aggressively reshape them to make them maintainable and amenable to further development...