Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Domain Driven Design: from the trenches

Domain Driven Design: from the trenches

You’ve probably heard about Domain Driven Design, heck you may have even read THE book on it, but like most of us you’ve probably wondered how to apply it in practice. Where do you begin? How do you win people over to this sometimes drastically different way of thinking and doing? In this short talk you’ll hear from both a UX Designer and Engineer on how they navigated the early stages of a project, the challenges encountered along the way and some of the techniques that were employed to overcome them. Finally, we’ll retrospect on the overall process of DDD and contrast the outcomes with those of other traditional approaches. Make sure you don’t miss this talk!

Avatar for Rami Ruhayel

Rami Ruhayel

August 04, 2018

Other Decks in Programming

Transcript

  1. RAMI RUHAYEL Software developer, DDD evangelist & all around great

    guy Twitter LinkedIn Medium VALERIA SPIROVSKI Experience design, Iteration manager & Product facilitator INTRODUCTIONS next up WHAT IS DDD?
  2. DOMAIN DRIVEN DESIGN IS... WHAT IS DDD? A way to

    robustly represent the domain in the software so that it supports the desired experience and business outcomes The resulting software tells the story of the user in code. next up CONTEXT & TEAM SETUP
  3. PROJECT SCOPE & TEAM SETUP CONTEXT & TEAM SETUP Scope

    - Had a high level vision and outcomes - Inherited a suggested design from a previous project as part of scope - Remit to explore Team Setup - Set up and funded as a team, not a project - Cross functional roles - SME embedded as part of the team next up CASE STUDY
  4. MANY COOKS, NO HEAD CHEF CASE STUDY NO PRODUCT OWNER

    Program Architect Program Lead Existing Design Program Tech lead Integration requirements New product features Inherited product features Tech platform requirements No Product Owner
  5. EVERYTHING GETS CHALLENGED Product Owner new to software delivery Was

    initially more of an SME next up DDD SPIN ON MODELLING
  6. MODELLING: AGGREGATE MINE SITE AGGREGATE REGION ENTITY A Aggregate is

    a cluster of domain objects that can be treated as a single unit
  7. MODELLING: TRANSACTION BOUNDARIES AGGREGATE ENTITY AGGREGATE ROOT ENTITY Communication between

    aggregates is via Domain events AGGREGATE EMPLOYEE UPDATED EVENT
  8. CASE STUDY WHY DO WE NEED BOUNDED CONTEXTS? As you

    try to model a larger domain, it gets progressively harder to build a single unified model. Different groups of people will use subtly different vocabularies in different parts of a large organization. DDD SPIN ON MODELLING
  9. CASE STUDY EVENT STORMING • Collaborative facilitation exercise with team,

    domain experts and stakeholders • Use the concept of Domain Events to start understanding how domain experts operate. • Use the resulting event streams to inform the model WHAT IS EVENT STORMING?
  10. CASE STUDY EVENT STORMING • Telling the story in terms

    of Domain Events tells the reality of what happened • Avoids future state, proposed or imagined states A REAL STORY
  11. CASE STUDY EVENT STORMING We always start at the end

    with the last event, because it keeps us focused on the goal at hand. We then add the first event, creating a timeline all the way from the beginning to the end. Finally we walk through the model forwards and backwards to ensure that everything is covered. BUILDING YOUR EVENT TIMELINE
  12. next up BRINGING EVENT STORMING BACK TO DDD REORGANISING OUR

    EVENT STREAMS TOGETHER EVENT TIMELINE next up HOW WE BROUGHT EVENT STORMING BACK TO OUR MODEL
  13. CASE STUDY EVENT STORMING BRINGING EVENT STORMING BACK TO DDD

    The resulting model is then challenged with code in order to validate the group learning and verify the model. CLOSING THE LOOP next up TIPS FOR RUNNING AN EVENT STORMING SESSION
  14. OWNING THE FACILITATION CASE STUDY EVENT STORMING TIPS ON SETTING

    UP AND RUNNING THE SESSION - Event storming is a medium to high difficulty facilitation framework - Practice facilitating, or engage an experienced facilitator - Plan the session beforehand
  15. Post-it notes in at least 4 different colours Sharpies Brown

    canvas paper & scissors Blue-tack!! STATIONARY: CASE STUDY EVENT STORMING TIPS FOR RUNNING AN EVENT STORMING SESSION next up THE EVOLVING PRODUCT STRATEGY
  16. When people have two different definitions for a term -

    discuss - review and refine the model. MAINTAINING A UBIQUITOUS LANGUAGE
  17. Product strategy & concept evolved and then changed the model

    & architecture next up RETROSPECTIVE PRODUCT STRATEGY EVOLUTION