Fork me on GitHub

We’ve all seen them: applications that got out of control. Under the pressure of deadlines and endless change requests, with the weight of years of legacy, the code has become unmaintainable. Adding features is a slow hit and miss process. Everybody knows something needs to be done, but nobody knows how. To change the code safely, you need tests, but to make it testable, you need to change it. Rebuilding the system from scratch is not an option.

There’s good news: With the right tools, techniques, and mindset, any codebase can be brought under test, and be refactored towards a better architecture. All without affecting the behavior of the system, and allowing the business to continue.

This presentation is not for the weak of heart. We’ll skip the theory and dive straight into the spaghetti code. Dependencies will be broken; designs will be messed up before they get better; fat controllers will mercilessly be put on a diet. It’s live coding, and it may fail. But it will change how you approach legacy code forever.