Strategic Domain-Driven Design (DDD)

Workshop for Professionals in Software Development


Audience

This course is aimed at anyone involved in a software development process who would like to deepen their understanding of software design or improve their existing practices. As DDD emphasizes collaboration between technical and business experts, all roles are welcome, including:

  • Clients of digital agencies, software vendors, and consultancies
  • Business Analysts
  • Product Managers / Product Owners
  • Software Testers
  • Scrum Masters
  • Software Developers
  • Software Architects
  • Any other professionals involved in a software development project

No prior knowledge of software engineering techniques or programming languages is required.

Aim of the Workshop

The aim of this workshop is to understand the Domain-Driven Design approach to software development.

DDD brings developers and business experts together in the software design process. It unifies requirements gathering, software design, and implementation into a single, coherent workflow. Participants will gain a set of principles and practices that enable them to collaboratively elicit user needs and design software solutions.

You will incrementally develop your understanding of a business problem and create a domain model that can be transformed into working software. You will also learn how to break down a large system into loosely coupled subsystems.

Learning Objectives

By the end of this workshop, participants will be able to:

  • Understand the Domain-Driven Design approach to software development
  • Apply DDD principles using a fictional software development project
  • Decompose a system into smaller, manageable parts using Bounded Contexts
  • Define relationships between bounded contexts
  • Define message flows between bounded contexts
  • Apply Knowledge Crunching techniques to distill domain knowledge
  • Practice two core DDD techniques: EventStorming and Domain Storytelling
  • Understand Tactical Design and its relationship to Strategic Design

     

Course Content

Part 1: Getting Acquainted with DDD and the Case Study

Understanding what DDD is and how it connects to existing practices

  • Introduction to the case study
  • Introduction to subdomains and bounded contexts
  • Case study: creating an initial Bounded Context Map
  • Defining subdomains
  • EventStorming
  • Defining initial bounded contexts on the EventStorming canvas

Part 2: DDD Terminology and Techniques

  • Case study: introducing techniques and heuristics
  • From subdomains to bounded contexts
  • Bounded Context Canvas
  • Domain Stories

Part 3: Context Maps

  • Context mapping
  • Message flows between bounded contexts
  • Beginning to define models

Part 4: Defining the Model and Tactical Design

  • Brief introduction to Tactical Design
  • Iteration and refinement of bounded contexts and message flows
  • Show and tell: comparing models designed by different teams
  • Trade-off analysis
Duration
24h