Working Effectively with Legacy Code by Michael Feathers — book cover
Technology

Working Effectively with Legacy Code — Book Summary & Review

by Michael Feathers

Last updated:

3 min read

Working Effectively with Legacy Code Summary

Michael Feathers introduces a pragmatic approach to tackling legacy code in his book, presenting a catalog of twenty-four dependency-breaking techniques. In the chapter titled 'The Seam Model,' Feathers discusses how identifying seams in code allows for safer changes without introducing new bugs. This book is structured with clear examples in languages like Java, C++, C, and C#, making it accessible to developers across various platforms. Feathers consistently emphasizes the importance of getting legacy code into a test harness, which is crucial for maintaining the integrity of code during updates. However, the book can be challenging for complete beginners who lack experience in software development, as it assumes a certain level of technical understanding and familiarity with coding concepts.

Key Takeaways from Working Effectively with Legacy Code

  1. 1

    The Seam Model: Identifies points in code that allow for isolated changes without affecting the entire system.

  2. 2

    Characterization Tests: Define current behavior to ensure new updates don't break existing functionality.

  3. 3

    Sprout Method: A technique to add new code without modifying existing structures, reducing risk of errors.

  4. 4

    The Legacy Code Dilemma: Describes common challenges developers face when dealing with outdated systems and offers practical solutions.

  5. 5

    Dependency-Breaking Techniques: A set of 24 strategies to isolate and refactor code components safely.

Who Should Read This

If you're battling with large, untested codebases and unsure how to manage updates without introducing bugs, this book is for you. Someone who needs concrete strategies for improving and refactoring legacy systems will find it invaluable.

Who Shouldn't Read This

If you're new to programming and lack foundational coding knowledge, this book might be overwhelming. The technical depth and jargon can frustrate those without prior experience in software development.

Editor's Verdict

Feathers excels in providing actionable strategies, like the 'Sprout Method,' for managing legacy systems. However, the book's technical depth may alienate beginners. Mid-career developers facing the daunting task of updating legacy codebases will find this book hits hardest when they need practical, immediate solutions.

Ready to read Working Effectively with Legacy Code?

Get your copy on Amazon today.

Buy on Amazon →

Working Effectively with Legacy Code — Frequently Asked Questions

About Michael Feathers

Michael Feathers is a renowned software engineer and author, best known for his influential book "Working Effectively with Legacy Code." With a background in software development and consulting, Feathers has extensive experience in improving and maintaining legacy systems. He is a sought-after speaker and thought leader in software craftsmanship. In addition to his seminal work on legacy code, Feathers has contributed to several articles and papers on agile development and software design principles.

Share this summary

Related Technology Books