Production-ready Domain-Driven Design

4 x 4 hours remote workshop
Bruno Boucard and Kenny Baas-Schwegler

Production-ready Domain-Driven Design

No dates are scheduled for this workshop. Let us know if you think we should organize it near you, or if you'd like to book it on premise in your organisation.

Production-ready Domain-Driven Design

With the Model Exploration Whirlpool

How to explore models collaboratively? How to move from collaboration tools like EventStorming and Example mapping, to designing models and implementing them, especially in an Agile or Lean setting?

The essence of Domain-Driven Design is designing shared models between all disciplines involved in creating software. We should spend most of our effort on the part of the software that handles complex business requirements. We need to focus on a language where we really crisply concisely describe the situation in the domain, a shared language created through conversations between all disciplines involved.

Eric Evans wrote about the Model Exploration Whirlpool. It describes a process for exploring models. In this workshop, you will learn to use this process to go from exploring the problem space, to probing a model in code, to deploying production-ready software.

During the first part, we’ll explore scenarios and models for a business domain with EventStorming, Example Mapping, Bounded Context Canvas, and Responsibility Driven-Design. In the second part, we will further explore the model and start our code probing with our newly designed bounded context. In several labs, we will go from outside-in Object-Oriented TDD and bug hunting, towards functional-style programming. We’ll finish by protecting our bounded context with the Ports & Adapters architecture. You will leave this session with hands-on experience to start your exploration into creating a production-ready Domain-Driven Design!

Key take-aways:

  • How to model and design bounded contexts with the Model Exploration Whirlpool and create production-ready software
  • Collaboratively design with visual collaboration tools like EventStorming, Example Mapping and the Bounded Context Canvas.
  • Learn how to use and implement the basic tactical DDD patterns like Entity, Value Object, Aggregate, Service and Repository.
  • How to work towards a functional mindset in an object-oriented language.
  • Protect your bounded context by splitting technical complexity from model complexity with the ports and adapters architecture.

Is this workshop right for me?

  • You are a Software Developer or a Software Architect
  • You know how to do object-oriented in Java or C#


Module 1 (Scenario):

  • Introduction
  • Domain-Driven Design a brief tour
  • Event Storming - essential workshop
  • Example Mapping - essential workshop

Module 2 (Model):

  • Bounded Context Canvas
  • Responsibility Driven-Design and Model-driven design building blocks

Module 3 (Code probe):

  • Coding Lab 1: Implementing a bounded context using Outside-in TDD
  • Coding Lab 2: Domain-Driven design Refactoring towards a functional mindset

Module 4 (Production Ready):

  • Recap on Coding Lab 2: Domain-Driven design Refactoring towards a functional mindset
  • Coding Lab 3: Protecting your domain model with ports and adapters aka Hexagonal architecture
  • Ask us anything on how to move on from here!


Bruno Boucard

About Bruno Boucard

Bruno is a developer, trainer, agile coach, and speaker. He loves to explain with concrete examples with live-coding if needed. He is also the organizer of the BDD Paris meetup. He is a long-time Microsoft MVP, but he still is coding java, Python, and C++ with a C# accent ;-).

His company 42skillz, which aims to help organizations make software and work differently, provides training, coaching, consulting about TDD, BDD, legacy code refactoring techniques, and DDD.

All workshops by Bruno Boucard
Kenny Baas-Schwegler

About Kenny Baas-Schwegler

A lot of knowledge is lost when designing and building software — lost because of hand-overs in a telephone game, confusing communication by not having a shared language, discussing complexity without visualisation and by not leveraging the full potential and wisdom of the diversity of the people. That lost knowledge while creating software impacts the sustainability, quality and value of the software product. Kenny Baas-Schwegler is a socio-technical organisation designer and software architect. He blends IT approaches like Domain-Driven Design and Continuous Delivery and facilitates change through using visual collaboration practices, the Cynefin framework and Deep Democracy. Kenny empowers and collaboratively enables organisations, teams and groups of people in designing and building sustainable quality software products.

One of Kenny's core principles is sharing knowledge. He does that by writing a blog on his website and helping curate the Leanpub book visual collaboration tool. Besides writing, he also shares experience in the Domain-Driven Design community as an organiser of Virtual Domain-Driven Design ( and Domain Driven Design Nederland. He enjoys being a public speaker by giving talks and hands-on workshops at conferences and meetups.

All workshops by Kenny Baas-Schwegler

No dates are scheduled for this workshop. Let us know if you think we should organize it near you, or if you'd like to book it on premise in your organisation.

Also check out