Slide 1

Slide 1 text

Towards Autonomous Aligned Teams with Domain-Driven Design

Slide 2

Slide 2 text

@kenny_baas

Slide 3

Slide 3 text

3 @kenny_baas https://teamjimmyjoe.com/2015/02/you-had-one-job-you-fails-30-pics/

Slide 4

Slide 4 text

Kenny Baas-Schwegler Strategic software delivery - Socio-technical architect - Domain-driven design - Facilitator - Wannabe anthropologist @kenny_baas Baasie.com xebia.com/blog/author/kbaas/

Slide 5

Slide 5 text

@kenny_baas

Slide 6

Slide 6 text

6 @kenny_baas

Slide 7

Slide 7 text

7 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 8

Slide 8 text

@kenny_baas

Slide 9

Slide 9 text

9 @kenny_baas Buildings 7 people Roads 16 people Wires System Buildings system Roads system Wires 30 people

Slide 10

Slide 10 text

10 @kenny_baas 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 11

Slide 11 text

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

Slide 12

Slide 12 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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

14 @kenny_baas 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 15

Slide 15 text

Mortgage company Lowlanders @kenny_baas

Slide 16

Slide 16 text

@kenny_baas Big ball of mud

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

@kenny_baas

Slide 19

Slide 19 text

19 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 @kenny_baas

Slide 20

Slide 20 text

Context is everything @kenny_baas

Slide 21

Slide 21 text

“We finally have more insight into the software we need to build” @kenny_baas

Slide 22

Slide 22 text

@kenny_baas “We already knew everything that was discussed”

Slide 23

Slide 23 text

23 @kenny_baas Book: Corporate tribe, Braum & Kramer

Slide 24

Slide 24 text

IT as a factory @kenny_baas

Slide 25

Slide 25 text

25 @kenny_baas

Slide 26

Slide 26 text

@kenny_baas

Slide 27

Slide 27 text

27 @kenny_baas

Slide 28

Slide 28 text

“It is not the domain experts knowledge that goes to production, it is the assumption of the developers.” -Alberto Brandolini @kenny_baas

Slide 29

Slide 29 text

29 Problem Space Our world as we perceive it (Sub)Domains Business Architecture Independent of Software Language is fluid Stable system, strategic changes @kenny_baas

Slide 30

Slide 30 text

@kenny_baas The business architecture and the wiki.

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

@kenny_baas The big picture…..

Slide 33

Slide 33 text

@kenny_baas Inviting the right people together in a room

Slide 34

Slide 34 text

@kenny_baas Go emic…. Finding the pain…. Don’t talk about methods….

Slide 35

Slide 35 text

The Magical Number Seven, Plus or Minus Two @kenny_baas

Slide 36

Slide 36 text

36 @kenny_baas Brain Science - the 6 trumps by Sharon Bowman - https://www.youtube.com/watch?v=DAiXOgFu8Wc

Slide 37

Slide 37 text

No content

Slide 38

Slide 38 text

38 Visual Collaborative modelling tools @kenny_baas

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

Lack of Oxygen will kill your workshop @kenny_baas

Slide 41

Slide 41 text

Check in... @kenny_baas

Slide 42

Slide 42 text

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

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

@kenny_baas Business relevant

Slide 45

Slide 45 text

@kenny_baas Managing uncertainty without influencing.

Slide 46

Slide 46 text

@kenny_baas Be careful structuring chaos to fast, you might lose valuable insights

Slide 47

Slide 47 text

Tender signed Mortgage application passed 47 @kenny_baas We already have the customer information, but we make them fill it in. This is not customer-friendly. We are ping-ponging tasks with another team.

Slide 48

Slide 48 text

@kenny_baas Stories will tell itself, as long as you listen So slow down….

Slide 49

Slide 49 text

@kenny_baas Events; How instead of why

Slide 50

Slide 50 text

@kenny_baas language is fluid and subject to people’s whims

Slide 51

Slide 51 text

51 @kenny_baas

Slide 52

Slide 52 text

Check out... @kenny_baas

Slide 53

Slide 53 text

You had to be there….. @kenny_baas

Slide 54

Slide 54 text

@kenny_baas Everything has been said before; but since nobody listens, we must always start again

Slide 55

Slide 55 text

@kenny_baas

Slide 56

Slide 56 text

@kenny_baas

Slide 57

Slide 57 text

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

Slide 58

Slide 58 text

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

Slide 59

Slide 59 text

59 @kenny_baas

Slide 60

Slide 60 text

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

Slide 61

Slide 61 text

@kenny_baas Single source of truth….

Slide 62

Slide 62 text

62 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 @kenny_baas

Slide 63

Slide 63 text

63 Solution Space Our world as we designed it Bounded Context Software Architecture Linked to the business language is consistent Constant changes, depending on insights Problem Space Our world as we perceive it (Sub)Domains Business Architecture Independent of Software Language is fluid Stable system, strategic changes @kenny_baas

Slide 64

Slide 64 text

64 @kenny_baas “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 65

Slide 65 text

No content

Slide 66

Slide 66 text

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

Slide 67

Slide 67 text

@kenny_baas Culture, Boundaries, Leadership

Slide 68

Slide 68 text

68 @kenny_baas

Slide 69

Slide 69 text

69 @kenny_baas Software Architect Socio-technical Architect -Nick tune

Slide 70

Slide 70 text

70 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 @kenny_baas

Slide 71

Slide 71 text

71 To achieve autonomous alignment, we need to stop thinking in terms of business and IT and start acting as an integrated team. @kenny_baas

Slide 72

Slide 72 text

72 To achieve autonomous alignment, we need to form a culture in interactions, in conscious dialogue and in decisions, by having rituals and marketplaces. @kenny_baas

Slide 73

Slide 73 text

73 To achieve autonomous alignment, we need to have an open modern culture with a leadership to match. @kenny_baas

Slide 74

Slide 74 text

@kenny_baas Hire an anthropologist

Slide 75

Slide 75 text

@kenny_baas #CatTax @kenny_baas Baasie.com xebia.com/blog/author/kbaas/ https://speakerdeck.com/baasie @kenny_baas https://www.agilealliance.org/resources/experience-reports/towards-autonomous-aligned-teams-with-domain-driven-design/