yow-adaptive-systems-2020
yow-adaptive-systems-2020
2005 2017
@suksr
Nokia N-Series Apple iPhone
2005 2007
@suksr
Competitors Actions And Inertia to Change
Success of old
cell phones
Past success
breeds inertia
Increasing
importance of
software
Full transition to
Smarthphones
@suksr
Constant Flow of Changes → Continuous Adaption Continuous Adaption
demands
@suksr
3 Perspectives to Build Adaptive Systems
@suksr
3 Perspectives to Build Adaptive Systems
@suksr
Business Strategy w/ Wardley Maps
Doctrine
Landscape
Climate
The Strategy Cycle
@suksr
Strategy Cycle
Purpose
Doctrine
Landscape
Climate
@suksr
Strategy Cycle
Purpose
A map of the
Doctrine competitive
environment
Landscape
Climate
@suksr
Wardley Maps – VALUE CHAIN
Landscape
Position
Invisible
@suksr
Wardley Maps – VALUE CHAIN
Landscape
Position
Invisible
@suksr
Wardley Maps – VALUE CHAIN
Landscape
@suksr
Wardley Maps – EVOLUTION STAGES
Landscape
Visible
Components along
evolution axes
Value Chain
Position
Invisible
Movement
Purpose
A map of the
Doctrine competitive
environment
Landscape
External forces
Climate
impacting
the landscape
@suksr
Climatic Patterns (extract)
Demand Competition Supply Competition
Visible Climate
Everything evolves
Value Chain
Movement
Movement
Uncharted Industrialised
Visible
Uncharted Industrialised
Visible
Uncharted Industrialised
Visible
Uncharted Industrialised
Visible
Increasing
importance of
software
@suksr
Climatic Patterns (extract)
Visible Climate
Past Current
Inertia can kill an organisation
Invisible
Purpose
Universal principles
applicable regardless
A map of the
of landscape
Doctrine competitive
environment
Landscape
External forces
Climate
impacting
the landscape
@suksr
Doctrinal Principles (extract) Doctrine
Visible
Visible
Visible
Value Chain
Challenge
Visible
assumptions
Value Chain
Invisible
Challenge
Visible
assumptions
Value Chain
Use a common
language
Invisible
Visible
Visible
Visible
Visible
Team 1
Team 3
Team 4
Team 2
Invisible
Pioneers
Value Chain
Team 1
Team 3
Team 4
Team 2
Invisible
Pioneers
Value Chain
Team 1 Settlers
Team 3
Team 4
Team 2
Invisible
Pioneers
Value Chain
Team 1 Settlers
Team 3
Town Planners
Team 4
Team 2
Invisible
Purpose
Universal applicable
principles regardless
A map of the
of landscape
Doctrine competitive
environment
Landscape
External forces
Climate
impacting
the landscape
@suksr
Leadership
Leadership (Gameplay)
Visible
Value Chain
Invisible
@suksr
Domain Driven Design (DDD)
Software Design
@suksr
Domain Driven Design (DDD)
Doctrine
Software Design
@suksr
Domain Driven Design (DDD) – Terminology
Strategic Design Problem Space
Tactical Design Solution Space
@suksr
Domain Driven Design Problem Domain
Collaboration
Domain Development
Experts Teams
Domain Knowledge
@suksr
DDD & Wardley Maps Problem Domain
DDD Patterns &
Practices
Strategic Design
Strategic Design Tactical Design
Visible
Value Chain
Tactical Design
Invisible
Analysing the
business
Value Chain
domain
Tactical Design
Discovering
Subdomains
Problem Space
Invisible
Decomposing
Decompose &
domain (Bounded
Contexts (BC))
Tactical Design
Discovering
Subdomains Mapping
interaction
Problem Space
patterns
between BC
(Context Maps)
Invisible
Solution Space
Design Decisions
Subdomains Mapping building blocks
interaction to implement
Problem Space domain model
patterns
between BC
Solution Space
(Context Maps)
Invisible
Solution Space
Problem Space
domain & discovering the
Core Generic
Subdomain
core subdomain
Strategic Design
Subdomain
Visible
Value Chain
Invisible
Problem Space
domain & discovering the
Core Generic
Subdomain
core subdomain
Strategic Design
Subdomain
Visible
Competitive advantage
Value Chain
Complex
Changes often
Build in-house
Build in-house
Use/buy off-the-shelf product
Outsource to utility suppliers
Invisible
Problem Space
domain & discovering the
Core Generic
Subdomain
core subdomain
Strategic Design
Subdomain
Visible
Build in-house
Use/buy off-the-shelf product
Outsource to utility suppliers
Invisible
Problem Space
domain & discovering the
Core Generic
Subdomain
core subdomain
Strategic Design
Visible
Subdomain
Build in-house
Use/buy off-the-shelf product
Outsource to utility suppliers
Invisible
Problem Space
abstracted by
Core Generic
Subdomain Domain Model
Strategic Design
Visible
Subdomain
Decompose &
Domain Development
Experts Teams
Invisible
Problem Space
Core
Generic Model integrity boundary
Subdomain
Strategic Design
Visible
Subdomain
Linguistic/semantic
boundary
Solution Space
Decompose &
Map
Ownership boundary
Value Chain
Physical boundary
Collaboration
Doctrine
Domain Development
Experts Teams
Challenge assumptions
Ubiquitous Language
@suksr
Strategic Design of DDD & Doctrinal Principles
Discovering the
Core
Collaboration Subdomain core subdomain
Doctrine
Domain Development
Experts Teams
Challenge assumptions
Ubiquitous Language
@suksr
Strategic Design of DDD & Doctrinal Principles
Discovering the
Core
Collaboration Subdomain core subdomain
Doctrine
Domain Development
Experts Teams Decomposing into modular
Challenge assumptions
components (Bounded Contexts)
Know the details
Domain Knowledge
Use a common language
@suksr
Strategic Design of DDD & Doctrinal Principles
Discovering the
Core
Collaboration Subdomain core subdomain
Doctrine
Domain Development
Experts Teams Decomposing into modular
Challenge assumptions
components (Bounded Contexts)
Know the details
Domain Knowledge
Use a common language
@suksr
DDD & Wardley Maps Speaker Organiser
STRATEGIC DESIGN (PROBLEM SPACE) Know your users &
focus on user needs
Problem Space
Strategic Design
Visible
Problem Space
Strategic Design
Visible
Decompose &
Map
Problem Space
Strategic Design
Visible
Decompose &
Map
CfP
Session
Speaker
Invisible
Problem Space
Strategic Design
Visible
Decompose &
Map
Session
Recipient
Open CfP CfP Evaluated Scheduled
Settings Session Session
Speaker Profile
Invisible
boundary
Decompose &
Map
Account
Recipient Handling
Open CfP CfP Evaluated Scheduled
Settings Session Session Messaging
boundary
Decompose &
Map
Submission Session
Handling Mngmnt. Evaluation Mngmnt. Handling
Invisible
boundary
Decompose &
Map
Submission Session
Handling Mngmnt. Evaluation Mngmnt. Handling
Physical boundary
Artefact
Data store
SCM
Invisible
CI/CD
Submission Session
Handling Mngmnt. Evaluation Mngmnt. Handling
Tactical Design
Architect &
Implement
Submission Session
Handling Mngmnt. Evaluation Mngmnt. Handling
Tactical Design
Architect &
Implement
Value Object
Visible
● Repository
Map
ApplicationService
Solution Space
Account
●
Event Schedule Messaging
Value Chain
Submission Session
Handling Mngmnt. Evaluation Mngmnt. Handling ● Domain Event
...
Tactical Design
●
Implement
Architect &
Invisible
Problem Space
Strategic Design
Visible
Session
Handling Mngmnt. Evaluation Mngmnt. Handling
- or -
Tactical Design
- or -
Invisible
Movement
Problem Space
Outsource to utility suppliers
Strategic Design Submit Manage Evaluate Build & Publish Communicate Signup/Signin
Visible
ID Provider
Value Chain
Search Engine
Data Storage
Infrastructure
Message
Broker
Compute
Invisible
Platform
VM
Problem Space
Outsource to utility suppliers
Strategic Design Submit Manage Evaluate Build & Publish Communicate Signup/Signin
Visible
Doctrine
Search Engine
Data Storage
Infrastructure
Message
Broker
Compute
Invisible
Platform
VM
Problem Space
Outsource to utility suppliers
Strategic Design Submit Manage Evaluate Build & Publish Communicate Signup/Signin
Visible
Doctrine
Search Engine
Message
Broker
Team 5
Team 4
Compute
Invisible
Platform
VM
Problem Space
Outsource to utility suppliers
Strategic Design Submit Manage Evaluate Build & Publish Communicate Signup/Signin
Visible
Doctrine
No single culture
Search Engine
Message
Broker
Team 5
Team 4
Compute
Invisible
@suksr
Team Topologies
@suksr
Linear sequence w/ functional silos not optimized for flow
Handover Handover
@suksr
To optimize for flow of change requires ...
cross-functional,
no handover between teams
autonomous teams
@suksr
Four Team Types
Stream-aligned
team
@suksr
Four Team Types
Stream-aligned Platform
team team
@suksr
Four Team Types
@suksr
Four Team Types
@suksr
Four Team Types
Fast flow
of change
Increasing autonomy
Reducing cognitive load
@suksr
Three Interaction Types
Collaboration
Rapid discovery
@suksr
Three Interaction Types
API
Collaboration X-as-a-Service
@suksr
Three Interaction Types
API
@suksr
Intermittent Interactions between Team Types
Platform-as-a-Service
Component-as-a-Service
API
@suksr
Stream-aligned team Platform team
Team Topologies & Doctrine
Doctrine
Optimize flow
Collaboration X-as-a-Service
Provide purpose,
mastery & autonomy
API
Facilitating Design for constant evolution
@suksr
Speaker Organiser
TT & DDD & Wardley Maps Build in-house
Use/buy off-the-shelf product
Core Supporting Generic
Problem Space
Outsource to utility suppliers
Strategic Design Submit Manage Evaluate Build & Publish Communicate Signup/Signin
Visible
ID Provider
Value Chain
Stream-aligned
Team 3
Data Storage
Infrastructure
Search
Message Engine
Stream-aligned Stream-aligned
Broker Platform
Team 1 Team 2
Team 2
Platform
Team 1 Compute
Invisible
Platform
VM
Problem Space
Outsource to utility suppliers
Strategic Design Submit Manage Evaluate Build & Publish Communicate Signup/Signin
Visible
Move to
Value Chain
Stream-aligned ID Provider
Team 3 Cloud/Serverless
Infrastructure
Search
Message Engine Data Storage
Stream-aligned Stream-aligned
Broker Platform
Team 1 Team 2
Team 2
Platform
Team 1 Compute
Invisible
Platform
VM
Platform
Team 2
@suksr
Possible Evolution of Team Topologies
Platform
Team
Platform Stream-aligned
Cloud
Team 1 Team 3
Platform Discover
Team 2 Close
Collaboration
@suksr
Possible Evolution of Team Topologies
Platform Platform
Team Team
Platform Stream-aligned Stream-aligned
Cloud Cloud
Team 1 Team 3 Team 3
@suksr
Possible Evolution of Team Topologies
Platform Platform Platform
Team Team Team
Platform Stream-aligned Stream-aligned Stream-aligned
Cloud Cloud Cloud
Team 1 Team 3 Team 3 Team 3
API
Platform Discover Establish Use
X-as-a-Service
Team 2 Close Limited
Collaboration Collaboration
@suksr
Possible Evolution of Team Topologies
Platform Platform Platform
Team Team Team
Platform Stream-aligned Stream-aligned Stream-aligned
Cloud Cloud Cloud
Team 1 Team 3 Team 3 Team 3
API
Platform Discover Establish Use
X-as-a-Service
Team 2 Close Limited
Collaboration Collaboration
Platform Stream-aligned
Team Team 1
Cloud
Facilitating
Stream-aligned
Team 2
@suksr
Possible Evolution of Team Topologies
Platform Platform Platform
Team Team Team
Platform Stream-aligned Stream-aligned Stream-aligned
Cloud Cloud Cloud
Team 1 Team 3 Team 3 Team 3
API
Platform Discover Establish Use
X-as-a-Service
Team 2 Close Limited
Collaboration Collaboration
Platform Stream-aligned
Team Team 1
Cloud
Facilitating
Stream-aligned
Team 2
Stream-aligned Stream-aligned
Team 3 Team 1
Facilitating
Stream-aligned
Team 2 @suksr
DDD & Wardley Maps Speaker Organiser
Build in-house
Use/buy off-the-shelf product
Outsource to utility suppliers
Core Supporting Generic
Problem Space
Strategic Design
Visible
Session
Handling Mngmnt. Evaluation Mngmnt. Handling
Cognito
Tactical D.
API Gateway
Infrastructure
Problem Space
Strategic Design
Visible
Platform
Team Cloud
Solution Space
Session
Handling Mngmnt. Evaluation Mngmnt. Handling
Cognito
Tactical D.
API Gateway
Infrastructure
@suksr
Some References
https://medium.com/wardleymaps
https://learnwardleymapping.com/
https://github.com/wardley-maps-community/awesome-
wardley-maps
Susanne Kaiser
Independent Tech Consultant
@suksr
[email protected]