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

Towards Autonomous Aligned Teams with Domain-Driven Design @ progressive delivery conf 2021

Towards Autonomous Aligned Teams with Domain-Driven Design @ progressive delivery conf 2021

The companies I consult with are going through an agile DevOps transformation. Typically they focus on transitioning people into teams towards DevOps working, getting groups with max eight people into a team, and being able to work almost autonomously. This transformation almost always poses questions like; How do we divide the current software into the teams, which teams take ownership of what part of the current system, how do we functionally align the teams to the business strategy, and who goes in what team? We call this socio-technical architecture.

To deal with those questions companies request my help to design (micro)services using a Domain-Driven Design approach because it makes it easier to divide the software between teams. I believe enterprises who are going to or doing an Agile DevOps transformation need at least a Domain-Driven Design approach to create autonomous teams that are aligned with the business architecture. Aligning autonomous teams to the business strategy creates a set of unique challenges. In this war story talk, I will share my experience with moving towards autonomous aligned DevOps teams with a Domain-Driven Design approach.

Kenny Baas-Schwegler

March 19, 2021
Tweet

More Decks by Kenny Baas-Schwegler

Other Decks in Technology

Transcript

  1. @kenny_baas Towards Autonomous Aligned Teams with Domain-Driven Design Kenny Baas-Schwegler

  2. Photo by NASA on Unsplash @kenny_baas

  3. 3 “If the architecture of the system and the architecture

    of the organization are at odds, the architecture of the organization wins” —Ruth Malan @kenny_baas
  4. 4 @kenny_baas

  5. 5 @kenny_baas

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

  8. Label 1 Website Label 2 Website API GATEWAY Label 3

    Website Business 3 Business 2 Business 1 CRM Datawarehouse Data API @kenny_baas
  9. None
  10. 10 @kenny_baas

  11. [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 @kenny_baas
  12. “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
  13. 13 @kenny_baas Order Payment Packaging

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

  15. 15 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
  16. @kenny_baas

  17. 17 To communicate effectively, the code must be based on

    the same language used to write the requirements - the same language that the developers speak with each other and with domain experts - Eric Evans @kenny_baas
  18. 18 @kenny_baas https://www.thoughtco.com/ambiguity-language-1692388

  19. We all know or should know that language is fluid,

    liquid, subject to the whims of the people. Language evolves, as it should. Because language changes to accommodate new users, the older users resist and complain. http://tednellen.blogspot.com/2013/04/language-is-fluid.html @kenny_baas
  20. @kenny_baas Instead of one canonical language, create multiple bounded languages

  21. 21 It is not the domain experts knowledge that goes

    to production, it is the assumption of the developers that goes to production - Alberto Brandolini @kenny_baas
  22. 22 Business Architects Developers @kenny_baas

  23. @kenny_baas

  24. @kenny_baas

  25. 25 @kenny_baas

  26. A straight line between 2 points corresponds to a compass

    direction in reality.. @kenny_baas
  27. A straight line between 2 points corresponds to a compass

    direction in reality.. • Except for points located in Greenland • Except for points located in Africa @kenny_baas
  28. 28 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. @kenny_baas — Rebecca Wirfs-Brock
  29. 29 Business Architects Developers @kenny_baas @joaoasrosa

  30. @kenny_baas Stop communicating business change in system boundaries (unit of

    deployment like in microservices, monolith) Start communicating business change in contextual boundaries that form the bounded context (purpose, need, responsibility)
  31. 31 @kenny_baas

  32. 32 @kenny_baas

  33. 33 @kenny_baas

  34. @kenny_baas

  35. @kenny_baas @joaoasrosa

  36. 36 @kenny_baas https://www.eventstorming.com/

  37. 37 @kenny_baas https://www.eventstorming.com/

  38. 38 @kenny_baas Mortgage request received Mortgage application passed Tender signed

    Declaration rejected
  39. @kenny_baas

  40. 40 @kenny_baas

  41. 41 @kenny_baas https://www.eventstorming.com/

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

  43. 43 @kenny_baas

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

  45. 45 @kenny_baas

  46. @kenny_baas Domain-Driven Design enables teams to have agency Agency leads

    to observability a necessity for doing progressive delivery
  47. @kenny_baas #CatTax @kenny_baas Baasie.com xebia.com/blog/author/kbaas/ https://speakerdeck.com/baasie @kenny_baas Agile Alliance report:

    https://www.agilealliance.org/resources/experience-reports/towards-auton omous-aligned-teams-with-domain-driven-design/ https://virtualddd.com/
  48. @kenny_baas Domain-Driven Design (DDD) Foundation https://xebia.com/academy/en/training/domain-driven-design-ddd-foundation Strategic Domain-Driven Design (DDD):

    Design Loosely Coupled Architecture https://xebia.com/academy/en/training/strategic-domain-driven-design-ddd Professional Agile Architecture: Visual and Collaborative Modelling https://xebia.com/academy/en/training/professional-agile-architecture 15% off training: kenny15