November 4, 2021

Disentangling legacy software approached with Domain-Driven Design


If one thing unites us as software developers, it must be legacy software. Almost and perhaps everyone in their career will deal with them. Almost everyone I talk to does not like to work on legacy software because legacy software is considered to be outdated and hard-to-change technology.

It is hard to change because we do not understand how they work, it is usually not documented, and no proper unit tests exist. Making a small refactor can make the system implode and frustrate us. Wishing we could just write new software with the latest technology as the cool kids do! Another problem is businesses also don’t usually want to invest in changing the system, they are more interested in delivering new functionality. It is providing value, after all! What if you can keep the business running and move away from that legacy?

In this talk, I will provide my set of design heuristics distilled from my experience working with legacy systems. An important aspect of the work I did with the legacy system was approaching the software design with Domain-Driven Design and the legacy strategic patterns described by Eric Evans. I will provide real-life examples of how I and the teams used these patterns to move away from legacy software systems and keep delivering new functionality. You will walk away with the knowledge of where to start your disentanglement journey!


  • Techorama BE 2023 / 15 May 2023 / Slides
  • Techorama NL 2022 / 11 October 2022 / Slides
  • Jfall 2021 / 4 November 2021

Kenny Baas-Schwegler

As a socio-technical systems thinker, agile architect, and Domain-Driven Design expert, I work with CTOs, managers, architects, and teams to change how we design software. Through facilitating and doing collaborative modeling, I catalyze organizations, teams, and groups of people to an agile architecture approach to building sustainable quality software products.

See all my slides at