Kim Lindhard
Making the implicit explicit

DDD Europe 2020 day 3 workshop Domain driven design for legacy systems

Introduction to the workshop

Coming to the workshop I had one big nagging question: “how do you apply the concept of contexts to a existing system”? Unfortunately the answer laid in one of the first statements made by Marjin Huizendveld and it was that there is no silver bullet when it comes to applying domain driven design to legacy systems. However, there are some great heuristics we can use.

The workshop revolved around a fictional case of a National Rail-transport company. We where given a workbook with information about the lessons we learned doing to day, data models from the fictional company and exercises. The exercises were made with an emphasis on how can we improve the experience for the potential passenger, this aligns very well with the idea Simon Wardley had where he states that the highest value of a company or system or even the smallest entity is what is of utmost visibility to the consumer.

The workshop introduced us to Wardley maps and added an extra dimension of drawing our context boundaries around groups of components in the map. The Wardley map made the training interesting because the finished map can help you make decisions about where to put your development energy and what to outsource. But in making the map you could also undertake the discipline of mapping out what is needed to fulfill a certain want from your customer. A example could be that I want a hot bagel at a cafe:

During the workshop we also got introduced to bubble contexts, a short lived bounded context that has a high coupling to context(s) in the existing system with the goal of evaluating the newly formed context within the bubble.

Overall a great workshop, a great introduction to applying ddd to legacy systems, but no silver bullets. This is mainly due to the fact that the is no one answer and that you can’t get that deep into the topic transforming legacy systems within the span of a single day, even with a great facilitator as Marjin.

Things I learned today

Things I will look deeper into

Random impressions

A cool way to mix up existing workshop teams is to ask a team member to join the team standing to their left, and another team member to join the team on their right.
Marijin minimized the workshop into 25 minutes Pomodoro detailed sessions and he would yell “respect the break” and give us a 3 minutes break to go to the bathroom or just relax. It worked wonderfully well, I have put a neat Timer timer on my wish-list.
A good way to get people to speak up doing presentation is to encourage them to use their bar voice regularly which Marijn did, thanks Marijn.