Refactoring legacy code without breaking functionality is a challenge. This session will demonstrate refactoring techniques using the “gilded rose kata” code. The gilded rose is a famous kata used for learning to refactor and can be downloaded from the web. It includes hard to understand code with incomplete requirements. The exercise also specifies new functionality to be added. This will discuss how to refactor in small pieces and how to create tests to ensure existing functionality does not break. The exercise will be done using Java and Eclipse, but is available in many languages.