Essential DDD

Paul Rayner November 16-19, 2020
9:00 AM - 12:00 PM (MST)

How do we overcome the overwhelming complexity of our business domains and quickly build software applications that evolve and adapt effectively?

Domain-Driven Design (DDD) is an approach to software development that promotes collaboration between different disciplines to solve complex business problems in the most effective way.

The aim of DDD is accelerating development for teams dealing with domain complexity.

What you will learn

In this workshop, you'll gain a thorough understanding of what DDD looks like, why it matters, and how to apply it to you, your team, and your organization. This workshop will provide you with a solid grounding in the foundational ideas, techniques, and skills for doing DDD well in your own project context.

DDD is about shortening the time to value for customers and doing this in a sustainable, repeatable manner.

Being both a way of thinking and a set of priorities, DDD can sometimes be perceived as overly abstract and amorphous. We'll overcome that by connecting everything in DDD together, highlighting what's most important, and give you practical tools to take away and apply on your project immediately.

Workshop Format

  • Four instructor-led interactive 3-hour online class sessions.
  • Live instruction using Zoom and Miro (i.e. collaborative online whiteboard) in each session.
  • Hands-on practice during each session.
  • Practical homework for you to practice in your own context between sessions and share your learning with your fellow participants.

This workshop is not your typical online boring death-by-bullet-point lecture marathon. The workshop is highly hands-on, varied, and interactive. We will be doing pairing and group exercises. We will be reading code, but no coding experience is necessary.

By spreading the training into four shorter interactive virtual sessions, we minimize the impact on your daily work and keep your energy levels high.

Virtual learning can be intense, so there will be scheduled breaks every hour. Plus, if your kids interrupt, dogs bark or you need to step away for a bit, that's just part of the experience and perfectly fine with us. Our goal is for you to leave each class session energized and ready to put into practice what you've learned. In attending this virtual workshop you agree to:

  • Be present while also taking care of your needs.
  • Extend empathy and acceptance to the other participants.
  • Be on video, at least most of the time (we will be taking breaks).

Workshop Schedule

Days 1 & 2 - Collaborative Modeling with People and Code

  • Understand what kinds of business problems DDD addresses.
  • The central role of software design and how DDD fits in.
  • Bridging the communication gap between business and technical people.
  • Domain modeling by example for whole–team collaborative domain discovery.
  • Applying EventStorming to model and design a business process effectively.
  • Refactoring code towards a ubiquitous language.

Days 3 & 4 - Supple Design and Strategic Focus

  • Applying 5 key building block patterns for expressive modeling in code.
  • Using context mapping to help manage large–scale, multi-team design efforts.
  • Identifying where applying DDD will have the greatest impact—your core domain.
  • Architectural patterns to support DDD.

We recommend you wear comfortable clothes and use your preferred note-taking devices (paper & pen, iPad, etc.). We will be reading some code, not writing it, so you won't need an IDE or any dev tools to participate. You will need a webcam and microphone, and access to Zoom and Miro to participate in this workshop.

Who Should Attend

Anybody who works in software teams or with software teams will be able to fully participate in this workshop and take away concrete skills they can apply in real working situations. This includes software developers, architects, testers/QA, DevOps/DevSecOps, Product managers/owners, BA's, delivery managers, engineering managers and directors, and CTOs.

About Paul Rayner

Paul Rayner is a developer, instructor, coach, consultant, and popular conference speaker with over thirty years of software development experience.

Paul is the founder and chair of the Explore DDD conference, the premier Domain-Driven Design conference in North America, and co-founder of DDD Denver. He is also the author of The EventStorming Handbook and contributor to Behavior-Driven Development with Cucumber.

He provides software design training and coaching through Virtual Genius. He lives in Denver, Colorado, with his wife and two teenagers.