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

Towards Autonomously aligned teams with Domain-Driven Design and EventStorming @ Xebia Academy webinar week 2019

João Rosa
December 13, 2019

Towards Autonomously aligned teams with Domain-Driven Design and EventStorming @ Xebia Academy webinar week 2019

We have been involved in several transformations over the years, from DevOps to Digital to Agile. These transformations typically focus on transitioning people into near-autonomous teams of no more than eight people who will work in an agile manner. Every company we have worked for asks the same questions at these transformations: How do we divide the current software between the teams, and how do we align these teams to our business architecture?

To address these questions, companies request our help to design microservices using a Domain-Driven Design (DDD) approach. This approach makes it easier to distribute the software between teams based on identified boundaries, called “bounded contexts.” We believe enterprises involved in an Agile, DevOps or Digital transformation need at least a Domain-Driven Design approach. Only then can we create autonomous aligned teams with a loosely-coupled architecture, this process presents unique challenges. In this webinar, we will go over what Domain-driven design exactly is and why you truly need to approach your transformation with DDD to become agile, DevOps or digital. You will learn how with EventStorming, you can create a continuous alignment between your business problems and your IT solutions.

João Rosa

December 13, 2019
Tweet

More Decks by João Rosa

Other Decks in Technology

Transcript

  1. Towards Autonomous
    Aligned Teams
    with Domain-driven design
    Kenny Baas-Schwegler, João Rosa
    @kenny_baas @joaoasrosa

    View Slide

  2. @kenny_baas @joaoasrosa

    View Slide

  3. 3
    @kenny_baas @joaoasrosa

    View Slide

  4. @kenny_baas @joaoasrosa

    View Slide

  5. 5
    @kenny_baas @joaoasrosa

    View Slide

  6. 6
    @kenny_baas @joaoasrosa
    Any organization that designs a system
    (defined more broadly here than just information systems)
    will inevitably produce a design whose structure
    is a copy of the organization's communication structure.
    — Mel Conway

    View Slide

  7. 7
    @kenny_baas @joaoasrosa

    View Slide

  8. 8
    @kenny_baas @joaoasrosa
    Book: Corporate tribe, Braum & Kramer

    View Slide

  9. @kenny_baas @joaoasrosa

    View Slide

  10. 10
    @kenny_baas @joaoasrosa
    Buildings
    7 people
    Roads
    16
    people
    Wires System
    Buildings system Roads system
    Wires
    30 people

    View Slide

  11. 11
    @kenny_baas @joaoasrosa
    Buildings
    7 people
    Back-end
    6
    people
    Wires System
    Buildings system Roads system
    Front-end
    6
    people
    Poles
    7
    people
    Wires
    9
    people
    Connections
    9 people

    View Slide

  12. 12
    @kenny_baas @joaoasrosa
    https://www.martinfowler.com/articles/microservices.html

    View Slide

  13. Label 1
    Website
    Label 2
    Website
    API
    GATEWAY
    Label 3
    Website
    Business 3
    Business 2
    Business 1 CRM
    Datawarehouse
    Data API
    13
    @kenny_baas @joaoasrosa

    View Slide

  14. 14
    @kenny_baas @joaoasrosa
    [In our study at Thoughtworks we found] work
    takes an order of magnitude longer when it
    leaves a team.
    — James Lewis (@boicy)
    Credit: Nick Tune

    View Slide

  15. “A loosely coupled software architecture
    and org structure to match” is a key
    predictor of:
    1. Continuous Delivery Performance
    2. Ability to scale org and increase
    performance linearly
    @kenny_baas @joaoasrosa
    Credit: Nick Tune
    15

    View Slide

  16. 16
    @kenny_baas @joaoasrosa
    https://www.martinfowler.com/articles/microservices.html

    View Slide

  17. 17
    @kenny_baas @joaoasrosa
    Buildings
    7 people
    Road
    6
    people
    Wires Systems
    Buildings system Roads system
    Sidewalk
    6
    people
    Electra
    7 people
    Internet
    9
    people
    Telephone
    9
    people

    View Slide

  18. @kenny_baas @joaoasrosa
    Conway’s alignment:
    (Engineering) teams aligned to
    Business models/products

    View Slide

  19. 19
    The key to incremental architecture is to build on
    a framework that can accommodate change...
    that framework is the domain....
    By designing and modeling the domain, you can
    more easily handle changes to the domain
    — Allen Holub (@allenholub)
    @kenny_baas @joaoasrosa

    View Slide

  20. @kenny_baas @joaoasrosa

    View Slide

  21. 21
    @kenny_baas @joaoasrosa
    Essence of Domain-Driven Design
    ➔ Using models for creating software
    ➔ Focus on part of the software handling complex business requirements
    ➔ Focus on a language where we really crisply concisely describe the situation in
    the domain
    ➔ Shared language created through conversations between business people
    (specialists) and software people which becomes the ubiquitous language
    ➔ Instead of one canonical language, create multiple bounded languages

    View Slide

  22. 22
    @kenny_baas @joaoasrosa

    View Slide

  23. IT as a factory
    @kenny_baas @joaoasrosa

    View Slide

  24. @kenny_baas @joaoasrosa

    View Slide

  25. 25
    @kenny_baas @joaoasrosa

    View Slide

  26. It is not documentation that we want,
    It is a shared state of mind.
    @kenny_baas @joaoasrosa

    View Slide

  27. Socio-technical Complexity
    Result in losing:
    The big picture, the sense,
    a shared understanding, vision & mobilization
    Photo by NASA on Unsplash
    @kenny_baas @joaoasrosa

    View Slide

  28. @kenny_baas @joaoasrosa

    View Slide

  29. 29
    @kenny_baas @joaoasrosa

    View Slide

  30. Photo by Jean-Frederic Fortier on Unsplash
    The Magical Number Seven, Plus or
    Minus Two: Some Limits on Our Capacity
    for Processing Information
    George A. Miller

    @kenny_baas @joaoasrosa

    View Slide

  31. View Slide

  32. @kenny_baas @joaoasrosa

    View Slide

  33. 33
    @kenny_baas @joaoasrosa
    https://www.eventstorming.com/

    View Slide

  34. 34
    @kenny_baas @joaoasrosa
    https://www.eventstorming.com/

    View Slide

  35. @kenny_baas @joaoasrosa

    View Slide

  36. 36
    @kenny_baas @joaoasrosa
    Chaotic Exploration

    View Slide

  37. 37
    @kenny_baas @joaoasrosa
    Mortgage
    request
    received
    Mortgage
    application
    passed
    Tender
    signed
    Declaration
    rejected

    View Slide

  38. 38
    @kenny_baas @joaoasrosa
    https://www.eventstorming.com/
    Enforcing the timeline

    View Slide

  39. You had to be there…..
    @kenny_baas @joaoasrosa

    View Slide

  40. 40
    @kenny_baas @joaoasrosa
    https://www.eventstorming.com/

    View Slide

  41. 41
    @kenny_baas @joaoasrosa

    View Slide

  42. 42
    @kenny_baas @joaoasrosa
    https://www.eventstorming.com/

    View Slide

  43. 43
    @kenny_baas @joaoasrosa
    A model is a simplified representation of a thing
    or phenomenon that intentionally emphasizes
    certain aspects while ignoring others.
    Abstraction with a specific use in mind.
    - Rebecca Wirfs-Brock

    View Slide

  44. 44
    @kenny_baas @joaoasrosa
    https://www.eventstorming.com/

    View Slide

  45. 45
    @kenny_baas @joaoasrosa

    View Slide

  46. 46
    @kenny_baas @joaoasrosa

    View Slide

  47. 47
    @kenny_baas @joaoasrosa

    View Slide

  48. 48
    @kenny_baas @joaoasrosa
    https://www.martinfowler.com/articles/microservices.html

    View Slide

  49. 49
    @kenny_baas @joaoasrosa

    View Slide

  50. 50
    @kenny_baas @joaoasrosa
    “Architectural design is system design.
    System design is contextual design
    — it is inherently about boundaries
    (what’s in, and what’s out, what spans, what
    moves between), and about tradeoffs.”
    —Ruth Malan

    View Slide

  51. 51
    @kenny_baas @joaoasrosa
    Autonomy has become compulsive, we
    need to remember we are still
    tribal creatures that require tribale safety.
    - Danielle Braun

    View Slide

  52. 52
    @kenny_baas @joaoasrosa
    If we have a system of improvement
    that is directed at improving the parts
    taken separately.
    You can be absolutely sure that the
    improvement of the whole
    will not be improved.
    Russ Ackoff

    View Slide

  53. @kenny_baas
    #CatTax
    @kenny_baas
    baasie.com
    xebia.com/blog/author/kbaas/
    https://speakerdeck.com/baasie
    Agile Alliance experience report:
    https://www.agilealliance.org/resources/experience-reports/towards-autonomous-aligned-teams-with-domain-driven-design/
    @kenny_baas @joaoasrosa
    @joaoasrosa
    joaorosa.io
    xebia.com/blog/author/jrosaxebia-com/
    https://speakerdeck.com/joaoasrosa

    View Slide