Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

Photo by NASA on Unsplash @kenny_baas

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

4 @kenny_baas

Slide 5

Slide 5 text

5 @kenny_baas

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

7 @kenny_baas

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

10 @kenny_baas

Slide 11

Slide 11 text

[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

Slide 12

Slide 12 text

“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

Slide 13

Slide 13 text

13 @kenny_baas Order Payment Packaging

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

@kenny_baas

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

18 @kenny_baas https://www.thoughtco.com/ambiguity-language-1692388

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

@kenny_baas Instead of one canonical language, create multiple bounded languages

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

22 Business Architects Developers @kenny_baas

Slide 23

Slide 23 text

@kenny_baas

Slide 24

Slide 24 text

@kenny_baas

Slide 25

Slide 25 text

25 @kenny_baas

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

29 Business Architects Developers @kenny_baas @joaoasrosa

Slide 30

Slide 30 text

@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)

Slide 31

Slide 31 text

31 @kenny_baas

Slide 32

Slide 32 text

32 @kenny_baas

Slide 33

Slide 33 text

33 @kenny_baas

Slide 34

Slide 34 text

@kenny_baas

Slide 35

Slide 35 text

@kenny_baas @joaoasrosa

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

38 @kenny_baas Mortgage request received Mortgage application passed Tender signed Declaration rejected

Slide 39

Slide 39 text

@kenny_baas

Slide 40

Slide 40 text

40 @kenny_baas

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

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

Slide 43

Slide 43 text

43 @kenny_baas

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

45 @kenny_baas

Slide 46

Slide 46 text

@kenny_baas Domain-Driven Design enables teams to have agency Agency leads to observability a necessity for doing progressive delivery

Slide 47

Slide 47 text

@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/

Slide 48

Slide 48 text

@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