Hi Copenhagen DDD'ers
Marijn Huizendveld has offered to run a subset of his workshop on applying DDD in a legacy setup. There is only limited headcount on this 3 hour workshop, so make sure you can come if you sing up. Please.
Also Schultz https://schultz.dk has been kind to host this event.
Here is what Marijn write about the workshop:
In this workshop you will learn how to apply Domain-Driven Design in an environment with a dominant legacy system.
## The ‘why?’ behind this workshop
Do the corners of your mouth go up when you think of Domain-Driven Design? The ability to express behavior in your domain through model interactions. A shared language that is aimed at solving problems in your domain. The clarity of the code artefact thanks to tactical patterns.
All of these things are great on paper _but_ how do you achieve them in an environment where legacy systems dictate what can and cannot be done?
**Let's face it, DDD is difficult in an environment with pre-existing software.**
- The size of the existing feature-set makes it difficult to understand the impact of change;
- The models of the system are often not explicit nor expressive;
- Application architecture frequently inhibits model driven design;
- The sheer number of modeling concepts can be overwhelming, especially for new people on the team;
- Incomplete or poorly designed test suites make safe changes expensive;
- _And we haven't even talked about the practical objections like data migrations and deployments. The list goes on and on._
1. Refactoring is costly and has a **slow return on investment**
2. The inability to experiment **prevents deep models to emerge**
But what is the alternative? You certainly won't try to rewrite the legacy system which took a decade to build…
Will you be stuck with your anemic domain model forever?!
- A small experiment to try DDD in your environment;
- With the benefits of a pure domain model: proper language, expressive, testable, focussed, etc.;
- Giving you a fast feedback loop on the underlying model philosophy;
- Acting as either a reference or fundament for future efforts;
- All without the overhead of a new application architecture
## Join the workshop DDD for legacy systems
In this workshop you will be trained to solve a problem in the setting of legacy systems. You will devise pure models that can be applied in this setting using different approaches.
Together with some other attendees you will create a context map to communicate about the legacy environment. Once your team has situational awareness you can start modeling your problem. At the end of the workshop you should be able to demonstrate which of the approaches is best suited in a particular situation.
## Should you attend this workshop?
- You should have a solid understanding of fundamental DDD concepts
- You are able to work as part of a team
- Although we will not be programming, you DO have basic refactoring skills
- And finally, you are not afraid to let go of any of your own ideas
This workshop requires your undivided attention. You don't need to your laptop nor your smartphone. Your intellect, initiative and enthusiasm will suffice.