Production-ready Domain-Driven Design

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

Production-ready Domain-Driven Design

Production-ready Domain-Driven Design

Bruno Boucard, Kenny Baas-Schwegler, and Thomas Pierrain
🇬🇧 English

Online
Total duration: 16h00

Timezone: Europe, Amsterdam
Monday October 4 14:00 - 18:00
Tuesday October 5 14:00 - 18:00
Wednesday October 6 14:00 - 18:00
Thursday October 7 14:00 - 18:00
 
Timezone: America, New York
Monday October 4 08:00 - 12:00
Tuesday October 5 08:00 - 12:00
Wednesday October 6 08:00 - 12:00
Thursday October 7 08:00 - 12:00


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#

Program

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!

Prerequisites

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
@brunoboucard
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 baasie.com 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 (virtualddd.com) 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
@kenny_baas
Thomas Pierrain

About Thomas Pierrain

Organizer of the #DDDFR user group and co-founder of 42skillz, Thomas is an eXtreme Programmer & technical architect obsessed by use cases (Vs. solution-driven approaches) since more than 23 years now.

Long-time promoter of hexagonal architecture (through articles, talks, trainings or live coding sessions - including one with Alistair Cockburn) Thomas is now advocating for a specific style of TDD called Outside-in Diamond 🔷 TDD . This fits perfectly with Alistair's pattern, and also allows for more secure, antifragile, and Domain-Driven tests to be written.

In a nutshell, Thomas likes team work and uses both DDD & TDD to boost his efficiency at work.

All workshops by Thomas Pierrain
@tpierrain

Production-ready Domain-Driven Design

Bruno Boucard, Kenny Baas-Schwegler, and Thomas Pierrain
🇬🇧 English

Online
Total duration: 16h00

Timezone: Europe, Amsterdam
Monday October 4 14:00 - 18:00
Tuesday October 5 14:00 - 18:00
Wednesday October 6 14:00 - 18:00
Thursday October 7 14:00 - 18:00
 
Timezone: America, New York
Monday October 4 08:00 - 12:00
Tuesday October 5 08:00 - 12:00
Wednesday October 6 08:00 - 12:00
Thursday October 7 08:00 - 12:00


Also check out