Agile Book Club: Refactoring (with Martin Fowler)

Code rots. That’s what everyone says: entropy is inevitable, and chaos eventually turns your beautifully imagined, well-designed code into a big mess of spaghetti. It’s true... if you don’t refactor. Refactoring is the process of improve the design of existing code, and in this session, we’re joined by one of its most influential voices: Martin Fowler.

📖 Refactoring

Martin Fowler is the author of Refactoring: Improving the Design of Existing Code, the seminal book about refactoring, as well as many other books and articles about software development. He is Chief Scientist for ThoughtWorks and describes himself as “essentially a loud-mouthed pundit” on the topic of software and enterprise application development. Despite his humility, his influence on the industry cannot be overstated. You can find his writings at

🎙 Discussion prompts:

  • Refactoring starts with identifying a design change, then applying multiple refactorings to reach a goal. What are some typical design changes you’ve seen?

  • How does refactoring fit into the big picture of development?

  • Refactoring isn’t rewriting, but instead a process of making small, behavior-preserving changes. The smaller the better. What are your tricks for breaking design changes down into small pieces?

  • Martin Fowler’s Refactoring book presents a catalog of step-by-step refactorings, but refactorings can also be performed “free-style,” without following a guide. What are some guidelines or “rules of thumb” to consider when doing so?

About the Book Club

The Art of Agile Development Book Club takes place Fridays from 8:00 – 8:45am Pacific. Each session uses an excerpt from the new edition of my book, The Art of Agile Development, as a jumping-off point for a wide-ranging discussion about Agile ideas and practices.

Visit the event page for more information, including an archive of past sessions. For more about the book, visit the Art of Agile Development home page.

If you liked this entry, check out my best writing and presentations, and consider subscribing to updates by email or RSS.