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

Bf5494be4dd7a8e936cd964374d86eb0?s=47 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.

Bf5494be4dd7a8e936cd964374d86eb0?s=128

João Rosa

December 13, 2019
Tweet

Transcript

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

    Rosa @kenny_baas @joaoasrosa
  2. @kenny_baas @joaoasrosa

  3. 3 @kenny_baas @joaoasrosa

  4. @kenny_baas @joaoasrosa

  5. 5 @kenny_baas @joaoasrosa

  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
  7. 7 @kenny_baas @joaoasrosa

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

  9. @kenny_baas @joaoasrosa

  10. 10 @kenny_baas @joaoasrosa Buildings 7 people Roads 16 people Wires

    System Buildings system Roads system Wires 30 people
  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
  12. 12 @kenny_baas @joaoasrosa https://www.martinfowler.com/articles/microservices.html

  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
  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
  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
  16. 16 @kenny_baas @joaoasrosa https://www.martinfowler.com/articles/microservices.html

  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
  18. @kenny_baas @joaoasrosa Conway’s alignment: (Engineering) teams aligned to Business models/products

  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
  20. @kenny_baas @joaoasrosa

  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
  22. 22 @kenny_baas @joaoasrosa

  23. IT as a factory @kenny_baas @joaoasrosa

  24. @kenny_baas @joaoasrosa

  25. 25 @kenny_baas @joaoasrosa

  26. It is not documentation that we want, It is a

    shared state of mind. @kenny_baas @joaoasrosa
  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
  28. @kenny_baas @joaoasrosa

  29. 29 @kenny_baas @joaoasrosa

  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
  31. None
  32. @kenny_baas @joaoasrosa

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

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

  35. @kenny_baas @joaoasrosa

  36. 36 @kenny_baas @joaoasrosa Chaotic Exploration

  37. 37 @kenny_baas @joaoasrosa Mortgage request received Mortgage application passed Tender

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

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

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

  41. 41 @kenny_baas @joaoasrosa

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

  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
  44. 44 @kenny_baas @joaoasrosa https://www.eventstorming.com/

  45. 45 @kenny_baas @joaoasrosa

  46. 46 @kenny_baas @joaoasrosa

  47. 47 @kenny_baas @joaoasrosa

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

  49. 49 @kenny_baas @joaoasrosa

  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
  51. 51 @kenny_baas @joaoasrosa Autonomy has become compulsive, we need to

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