Working Effectively with Legacy Code

Event Information

Share this event

Date and Time



Pirelli Institute

Viale Fulvio Testi, 223

20162 Milano


View Map

Event description


Milan, November 5 & 6 2018. Trainer: Michael Feathers.

Course abstract

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 workshop 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.


  • Testing as a Programmer’s tool
  • Seam identification
  • Breaking Dependencies – Sensing and Separation
  • Breaking Hidden and Manifest Dependencies
  • Characterization Testing
  • Refactoring Toward Understandability
  • Strategies for Getting Large Methods under Test
  • Dealing with Deeply Nested Conditionals
  • Planning Large-­Scale Refactoring and Technical Debt Reduction.

What will you learn

By the end of this course, you will:

  • Understand what legacy code is
  • Understand how to break dependencies in legacy code
  • Learn a variety of techniques for breaking external dependencies
  • Learn a variety of techniques for breaking internal dependencies
  • Understand when to employ each of the techniques
  • Learn a variety of strategies for code refactoring
  • Learn how to identify change points
  • Learn how to find an inflection point
  • Understand the concept of test coverage for inflection points
  • Understand how to write effective tests for legacy code.

Entry requirements & Target audience

This class is structured as a set of lectures, discussions, and hands­-on exercises.
You will be able to select among Java, C++, C# and JavaScript for the exercises, therefore an intermediate knowledge of these programming languages is required (at least 2+ years experience).


Tools & Laptop: Do I need my laptop?
Yes, you will need to take your laptop with you.

Entry requirements: Is there anything I need to do before the workshop?
No, there's no need to do anything prior to the workshop.

Teaching language: What language will this workshop be on?
This course will be taught in English.

About the workshop

Language: The workshop will be held in English.
Time: from 9.30 am to 5.30 pm each day.
Venue: Pirelli Institute, Viale Fulvio Testi, 223, 20162, Milan (find out how to get to the Pirelli Institute here).
Laptop: Yes, see above for further instructions.
Dress code: Informal.
Included in the price: Two coffee breaks and lunch with the trainer and the other attendees are also included in this ticket... because networking matters :-)

How to get to Milan?

You can get to Milan City Centre by flying in to one of these three airports: Linate, Malpensa, and Bergamo Orio al Serio. Not bad, isn’t it? :-)

Check our Venue & Location Info Page and get it sorted! With plenty of handy information on accommodation, travel options, where to find the training venue, and much more!

Not enough? Drop us a line at info@avanscoperta.it.


Great news - The workshop is now CONFIRMED! :-) See you in Milan?

Questions? Drop us a line at info@avanscoperta.it.

Link to the website



Michael Feathers

Michael Feathers


The training will take place in Milan at the Pirelli Institute, Viale Fulvio Testi, 223, 20162, Milan (find out how to get to the Pirelli Institute here).


Each day will start at 9.30am and finish at 5.30pm.

Under_Cover_Learner Discount - SAVE 20%

If you’re paying the ticket out of your own pocket and you don’t have a VAT number, you can get a 20% discount on any tickets and on any ticket tiers!

How? Just enter the Under_Cover_Learner promotional code in the registration field on Eventbrite.

Please note: This code cannot be used in conjunction with any other offers/discount codes, and it applies to any ticket tier.

Doubts? Questions? Drop us a line: info@avanscoperta.it

We accept the following methods of payment:

PayPal, Credit/Debit card (via PayPal, click on the link: "Don't have a PayPal account?"), Bank transfer (upon request - contact us at info@avanscoperta.it).

T&C, Privacy Policy, cancellations and refunds, Venue info

Find out more at this link.

Share with friends

Date and Time


Pirelli Institute

Viale Fulvio Testi, 223

20162 Milano


View Map

Save This Event

Event Saved