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.

Reading:
📖 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 martinfowler.com.

🎙 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

From October 2021 to August 2022, I hosted a call-in talk show based on the second edition of The Art of Agile Development. The series used the book as a jumping-off point for wide-ranging discussions about Agile ideas and practices, and had a star-studded guest list.

For an archive of past sessions, visit the book club index. 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.