Slide 1

Slide 1 text

Towards Autonomous Aligned Teams with Domain-driven design Kenny Baas-Schwegler, João Rosa @kenny_baas @joaoasrosa

Slide 2

Slide 2 text

@kenny_baas @joaoasrosa

Slide 3

Slide 3 text

3 @kenny_baas @joaoasrosa

Slide 4

Slide 4 text

@kenny_baas @joaoasrosa

Slide 5

Slide 5 text

5 @kenny_baas @joaoasrosa

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

7 @kenny_baas @joaoasrosa

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

@kenny_baas @joaoasrosa

Slide 10

Slide 10 text

10 @kenny_baas @joaoasrosa Buildings 7 people Roads 16 people Wires System Buildings system Roads system Wires 30 people

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 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 @joaoasrosa Credit: Nick Tune 15

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

@kenny_baas @joaoasrosa Conway’s alignment: (Engineering) teams aligned to Business models/products

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

@kenny_baas @joaoasrosa

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

22 @kenny_baas @joaoasrosa

Slide 23

Slide 23 text

IT as a factory @kenny_baas @joaoasrosa

Slide 24

Slide 24 text

@kenny_baas @joaoasrosa

Slide 25

Slide 25 text

25 @kenny_baas @joaoasrosa

Slide 26

Slide 26 text

It is not documentation that we want, It is a shared state of mind. @kenny_baas @joaoasrosa

Slide 27

Slide 27 text

Socio-technical Complexity Result in losing: The big picture, the sense, a shared understanding, vision & mobilization Photo by NASA on Unsplash @kenny_baas @joaoasrosa

Slide 28

Slide 28 text

@kenny_baas @joaoasrosa

Slide 29

Slide 29 text

29 @kenny_baas @joaoasrosa

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

@kenny_baas @joaoasrosa

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

@kenny_baas @joaoasrosa

Slide 36

Slide 36 text

36 @kenny_baas @joaoasrosa Chaotic Exploration

Slide 37

Slide 37 text

37 @kenny_baas @joaoasrosa Mortgage request received Mortgage application passed Tender signed Declaration rejected

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

41 @kenny_baas @joaoasrosa

Slide 42

Slide 42 text

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

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

45 @kenny_baas @joaoasrosa

Slide 46

Slide 46 text

46 @kenny_baas @joaoasrosa

Slide 47

Slide 47 text

47 @kenny_baas @joaoasrosa

Slide 48

Slide 48 text

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

Slide 49

Slide 49 text

49 @kenny_baas @joaoasrosa

Slide 50

Slide 50 text

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

Slide 51

Slide 51 text

51 @kenny_baas @joaoasrosa Autonomy has become compulsive, we need to remember we are still tribal creatures that require tribale safety. - Danielle Braun

Slide 52

Slide 52 text

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

Slide 53

Slide 53 text

@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