Online training

Domain-driven Design in Practice

iSAQB Module DDD

This training conveys the important theoretical structure around all relevant areas of Domain-driven Design. Participants will continuously apply this theoretical knowledge by means of a practical and above all technically complex case study, which goes far beyond common Hello World or Shopping Cart examples.
ONLINE: October 13, 2020

1 more date available

This training will teach you everything you need to know to get you started with DDD. You will learn about collaborative modeling techniques, align business and software architecture with strategic design, design highly specific domain models using the tactical design patterns, and align teams and architecture using the context map.

I particularly liked the pragmatic view of the topics, which ultimately puts the technical solution of the problem above the written statements.

Alexander TrappDeveloper IoT & Cloud bei GIB mbH

The on-premise variant of this training used to be a highly interactive course with a high degree of hands-on exercises on a non-trivial case study. This remote course is as interactive due to many pre-prepared engaging practices. You will also learn how to work with proven remote tools for your day-to-day Domain-driven Design work.

All participants will get a free copy of Michael’s eBook “Hands-on Domain-driven Design - by example.”

Target audience

This training aims at software developers, architects, and product owners or people from the business side who are working on digital products. There are no coding exercises in this training. However, developers will get a lot of resources and a link to a GitHub repository with a corresponding video by Michael Plöd to dig deeper.

Agenda

The training runs over three full days from 9 am–4:30 pm CEST each.

Day 1

Get to know an overview and a bit of the history behind Domain-driven Design. You will also learn about concepts such as the Ubiquitous Language and the motivation for a close collaboration between domain experts and software practitioners. The afternoon will consist of a Big Picture EventStorming session on the case study.

Day 2

The second day is all about strategic Domain-driven Design. You will learn to distinguish between problem and solution space. We will dissect the problem domain of our case study into subdomains and categorize them into core, supporting, and generic. After that, we will dive into the solution space by identifying proper bounded contexts, ideas, and elements from the Bounded Context Design Canvas. You will not only learn all the fundamentals of problem domains, subdomains, and bounded contexts. You will also put those ideas into practice with many exercises!

Day 3

We’ll use the first part of the day applying the ideas and patterns of the tactical Domain-driven Design into practice. We will perform a Design Level EventStorming for one of the bounded contexts we identified on day 2—this will enable us to identify candidates for aggregates, services, and policies. Going forward, we will also look for proper candidates for entities and value objects.

Results of a training groups’ remote EventStorming
Results of a training groups’ remote EventStorming

The second part of the day is all about the sociotechnical part of Domain-driven Design. You will learn about aligning teams, bounded contexts, and governance that you’ll need in such an environment. We will mainly look at the context mapping patterns from the Domain-driven Design literature, but you will also get a brief overview of alternatives such as Team Topologies.

Learning Objectives

  • Get to know the motivation behind Domain-driven Design and all the elements of the methodology.
  • Learn how to apply Domain-driven Design using agile practices.
  • Be able to conduct collaborative modeling workshops like EventStorming (Big Picture, Design Level) and Domain Storytelling.
  • Demarcate problem domains and divide them into categorized subdomains.
  • Design bounded context boundaries from various perspectives.
  • Apply tactical design patterns such as aggregate, entity, value object, and service in designing a highly expressive domain model.
  • Design a sociotechnical architecture with the corresponding governance using context maps.
A subdomain’s borders, developed by a team of remote participants
A subdomain’s borders, developed by a team of remote participants

How does the online training work? And how is it different from an on-premise session?

We worked hard to recreate our on-premise course as highly interactive and immersive online training. To get there, we tweaked a few basics:

  • A short break after each hour of remote work.
  • Additional smaller exercises and retrospectives create an engaging learning environment for beginners and experienced folks alike.
  • Reinvented exercises with a “remote-first” attitude.
  • Some exercises, especially in the strategic design part, leverage remote collaboration tools' possibilities to the fullest.
  • We significantly improved the combination of theoretical background knowledge and hands-on exercises.

In the online training, we use two major tool categories: A video conferencing solution and a browser-based remote collaboration tool. You don’t need to sign up anywhere: all you need is a link you’ll get from the trainer, and you are good to go.

Small learning groups mean more interaction! That’s why we use a video conferencing solution with support for breakout rooms – these enable the trainer to quickly iterate between the groups and give advice as well as support everyone during the exercises.

Our goal is that this online training maintains its highly interactive and personal hands-on spirit. Therefore we kindly ask all participants to keep their web cam on during the whole session.

FAQ

What prior knowledge do I need to bring?

You should have some experience in the delivery of software products. Some know-how in software architecture is a plus, but not required.

What are the technical requirements?

You should have a webcam, a decent microphone or headset, and a good internet connection. We recommend at least 20 MBit/s downstream and 5–10 MBit/s upstream. It would help if you also had a modern browser (Firefox, Chrome, Safari) installed on your machine. A second screen is optional but a plus. We will use Zoom for video conferencing. Before the training, we will offer 2–3 dates for a brief technical-setup check.

Does the online training replace the on-premise course?

The short answer is: no. The on-premise version of this training is currently on halt until we can guarantee a safe environment for everyone involved.

Is this training also available as an in-house course for my team?

Absolutely. Please contact us for an individual offer.