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. 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
  2. 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
  3. Label 1 Website Label 2 Website API GATEWAY Label 3

    Website Business 3 Business 2 Business 1 CRM Datawarehouse Data API @kenny_baas
  4. [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
  5. “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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. @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)
  13. @kenny_baas Domain-Driven Design enables teams to have agency Agency leads

    to observability a necessity for doing progressive delivery
  14. @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/
  15. @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