“Refactoring: Improving the Design of Existing Code,” first published in 1999, is Martin Fowler’s book that turned refactoring from a folk practice into a named, teachable discipline. Fowler defines refactoring as a controlled technique for improving the design of an existing code base through a series of small transformations that each preserve the program’s observable behavior.
The book is built around two main contributions. It opens with a worked example that walks through the refactoring process step by step, and it then provides a large catalogue of individual refactorings, each described with its motivation, its mechanics, and a concrete example. This catalogue gave developers a shared vocabulary for moves they had often performed informally.
The book also introduced the idea of code smells, the surface signs that point to where refactoring is needed, and it emphasizes the central role of testing as the safety net that makes restructuring safe. The term code smell itself was coined by Kent Beck while he assisted with the book.
Fowler regards the work as his most influential contribution to software development, and the practice it describes has become a standard part of professional programming. A second edition, with examples updated for modern languages, appeared in 2018, but the 1999 original is the landmark that established the field.