This is on my reading list.

Martin Fowler - Refactoring 2nd