eXperience Refactoring

In this two day training course, you will learn how to improve the design of software step by step, while continuing to deliver value to your customers.

Everyone wants software that 'just works', that is a joy to maintain, and where you can add new features easily. In practice however, there are always bugs to fix and customers to please. Corners are cut and design debt accumulates, ultimately resulting in legacy code – code without tests.

You would like to improve the software piecemeal using refactoring - which means improving the design of existing code without changing its behaviour. There is a Catch-22 here: to refactor safely, you need automated tests to ensure the code behaves the same as before. To add tests, you first have to make it modular by refactoring.

There still is hope! Through presentations, demonstrations, exercises, and a representative case, you will learn to identify smells, break dependencies, refactor, and add tests in messy legacy code, so that you can add new features with more ease and confidence.

The techniques taught in this course are also useful in greenfield projects, to prevent the software from turning into legacy code. They help you to recover quickly from mistakes and learn from them.

This course helps you get started and offers effective practices and courage to persevere.