Sociotechnical DDD Nick Tune | @ntcoding Incremental Architecture - - PowerPoint PPT Presentation

sociotechnical ddd
SMART_READER_LITE
LIVE PREVIEW

Sociotechnical DDD Nick Tune | @ntcoding Incremental Architecture - - PowerPoint PPT Presentation

Sociotechnical DDD Nick Tune | @ntcoding Incremental Architecture is essential in a modern Agile development environment Allen Holub (@allenholub) ntcoding ACCELERATING INNOVATION CYCLES Look for Signals From Expects The


slide-1
SLIDE 1

Sociotechnical DDD

Nick Tune | @ntcoding
slide-2
SLIDE 2

ntcoding

Incremental Architecture is essential in a modern Agile development environment…


— Allen Holub (@allenholub)
slide-3
SLIDE 3 ntcoding

ACCELERATING INNOVATION CYCLES

The Market Expects

🤪📲

Great Customer Experience Enabled By

🏜

Software Architecture Developed By

崙 倫 陸  Engineering

Teams Look for Signals From

🌏

The Domain A Model Of Aligned With
slide-4
SLIDE 4

ntcoding

the key to incremental architecture is to build on a framework that can accommodate change… that framework is the domain.… By modeling the domain, you can more easily handle changes to the domain


— Allen Holub (@allenholub)
slide-5
SLIDE 5 ntcoding

“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

slide-6
SLIDE 6

ntcoding

[In our study at Thoughtworks we found] work takes an order of magnitude longer when it leaves a team.

— James Lewis (@boicy)
slide-7
SLIDE 7 ntcoding

SOCIOTECHNICAL DDD

🏜

崙 倫 陸 

Value

📲

Customer Experience Software Architecture The Organisation

🌏

The 5 Interconnected Elements The Domain
slide-8
SLIDE 8 ntcoding

AGENDA

  • The Costs of Coupling in Sociotechnical

Systems

  • Sociotechnical DDD Heuristics & Patterns
  • Large Scale Sociotechnical DDD
  • Sociotechnical Adaptation
  • Becoming a Sociotechnical Architect
slide-9
SLIDE 9

#1

The Cost of Coupling in Sociotechnical Systems

slide-10
SLIDE 10 ntcoding

Choosing when/where to add dependencies between components in a system is

  • n of the most fundamental

and key design challenges.

slide-11
SLIDE 11 Domain

LUXURY HOLIDAYS

slide-12
SLIDE 12 ntcoding

BONA FIDE GENERIC CONTEXTS

✉ ✉ ✉ ✉

slide-13
SLIDE 13 ntcoding

DEPENDENCY DECISION CRITERIA

Consumers have not lost any capabilities

✅ ✅ ✅ ✅

Consumers can focus on core areas Consumers not slowed by dependency Reduced duplication removes waste

slide-14
SLIDE 14 ntcoding Luxury Experiences

GOOD OR BAD REUSE?

Package Builder

💶 💶 💶

Mass Market Holidays Package Builder

💶

Luxury Experiences Mass Market Holidays

💶 💶 💶 💶

Package Builder
slide-15
SLIDE 15 ntcoding

DEPENDENCY DECISION CRITERIA

❌ Consumers have lost capabilities ❌ Consumers blocked waiting for features ❌ Political battles ❌ Perception of duplication was false

slide-16
SLIDE 16 ntcoding Luxury Experiences

DECEPTIVE REUSE CONTEXTS

Package Builder Core

💶 💶 💶

Mass Market Holidays Package Builder Supportive

💶

Luxury Experiences Mass Market Holidays

💶 💶 💶 💶

Package Builder

😮 👺 😃

slide-17
SLIDE 17 ntcoding

SHARED SERVICE CHECKLIST

  • 1. Will consumers lose any capabilities?
  • 2. Will consumers gain new capabilities?
  • 3. Can consumers focus more on their

strategic initiatives?

slide-18
SLIDE 18 ntcoding

SHARED SERVICE CHECKLIST

  • 4. Will consumers be slowed down by the

new dependency? 5.Will the shared service team be responsive?

  • 6. Will the number of consumers be

problematic?

slide-19
SLIDE 19 ntcoding

SHARED SERVICE CHECKLIST

  • 7. Will the cost of migration be excessive?
  • 8. Can consumers refuse to migrate?
  • 9. Will the shared service improve business

efficiency/eliminate waste?

slide-20
SLIDE 20

#2

Sociotechnical DDD Heuristics & Patterns

slide-21
SLIDE 21 Domain

FINANCIAL PRODUCTS

slide-22
SLIDE 22 ntcoding

PRODUCT-ALIGNED

Credit Cards Mortgages Loans
slide-23
SLIDE 23 ntcoding

SOCIOTECHNICAL DDD HEURISTIC

Model the Domain From Multiple Perspectives

slide-24
SLIDE 24

EVENT STORMING

slide-25
SLIDE 25 ntcoding

PRODUCTS VS CUSTOMER SEGMENTS

💱 Tier 1 Products 💱💱 Tier 2 Products 💱💱💱 Tier 3 Products Credit Cards Mortgages Loans
slide-26
SLIDE 26 ntcoding

SOCIOTECHNICAL DDD HEURISTIC

Strive to Align Software and Teams with Business Value Boundaries 
 (aka Core Domains)

slide-27
SLIDE 27 ntcoding

To design the optimal architecture, you need to know the business model.

slide-28
SLIDE 28 ntcoding

LEARN THE BUSINESS MODEL

slide-29
SLIDE 29 ntcoding

CORE, SUPPORTING, GENERIC DOMAINS

Tier 3 Products (core) Free Financial Advice (supportive) Payments (generic)
slide-30
SLIDE 30 ntcoding

SOCIOTECHNICAL DDD HEURISTIC

Balance Business Value Alignment with Domain Co-change

slide-31
SLIDE 31 ntcoding

HIGH CROSS-SERVICE CO-CHANGE

Tier 1 Service Tier 2 Service Tier 3 Service Domain Dependencies Become Organizational Bottlenecks
slide-32
SLIDE 32 ntcoding

SOCIOTECHNICAL DDD HEURISTIC

Understand the Social Impact of the Software Architecture

slide-33
SLIDE 33 ntcoding

ANTI-PATTERN: SELFISH SILOS

User Facing Team We’re always blocked! Stuck in the Middle Team We’re always blamed! Selfish Silo Team 🙊 Make up your mind agile hippies!

😢 😎

“Users? What are they?” User feedback
slide-34
SLIDE 34 ntcoding

THE PINK CHECK

Credit: Alberto Brandolini

Architecture facilitates:

✅ Purpose ✅ Autonomy ✅ Mastery

slide-35
SLIDE 35 ntcoding

SOCIOTECHNICAL DDD HEURISTIC

Map out the Politics

slide-36
SLIDE 36 ntcoding

ARCHITECTURE IS POLITICS

Enterprise IT Digital IT You want autonomous end-to-end teams? One manager is going to lose some of their power. UI API API UI API API

👹⚔ 🤵🛢

slide-37
SLIDE 37 https://medium.com/nick-tune-tech-strategy-blog/sociotechnical-design-variables-52b7048f7b62
slide-38
SLIDE 38 ntcoding

SOCIOTECHNICAL DDD HEURISTIC

Understand and Model the System at Different Levels

slide-39
SLIDE 39

#3

Large Scale Sociotechnical DDD

slide-40
SLIDE 40 ntcoding
slide-41
SLIDE 41 Domain

GROCERY SHOPPING

slide-42
SLIDE 42 ntcoding

LARGE SCALE PRODUCT ALIGNED

Physical Stores Online Shopping Mobile Shopping Bank
slide-43
SLIDE 43 Why do I need 4 separate logins??!!
slide-44
SLIDE 44 Why can’t I see my in- store, mobile, and web orders all in one place??!!
slide-45
SLIDE 45 Why can’t I use my in-store loyalty points online??!!
slide-46
SLIDE 46 ntcoding

LARGE SCALE CAPABILITY DUPLICATION

Physical Stores Online Shopping Mobile Shopping Bank Identity Orders Loyalty Identity Orders Loyalty Identity Orders Loyalty Identity Orders Loyalty
slide-47
SLIDE 47 ntcoding

LARGE SCALE CAPABILITY ALIGNED

Physical Stores Online Shopping Mobile Shopping Bank Identity Orders Loyalty
slide-48
SLIDE 48 ntcoding

PLATFORM ECOSYSTEM

Identity Orders Loyalty API Platform Experiences & Edge Services BFF BFF BFF

📲

🖦

slide-49
SLIDE 49 ntcoding

PRODUCTS VS CAPABILITIES

Products Optimised local user experience
 Single product innovation speed
 Minimal programme-level coordination and negotiation
 P&Ls Capabilities Seamless overall user experience
 Business model innovation speed High programme-level coordination and negotiation 
 Perceived cost centers Disclaimer: Lots of caveats here
slide-50
SLIDE 50 ntcoding

SOCIOTECHNICAL DDD HEURISTIC

Organise Large Scale Structure Around Domain Cohesion

slide-51
SLIDE 51 ntcoding

DOMAIN COHESION

Physical Stores Online Shopping Mobile Shopping Bank Identity Orders Loyalty Orders Orders Loyalty
slide-52
SLIDE 52 ntcoding

SOCIOTECHNICAL DDD HEURISTIC

Join data outside the domain to preclude sociotechnical coupling

slide-53
SLIDE 53 ntcoding

JOIN DATA OUTSIDE THE DOMAIN

Physical Store Orders Digital Orders

🖦

‘My Orders’ Page Data Warehouse

🖦

slide-54
SLIDE 54

#4

Sociotechnical Adaptation

slide-55
SLIDE 55 ntcoding

SOCIOTECHNICAL DDD HEURISTIC

Connections are just as important 
 as boundaries

slide-56
SLIDE 56 ntcoding

PERFECT BOUNDARIES!

Service A Sprint 1 Co-change Service B Service C
slide-57
SLIDE 57 ntcoding

DEPENDENCIES ADAPT AS BUSINESS CONTEXT CHANGES

Sprint 2 Co-change Service A Service B Service C

🔦

slide-58
SLIDE 58 ntcoding

Don’t force yourself to get boundaries right at the first

  • attempt. Make everybody a

stakeholder in the outcome.

slide-59
SLIDE 59 ntcoding

Build team fluidity and adaption into the DNA of your culture.

slide-60
SLIDE 60 ntcoding

CLASSIC SOCIOTECHNICAL DDD PATTERNS

Shared Kernel Customer Supplier Open Host Service Conformist OH SK C S

🤞

Relationship patterns from the book Anti- corruption Layer ACL
slide-61
SLIDE 61 ntcoding

REORG TO REMOVE DEPENDENCY

slide-62
SLIDE 62 ntcoding

BUILD RESILIENCE WITH ORG FLUIDITY

Sub-team 1 Sub-team 2 Sub-team 3 Sub-team 4 Static team lead Rotating developer Typically 1 developer rotates per-team per- month
slide-63
SLIDE 63 ntcoding

NTCODING.CO.UK/BLOG

slide-64
SLIDE 64

#5

Becoming a Sociotechnical Architect

slide-65
SLIDE 65 ntcoding

SOCIOTECHNICAL ARCHITECTS…

  • 1. Domain-driven
  • 2. Value-guided
  • 3. Socially-aware
  • 4. Technically-pragmatic
  • 5. CX-focused
slide-66
SLIDE 66 ntcoding

SOCIOTECHNICAL ARCHITECT TOOLBOX

  • 1. Event Storming
  • 2. Business Model Canvas
  • 3. The Pink Check
  • 4. Mob Programming
  • 5. User Research
slide-67
SLIDE 67 ntcoding

LET’S KEEP IN TOUCH…

ntcoding.co.uk/sociotechnical ntcoding.co.uk/blog ntcoding.co.uk/speaking

@ntcoding /in/ntcoding

DDD London Meetup @ddd_london