Have you ever found yourself hesitating before changing legacy code? You’re not alone. “Legacy Code” is by definition code we are afraid to touch. We’re afraid to touch it because it’s complex, no one touched it for a long time and we’re not sure what exactly it does. And it doesn’t have automated tests. In this workshop we’ll learn techniques and practices to over come this. We’ll move from seeing legacy code as something frightening to an opportunity: opportunity to make code better, become more professional and enjoy every minute of it. In 75% of the workshop’s time you will be coding. We will start with a spaghetti code containing one 300 lines of method and end up with more than 30 classes and automated tests. We will learn how to wrap the code with tests to make changing risk free, we will see the power of interfaces and dependency injection. We will improve the code by writing factories, fight complex conditionals (if-else) with polymorphism and practice more design patterns to make the code maintainable. We will practice moving code around, in small, safe, steps. We will do this in pairs, experiencing the power of pair programming. The workshop is intended for developers of all ages. The code we will be practicing on will have two versions – Java and C#. Waiting to see you.