DDD Immersion (4-days)


Learn to put the domain model to work, hands-on, in this intensive 4-day course.

Finding and exploiting domain models is key to success with large software systems. By cultivating a strong connection between the language used by experts, users, and developers, the right kind of models can dramatically accelerate the process of translating the customers' needs into working software. Strong domain modeling coupled with programming best practices such as exploiting design patterns, refactoring, and test-driven development yield a principled yet practical approach to the development of large software systems.

This intensive course will aid participants in striking a healthy balance between digging into their subject matter and addressing technological issues, which, while unavoidable, cannot be allowed to dominate the development process for commercially viable systems.

We weave together lecture, discussion and classroom exercises, including hands-on coding projects. In discussions, attendees have the oportunity to discuss their own experiences and relate their own work to the principles and techniques presented in the class.


Basic knowledge of object modeling and design.
We encourage non-technical managers and analysts to attend. A mixed class is ideal. To make the code exercises work, we only need half of the attendees to have programming skills on the target platform (basic Java).


Some exposure to medium to large-scale software development in a multi-team environment.


Course Outline

Day 1: Model Exploration and Ubiquitous Language

  • Domain-driven design overview
  • Making implicit concepts explicit
  • Ubiquitous Language

Afternoon: Jumping in with code

  • Brainstorming models
  • Expressing a model in software
  • Building-block patterns (entities, value objects, repositories, etc.)
  • Test-first development as a modeling process


Day 2 Morning: Modeling with Domain Experts

  • Techniques and pitfalls of bringing about a creative collaboration.
  • Modeling out loud


Day 2 Afternoon: Supple Design

  • Patterns and techniques to tighten models and their connection to code.
  • Making code obvious, easier to use and change
  • Modeling for transactional integrity and distributed systems


Day 3: Strategic Design

Morning: Context Mapping

  • Pragmatic approach to dealing with diverse models and designs on real projects
  • Relationships between subsystems/ relationships between teams


Afternoon: Distilling the Core Domain

  • Distinguishing the core from the mass
  • Ways of focusing effort
  • Clarifying a shared vision
  • Setting up a project for success


Day 4: Bringing it Together

  • Design/code challenge - model supple design with context map
  • Round-table discussion of SOA and enterprise frameworks with DDD
  • In-depth discussion and Q&A, relating all topics to each other and to your own work



Upcoming DDD Immersions


On-site Training

For rates, availability, and other information, write to info4@ domainlanguage.com or call us at: (+1) 914-861-5264.

Want a Quicker Introduction?

Where the DDD Immersion builds skills for practitioners and leaders of DDD projects (including non-technical members), the DDD Overview, in just one day, builds an awareness of the key issues.
More on DDD Overview  »