Working Effectively with Legacy Code

Michael Feathers

Working Effectively with Legacy Code

Organised and Hosted by


Test Driven Development and Refactoring are powerful tools.  With them you can add new code to systems and make existing code more maintainable.  However, refactoring code without having tests in place can be hazardous. This class presents a collection of dependency breaking and test writing techniques that can be used to get existing code safely under test for refactoring.  These techniques can be used in conjunction with Test Driven Development to breathe new life into large existing code bases. This class is structured as a set of lectures, discussions, and hands-on exercises.

What will you learn

By the end of this course, you will:

  • Understand what legacy code is
  • Learn a variety of techniques for breaking dependencies
  • Understand when to employ each of the techniques
  • Learn how to identify change points
  • Understand how to write effective tests for legacy code
  • Learn how to avoid Technical Debt

Here is a brief course outline for the course:

  • Approaching Legacy Code
  • Breaking Dependencies – Sensing and Separation
  • Characterization Testing
  • Refactoring Toward Understandability
  • Strategies for Getting Large Methods under Test
  • Planning Large-Scale Refactoring and Technical Debt Reduction

The format of the course is lecture, exercises and discussion.


  • You will be able to select among JavaC# and JavaScript for the exercises, therefore an intermediate knowledge of these programming languages is required.
  • Please bring your own laptop.


Venue : Agile Actors #Learning HQ
When  Wednesday 19th Sept, 09:30 – 17.30
Price : €460 ( €390 for Agile Summit attendees. Contact us for coupon code )

back to top