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

Towards Autonomously aligned teams with Domain-...

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. 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
  2. 10 @kenny_baas @joaoasrosa Buildings 7 people Roads 16 people Wires

    System Buildings system Roads system Wires 30 people
  3. 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
  4. 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
  5. 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
  6. “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
  7. 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
  8. 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
  9. 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
  10. It is not documentation that we want, It is a

    shared state of mind. @kenny_baas @joaoasrosa
  11. Socio-technical Complexity Result in losing: The big picture, the sense,

    a shared understanding, vision & mobilization Photo by NASA on Unsplash @kenny_baas @joaoasrosa
  12. 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
  13. 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
  14. 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
  15. 51 @kenny_baas @joaoasrosa Autonomy has become compulsive, we need to

    remember we are still tribal creatures that require tribale safety. - Danielle Braun
  16. 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
  17. @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