Refactoring Legacy Code Without Fear
Refactor with confidence. Retrofit tests. Master the system you thought was untouchable!
Are you working with a system that feels like a black box? It’s fragile, slow to change, and every small modification feels like a gamble. Someone mentioned rewriting everything… but that’s a financial black hole!
Imagine confidently changing legacy code, safely adding features, and improving maintainability without breaking anything. Imagine your team collaborating effectively on the toughest parts of the system.
The Refactoring Legacy Code Workshop is an advanced training program inspired by Michael Feathers’ book “Working Effectively with Legacy Code.” It was designed by the trainer Alessandro Di Gioia and enriched with modern topics and the “Legacy Code Smells” classification.
The course develops through hands-on sessions on Refactoring Calisthenics and Characterization & Mutation Tests, enabling the participants to tackle even the most complex code issues confidently.
Join this advanced workshop and experience with Alessandro practices to retrofit tests, break dependencies, and master your legacy system, one clean step at a time.
Learning Objectives
By the end of this workshop, you will be able to:
- Confidently refactor code even without initial test coverage
- Break harmful dependencies and isolate code for testing
- Use characterization and mutation testing to understand behavior
- Apply refactoring calisthenics in real-world, messy codebases
- Face and overcome complex “big ball of mud” scenarios
You’ll walk away not just with techniques, but the mindset and collaborative habits to lead modernization efforts in your team.
The Trainer 
Alessandro Di Gioia is a Software Crafting advocate, trainer, and co-author of Agile Technical Practices Distilled.
He brings years of hands-on experience helping teams regain control of complex systems, and he’s known for making advanced technical practices practical and engaging.
Target Audience
Is This for You?
Yes, if you are:
- A Developer facing complex legacy systems
- A Tech Lead trying to make safe progress in risky code
- A Quality Engineer who wants to retrofit safety nets into production
- A Senior Engineer who wants a deeper, modern take on legacy code than the usual katas.
What People Are Saying
“It would normally take years for a developer to learn the many lessons taught in this course.”
— Anders Marchsteiner, Software Architect
“I’ve never thought that things can become so much easier with the right technique.”
— Philip Benz, Senior Software Engineer, CSS Insurance (CH)
Program Overview
5 live online sessions of 3.5 hours each.
A mix of theory, practical exercises, and group collaboration, with space for homework and further study between modules.
The entire course is built around Software Teaming (Mob Programming), maximizing shared learning and collaborative refactoring under real-world constraints.
In the final challenge (which has been called “end-level monster”), the participants have to solve collaboratively a realistic “big ball of mud” scenario, applying everything they have learned in the previous lessons.
We recommend taking this course after the completion of the Software Crafting Programme with Marco Consolaro.
Agenda
Module 1: Refactoring Calisthenics
Discover the foundational principles of clean, controlled code transformation.
Module 2: Refactoring Calisthenics – Dependencies
Learn to break hidden couplings and decouple for testability.
Module 3: Characterization and Mutation Testing
Retrofit tests into untested codebases, safely and incrementally.
Module 4: Advanced Refactoring Applied I
Apply techniques to tangled real-world scenarios in a group setting.
Module 5: Advanced Refactoring Applied II
Collaborate on a large-scale “big ball of mud” challenge. Everything you’ve learned, put to the test.