Craft conference
Software craft
Crunch conference
User experience
AI conference
Stretch conference
Workshops &


Surviving Legacy Code

Design Testing Evolutionary design Legacy code Collaboration Refactoring Project management Productivity TDD GTD Theory of Constraints
November 10th, 12th, 17th and 19th 13:30-17:00 CET (Please note: all four sessions are part of this workshop)
This is an online workshop

Working with legacy code remains difficult. We feel afraid to change it, but sometimes we have no choice. When faced with legacy code, some programmers have no idea where to start and others have 100 ideas and these options paralyze them. J. B. Rainsberger gives you a code base where you can experiment safely and suggests some specific testing and design techniques that will help you get started changing code and build confidence every day. You will learn and practise several specific, safe techniques that can help you improve the legacy code that you encounter in your projects. In addition, we will discuss some non-code aspects of surviving legacy code, related to managing your workload and navigating interpersonal relationships in a context where emotions tend to be abnormally intense and the cost of failure seems unusually high. The practice code base is available in over 30 different programming languages. You will be able to practise at almost any level from Beginner to Advanced, although we assume that you have had at least one job where you have worked on a project with other people, even if that project did not involve significant work on legacy code.

Test Driven Development

TDD Unit tests Refactoring BDD Specification by example Extreme programming Java Python C++ C# JavaScript
November 11th, 18th and 25th 15:00-17:30 CET (Please note: all three sessions are part of this workshop)
This is an online workshop

Format: Hands-on workshop

Test-Driven development is a combination of many micro-skills and a fluency that allows you to solve problems while focusing on the problem instead of the micro-skills.

This workshop will endeavor to learn the individual skills as well as build the fluency to use these skills with the additional burden of everyday work.

Prerequisites: General coding knowledge in either: java, c#, c++, javascript or python (examples will be in all languages). A laptop with language & editor. (list at the bottom)

Note: this is a very active hands-on workshop. Please be well-rested the night before


  • Writing scenarios

  • Transforming scenarios to steps

  • Consume 1st programming