Production-ready Domain-Driven Design

5 x 3.5 hours remote workshop
Bruno Boucard and Kenny Baas-Schwegler

Production-ready Domain-Driven Design

Production-ready Domain-Driven Design

Bruno Boucard and Kenny Baas-Schwegler
🇬🇧 English

Online
Total duration: 17h30

Timezone: Europe, Amsterdam
Monday November 21 14:00 - 17:30
Tuesday November 22 14:00 - 17:30
Wednesday November 23 14:00 - 17:30
Thursday November 24 14:00 - 17:30
Friday November 25 14:00 - 17:30
 
Timezone: America, New York
Monday November 21 08:00 - 11:30
Tuesday November 22 08:00 - 11:30
Wednesday November 23 08:00 - 11:30
Thursday November 24 08:00 - 11:30
Friday November 25 08:00 - 11:30


Production-ready Domain-Driven Design

Do you want to know 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 from exploring the problem space to probing a model in code to deploying production-ready software.

We’ll explore scenarios and models for a business domain during the first part with EventStorming, Example Mapping, context mapping, and Responsibility Driven-Design. In the second part, we will refactor to deeper insights with supple design and deep model and start our code probing with our newly designed bounded context. We will go from outside-in Object-Oriented TDD and bug hunting toward functional-style programming in several labs. We’ll finish 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, Context Mapping, and Responsibility mapping based on CRC cards.
  • 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.
  • The DDD concepts Supple Design and Deep Model.
  • Protect your bounded context by splitting accidental complexity from the essential 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 programming in Java or/and C#

Program

Module 1 (Scenario):

  • Introduction
  • Domain-Driven Design a brief tour
  • Process Eventstorming
  • Introduction to the Bounded Context pattern and context mapping

Module 2 (Model):

  • Software design level Eventstorming
  • Example mapping
  • Responsibility Driven-Design based on CRC cards

Module 3 (Model-Driven Design through Code probe):

  • Coding Lab 1: Implementing a bounded context using Outside-in TDD
  • Coding Lab 2: Supple design - Make the potential of the model clear

Module 4 (Deep modelling):

  • Coding Lab 3: Deep Model - refactoring to deeper insights

Module 5 (Production Ready):

  • Coding Lab 4: Ports and Adapters aka Hexagonal architecture - Protecting your bounded context domain model
  • Ask us anything on how to move on from here!

Prerequisites:

  • Read the free ebook The Anatomy Of Domain-Driven Design: https://leanpub.com/theanatomyofdomain-drivendesign
  • It is nice to have read Domain-Driven Design by Eric Evans (the blue book), it is not required.
  • Your favourite IDE with java (Maven/Lombok) or C# (nuget)

Online:

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

Production-ready Domain-Driven Design

Bruno Boucard and Kenny Baas-Schwegler
🇬🇧 English

Online
Total duration: 17h30

Timezone: Europe, Amsterdam
Monday November 21 14:00 - 17:30
Tuesday November 22 14:00 - 17:30
Wednesday November 23 14:00 - 17:30
Thursday November 24 14:00 - 17:30
Friday November 25 14:00 - 17:30
 
Timezone: America, New York
Monday November 21 08:00 - 11:30
Tuesday November 22 08:00 - 11:30
Wednesday November 23 08:00 - 11:30
Thursday November 24 08:00 - 11:30
Friday November 25 08:00 - 11:30


Also check out