Domain-Driven Design Overview

Build your awareness of the basic concepts and value of Domain-Driven Design (DDD) in one day. This workshop is the official DDD Overview class from Domain Language.

Understand what DDD is and when and why it is valuable to software intensive organizations. Overview the basic principles and processes needed develop the useful sort of models, tie them into implementation and business analysis, and place them within a viable, realistic strategy.

Topics Introduced

Morning: Ubiquitous Language & Model Discovery

  • What is DDD?
  • What makes a model useful to a software project?
  • Cultivation of a model-based language to connect domain experts, developers, and the code itself
  • Exploratory interaction of technical and business people in the modeling process
  • Aggregates: A taste of rigor. This pattern addresses, at the model level, the scaling of systems in complexity, performance, and distribution.

Afternoon: Strategic Design

  • Distilling the Core Domain: Focusing fine modeling and design into those subdomains where the organization distinguishes itself
  • Clarifying a shared vision
  • Context Mapping: A pragmatic approach to dealing with the diversity models and processes on real large projects with multi-team/multi-subsystem development.
  • Combining the Core Domain and Context Map to illuminate Strategic Design options for a project.

About Paul Rayner

Paul Rayner

Paul is a seasoned team leader and design mentor with hands-on experience in the dominant technologies combined with a mastery of domain-driven design. He is one of those rare people who combines a deep understanding of agile software development process with hands-on technical design ability, able to focus teams on the areas where supple design matters most and leading them over the hurdles to an effective design.

Paul is passionate about pushing the boundaries of what is possible with software process and design - teaching others through public classes, coaching, speaking and writing. He has worked in a wide range of industries in the last two decades, including Government, Education, Mining, Insurance, Financial Services and Public Health. Paul combines years of solution development expertise in C#/.NET with broad practical experience in software ecosystems such as Java and Ruby, and open source tools and frameworks such as Git, NHibernate and SpecFlow.

Paul makes his home in Denver, Colorado with his wife and two children. He is an active member of the Colorado developer and agile communities, being an active member of Agile Denver and a founder of the DDD Denver Meetup group. Paul is a regular presenter at local user groups, on the No Fluff Just Stuff tour in the United States, and at local and international conferences. He can be reached at paul@domainlanguage.com and tweets with an Australian accent at @thepaulrayner.

More About Paul »