In a world of rapid changes and increasing uncertainties, organisations have to continuously adapt and evolve to remain competitive and excel in the market. In such a dynamic business landscape organisations need to design for adaptability.
Combining different perspectives and techniques from business strategy (Wardley Mapping), software architecture and design (Domain-Driven Design), and team organisation (Team Topologies) provides a powerful toolset to design, build and evolve adaptive systems and team structures for a fast flow of change.
This talk illustrates the concepts, connects the dots between these three perspectives, and demonstrates how these techniques help to evolve a fictitious legacy system for a fast flow of change.
The journey describes the approach to evolve:
* From functional silo teams to cross-functional autonomous stream-aligned teams and platform teams
* From a monolithic big ball of mud to a modular, loosely coupled system
* From running on-premises infrastructure to cloud-hosted services
3. “A system is more than the sum of its parts, it’s a product of their interactions.” *
“Until managers take into account the systemic nature of their organizations,
most of their efforts to improve their performance are doomed to failure.” *
*) Dr. Russell Ackoff
Your
system
Your
local
optimization
4. Challenges of Building Systems
Building the right thing Building the thing right
How aligned is
our solution to
business / user
needs?
Have we
understood
the
problem?
Do we share
the same
common
understanding?
How efficient
are our
engineering
practices?
How easy and
fast
can we
change and
adapt?
How fast
can we deliver
changes?
Effectiveness Efficiency
“Doing the wrong thing right is not nearly as good as doing the right thing wrong”
Dr. Russell Ackoff
@suksr
6. Evolving a Legacy System
Source: https://www.food-management.com
@suksr
7. BBoM
Data
Storage
Message
Broker
Search Engine
Compute
VM
Online School
SMTP
Server
Backend-Team
Infrastructure-Team
UI-Team
Handover
Handover
Functional
silo teams w/
handover
require high
communication
and coordination
effort between
teams
BBoM leads to
high cognitive
load
Messy model
and fuzzy
boundaries
create high
change coupling
No clear
ownership
boundaries
High amount
of effort to
understand
a piece of code
On-premises
infrastructure
requires high
operational
effort
Their Current Challenges
“Local optimization does not improve the performance of the whole.”
Dr. Russell Ackoff
Delivery
bottlenecks
impeding
software
delivery
performance
@suksr
9. Purpose
Landscape
Climate
Doctrine
Leadership Our Why
A map of the
competitive
environment
Universal applicable
principles regardless
of landscape
External forces
impacting
the landscape
Context dependent
strategic decisions
@suksr
The Strategy Cycle of Wardley Mapping
“A strategy cycle
is a represenation
of change and
how we need to
react to it.”
- Simon Wardley
10. Purpose
Landscape
Climate
Doctrine
Leadership Our Why
A map of the
competitive
environment
Universal applicable
principles regardless
of landscape
External forces
impacting
the landscape
Context dependent
strategic decisions
@suksr
The Strategy Cycle of Wardley Mapping
Providing high-quality education
for junior students everywhere
and help teachers to engage
with their students online.
Wardley Map
“A strategy cycle
is a represenation
of change and
how we need to
react to it.”
- Simon Wardley
12. Value
Chain
Invisible
Visible
Planning
Create
Teacher
Helping Evaluating Signup/Signin
Student
Students
Course Class Students
Content
BBoM
Data
Storage
Message
Broker
Search
Engine
Compute
Online School
SMTP
Server
Landscape
The Landscape of the Current State
Determine
dependencies
and position of
the components
in the
value chain
Identify
users
Identify
components
fulfilling
user needs
Identify
user
needs
1
2
3
4
3
Asking
for Help
Receiving
Evaluation
Feedback
Studying
Courses
@suksr
VM
13. Value
Chain
Invisible
Visible
Planning
Create
Teacher
Helping Evaluating Signup/Signin
Student
Students
Course Class Students
Content
BBoM
Data
Storage
Message
Broker
Search
Engine
Compute
VM
Online School
SMTP
Server
Landscape
The Landscape of the Current State
Identify
users
Identify
user
needs
1
2
Asking
for Help
Receiving
Evaluation
Feedback
Studying
Courses
@suksr
Determine
dependencies
and position of
the components
in the
value chain
Determine
stage of
evolution for
every
component
5
Identify
components
fulfilling
user needs
4
3
Invisible
Evolution
Genesis Custom-Built Product (+rental) Commodity (+utility)
14. Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Everything evolves
Past Current Future
Supply Competition
Demand Competition
Movement
@suksr
Climate
The Climatic Patterns (extract)
“Understanding
climatic patterns
is important when
anticipating
change.”
- Simon Wardley
15. Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Past Current Future
Characteristics change
Uncharted
Undefined market
Uncertain
Unpredictable
Rare
Poorly understood
Chaotic
Forming market
Learning on use
Increasing understanding
Slowly increasing
consumption
Rapid increases in learning
Domain of experts
Growing market
Learning on operation
Increasing education
Rapidly increasing
consumption
Rapid increase in use
Increasing expectation of use
Mature market
Known / accepted
Stable
Widespread and stabilising
Commonly understood
Ordered
Industrialised
Movement
@suksr
Climate
The Climatic Patterns (extract)
“Understanding
climatic patterns
is important when
anticipating
change.”
- Simon Wardley
16. Value
Chain
Invisible
Visible
Planning
Create
Teacher
Helping Evaluating Signup/Signin
Student
Students
Course Class Students
Content
Evolution
Genesis Custom-Built Product (+rental) Commodity (+utility)
Data Storage
Message
Broker
Search Engine
Compute
VM
SMTP
Server
Landscape
The Landscape of the Current State
Determine
dependencies
and position of
the components
in the
value chain
Determine
stage of
evolution for
every
component
5
Identify
users
Identify
components
fulfilling
user needs
Identify
user
needs
1
2
3
4
3
Asking
for Help
Receiving
Evaluation
Feedback
Studying
Courses
@suksr
BBoM
Uncharted Industrialised
17. Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
@suksr
Doctrine
Use appropriate methods
per evolution stage
Build in-house Agile
Applying Doctrinal Principles Universal
principles an
organization
should apply
to be able to
respond to
changes
18. Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
@suksr
Doctrine
Build in-house
Use/buy off-the-shelf product Lean
Agile
Use appropriate methods
per evolution stage
Applying Doctrinal Principles Universal
principles an
organization
should apply
to be able to
respond to
changes
19. Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
@suksr
Doctrine
Build in-house
Use/buy off-the-shelf product
Outsource to utility suppliers
Lean
Agile
Six Sigma
Use appropriate methods
per evolution stage
Applying Doctrinal Principles Universal
principles an
organization
should apply
to be able to
respond to
changes
20. Value
Chain
Invisible
Visible
Planning
Create
Teacher
Helping Evaluating Signup/Signin
Student
Students
Course Class Students
Content
Evolution
Genesis Custom-Built Product (+rental) Commodity (+utility)
Data Storage
Message
Broker
Search Engine
Compute
VM
SMTP
Server
Applying Doctrinal Principles
Asking
for Help
Receiving
Evaluation
Feedback
Studying
Courses
@suksr
BBoM
Build in-house / Agile
Use/buy off-the-shelf product / Lean
Outsource to utility suppliers / Six Sigma
Use
appropriate
methods
Doctrine
21. Value
Chain
Invisible
Visible
Planning
Create
Teacher
Helping Evaluating Signup/Signin
Student
Students
Course Class Students
Content
Evolution
Genesis Custom-Built Product (+rental) Commodity (+utility)
Data Storage
Message
Broker
Search Engine
Compute
VM
SMTP
Server
Applying Doctrinal Principles
Asking
for Help
Receiving
Evaluation
Feedback
Studying
Courses
@suksr
BBoM
Build in-house / Agile
Use/buy off-the-shelf product / Lean
Outsource to utility suppliers / Six Sigma
Use
appropriate
methods
Focus on
user needs
Know your
users
Know
the
details
Doctrine
Use a
common
language
Challenge
assumptions
22. restricting high, on-going
communication bandwidth
between teams
no handover between teams
cross-functional,
autonomous teams
small, long-lived teams
minimizing cognitive load team ownership
@suksr
To optimize for flow of change from a team perspective requires …
35. Analyse
&
Discover
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Distilling the problem
domain & discovering the
core domain
Core
Domain
Problem Domain
Strategic Design (Problem Space)
Supporting
Subdomain
Generic
Subdomain
@suksr
Problem
Space
Strategic
Design
DDD & Wardley Map
DDD & Wardley Map
36. Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Distilling the problem
domain & discovering the
core domain
Problem Domain
Competitive advantage
Complex
Changes often
Build in-house
@suksr
Analyse
&
Discover
Problem
Space
Strategic
Design
Build in-house
Use/buy off-the-shelf product
Outsource to utility suppliers
Core
Domain
Problem Domain
Supporting
Subdomain
Generic
Subdomain
Strategic Design (Problem Space)
DDD & Wardley Map
37. Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Distilling the problem
domain & discovering the
core domain
Competitive advantage
Complex
Changes often
Build in-house
No competitive advantage
Quite simple
Does not change often
Prefer to buy/use off-the-shelf
@suksr
Analyse
&
Discover
Problem
Space
Strategic
Design
Build in-house
Use/buy off-the-shelf product
Outsource to utility suppliers
Core
Domain
Supporting
Subdomain
Generic
Subdomain
Problem Domain
Strategic Design (Problem Space)
DDD & Wardley Map
38. Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Distilling the problem
domain & discovering the
core domain
Problem Domain
Competitive advantage
Complex
Changes often
Build in-house
No competitive advantage
Quite simple
Does not change often
Prefer to buy/use off-the-shelf
No competitive advantage
Generally complex
Does not change often
Buy/use off-the-shelf / outsource
@suksr
Analyse
&
Discover
Problem
Space
Strategic
Design
Build in-house
Use/buy off-the-shelf product
Outsource to utility suppliers
Core
Domain
Supporting
Subdomain
Generic
Subdomain
Strategic Design (Problem Space)
DDD & Wardley Map
39. Value
Chain
Invisible
Visible
Planning
Create
Teacher
Helping Evaluating Signup/Signin
Student
Asking
Students for Help
Course Class Students
Content
Receiving
Evaluation
Feedback
Studying
Courses
Architecture For Flow
Analyse
&
Discover
Problem
Space
Strategic
Design
Problem Domain Student
Partitioning
the Problem
Domain into
Subdomains
Discovering
the Core
Core
Differentiation high
Complexity high
Change Rate high
Ubiquity low
Strategic Investment high
Finding
suitable
streams
of change
@suksr
40. Value
Chain
Invisible
Visible
Planning
Create
Teacher
Helping Evaluating Signup/Signin
Student
Asking
Students for Help
Course Class Students
Content
Receiving
Evaluation
Feedback
Studying
Courses
Architecture For Flow
Analyse
&
Discover
Problem
Space
Strategic
Design
Problem Domain Student
Core Supporting
Differentiation high low
Complexity high low
Change Rate high low-medium
Ubiquity low medium
Strategic Investment high low-medium
Finding
suitable
streams
of change
@suksr
Discovering
the Core
Partitioning
the Problem
Domain into
Subdomains
41. Value
Chain
Invisible
Visible
Planning
Create
Teacher
Helping Evaluating Signup/Signin
Student
Asking
Students for Help
Course Class Students
Content
Receiving
Evaluation
Feedback
Studying
Courses
Architecture For Flow
Analyse
&
Discover
Problem
Space
Strategic
Design
Problem Domain Student
Core Supporting Generic
Differentiation high low low
Complexity high low medium-high
Change Rate high low-medium low
Ubiquity low medium high
Strategic Investment high low-medium low
Finding
suitable
streams
of change
@suksr
Discovering
the Core
Partitioning
the Problem
Domain into
Subdomains
42. Value
Chain
Invisible
Visible
Planning
Create
Teacher
Helping Evaluating Signup/Signin
Student
Asking
Students for Help
Course Class Students
Content
Receiving
Evaluation
Feedback
Studying
Courses
Evolution
Genesis Custom-Built Product (+rental) Commodity (+utility)
Architecture For Flow
Decompose
&
Map
Analyse
&
Discover
Problem
Space
Strategic
Design
Solution
Space
BBoM
Online School
Decomposing
the BBoM
into
Bounded
Contexts
Discovering
the
Core
Partitioning
the problem
domain into
subdomains
Finding
suitable
streams
of change
@suksr
43. Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Boundary Types
Problem Domain
Linguistic consistency
boundary
Ownership boundary
Physical boundary
Different architectural
and business logic
implementation patterns
per context possible
@suksr
Decompose
&
Map
Analyse
&
Discover
Problem
Space
Strategic
Design
Solution
Space
Supporting
Subdomain
Generic
Subdomain
Core
Domain
A bounded
context defines
where a single
domain model
can be applied
A bounded
context forms
a unit of
mastery,
purpose,
autonomy
Bounded Contexts
A bounded
context can
provide
different types
of boundaries
44. Value
Chain
Invisible
Visible
Planning
Create
Teacher
Helping Evaluating Signup/Signin
Student
Asking
Students for Help
Course Class Students
Content
Receiving
Evaluation
Feedback
Studying
Courses
Evolution
Genesis Custom-Built Product (+rental) Commodity (+utility)
Architecture For Flow
Decompose
&
Map
Analyse
&
Discover
Problem
Space
Strategic
Design
Solution
Space
Content
Creation
Class
Mngmnt.
Learning
Support
Student
Evaluation
Identity &
Access
Notification H.
Course
Studies
Discovering
the
Core
Partitioning
the problem
domain into
subdomains
Decompose
into
Bounded
Contexts
Finding
suitable
streams
of change
@suksr
Build in-house
Use/buy off-the-shelf product
Outsource to utility suppliers
Bounded Context
Core Domain
Supporting Subdomain
Generic Subdomain
45. Value
Chain
Invisible
Visible
Planning
Create
Teacher
Helping Evaluating Signup/Signin
Student
Asking
Students for Help
Course Class Students
Content
Receiving
Evaluation
Feedback
Studying
Courses
Evolution
Genesis Custom-Built Product (+rental) Commodity (+utility)
Architecture For Flow
Content
Creation
Class
Mngmnt.
Learning
Support
Student
Evaluation
Identity &
Access
Notification H.
Course
Studies
Find
suitable
team
boundaries
Bounded
Contexts as
team
boundaries for
stream-
aligned teams
Providing
purpose,
mastery,
autonomy
Discovering
the
Core
Partitioning
the problem
domain into
subdomains
Decompose
into
Bounded
Contexts
Finding
suitable
streams
of change
@suksr
46. Value
Chain
Invisible
Visible
Planning
Create
Teacher
Helping Evaluating Signup/Signin
Student
Asking
Students for Help
Course Class Students
Content
Receiving
Evaluation
Feedback
Studying
Courses
Evolution
Genesis Custom-Built Product (+rental) Commodity (+utility)
Architecture For Flow
Content
Creation
Class
Mngmnt.
Learning
Support
Student
Evaluation
Identity &
Access
Notification H.
Course
Studies
Find
suitable
team
boundaries
Bounded
Contexts as
team
boundaries for
stream-
aligned teams
Providing
purpose,
mastery,
autonomy
Optimize
for team
cognitive
load
Limit the
number, type,
size of
components
per team
Discovering
the
Core
Partitioning
the problem
domain into
subdomains
Decompose
into
Bounded
Contexts
Finding
suitable
streams
of change
@suksr
47. Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Rate of Change
Path to action
High Low
Clear
Unclear
Uncertainty
High Low
Novel
Practices
Emerging
Practices
Good
Practices
Best
Practices
High Low
Cognitive Load
Number and/or Size of Components a Single Team can handle
Architecture For Flow
Optimizing
Team
Cognitive
Load
Limit the
number, type,
size of
components
per team
@suksr
48. Value
Chain
Invisible
Visible
Planning
Create
Teacher
Helping Evaluating Signup/Signin
Student
Asking
Students for Help
Course Class Students
Content
Receiving
Evaluation
Feedback
Studying
Courses
Evolution
Genesis Custom-Built Product (+rental) Commodity (+utility)
Architecture For Flow
Content
Creation
Class
Mngmnt.
Learning
Support
Student
Evaluation
Identity &
Access
Notification H.
Course
Studies
Find
suitable
team
boundaries
Bounded
Contexts as
team
boundaries for
stream-
aligned teams
Providing
purpose,
mastery,
autonomy
Optimize
for team
cognitive
load
Create clear
ownership
boundaries
Limit the
number, type,
size of
components
per team
Discovering
the
Core
Partitioning
the problem
domain into
subdomains
Decompose
into
Bounded
Contexts
Finding
suitable
streams
of change
@suksr
49. Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Core Domain
Supporting Subdomain
Generic Subdomain
Build in-house
Use/buy off-the-shelf product
Outsource to utility suppliers
User
User need User need User need User need User need
Context Map Relationship
Clear
responsibility
boundaries
Bounded
contexts
assigned to
a single team
One team
can own
several
bounded
contexts
Bounded
contexts
not shared
across teams
@suksr
50. Value
Chain
Invisible
Visible
Planning
Create
Teacher
Helping Evaluating Signup/Signin
Student
Asking
Students for Help
Course Class Students
Content
Receiving
Evaluation
Feedback
Studying
Courses
Evolution
Genesis Custom-Built Product (+rental) Commodity (+utility)
Architecture For Flow
Content
Creation
Class
Mngmnt.
Learning
Support
Student
Evaluation
Identity &
Access
Notification H.
Course
Studies
& Scoring
Data Storage
Message
Broker
Search Engine
Compute
SMTP
Server
VM
Aim for
Thinnest
Viable
Platform
(TVP)
Identify
services
needed to
support reliable
flow of change
Services form
platform-as-
a-service
for stream-
aligned teams
Digital platform
with self-
service APIs,
tools, services,
knowledge,
support
Find
suitable
team
boundaries
Bounded
Contexts as
team
boundaries for
stream-
aligned teams
Providing
purpose,
mastery,
autonomy
Optimize
for team
cognitive
load
Create clear
ownership
boundaries
Limit the
number, type,
size of
components
per team
Finding
suitable
streams
of change
@suksr
Discovering
the
Core
Partitioning
the problem
domain into
subdomains
Decompose
into
Bounded
Contexts
51. Value
Chain
Invisible
Visible
Planning
Create
Teacher
Helping Evaluating Signup/Signin
Student
Asking
Students for Help
Course Class Students
Content
Receiving
Evaluation
Feedback
Studying
Courses
Evolution
Genesis Custom-Built Product (+rental) Commodity (+utility)
Architecture For Flow
Content
Creation
Class
Mngmnt.
Learning
Support
Student
Evaluation
Identity &
Access
Notification H.
Course
Studies
& Scoring
Data Storage
Message
Broker
Search Engine
Compute
SMTP
Server
VM
Aim for
Thinnest
Viable
Platform
(TVP)
Identify
services
needed to
support reliable
flow of change
Services form
platform-as-
a-service
for stream-
aligned teams
Digital platform
with self-
service APIs,
tools, services,
knowledge,
support
Finding
suitable
streams
of change
Find
suitable
team
boundaries
Bounded
Contexts as
team
boundaries for
stream-
aligned teams
Providing
purpose,
mastery,
autonomy
Optimize
for team
cognitive
load
Create clear
ownership
boundaries
Limit the
number, type,
size of
components
per team
Discovering
the
Core
Partitioning
the problem
domain into
subdomains
Decompose
into
Bounded
Contexts
Mind
dependencies &
communication
bandwidth
between
teams
Identify
Capability
Gaps
@suksr
52. Value
Chain
Invisible
Visible
Planning
Create
Teacher
Helping Evaluating Signup/Signin
Student
Asking
Students for Help
Course Class Students
Content
Receiving
Evaluation
Feedback
Studying
Courses
Evolution
Genesis Custom-Built Product (+rental) Commodity (+utility)
Architecture For Flow
Content
Creation
Class
Mngmnt.
Learning
Support
Student
Evaluation
Identity &
Access
Course
Studies
Data Storage
Message
Broker
Search E.
Compute
SMTP
Server
Stream-aligned
team 1
Stream-aligned
team 2
Stream-aligned
team 3
Notification H.
Stream-aligned
team 4
Platform team(s)
A
possible
team
constellation
VM
@suksr
53. Value
Chain
Invisible
Visible
Planning
Create
Teacher
Helping Evaluating Signup/Signin
Student
Asking
Students for Help
Course Class Students
Content
Receiving
Evaluation
Feedback
Studying
Courses
Evolution
Genesis Custom-Built Product (+rental) Commodity (+utility)
Architecture For Flow
Content
Creation
Class
Mngmnt.
Learning
Support
Student
Evaluation
Identity &
Access
Course
Studies
Data Storage
Message
Broker
Search E.
Compute
SMTP
Server
Notification H.
VM
Closing
potential
efficiency
gaps
@suksr
54. Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
BBoM
Data Storage
Message
Broker
Search Engine
Compute
VM
Online School
SMTP
Server
UI Team
Backend Team
Infrastructure Team
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
DBaaS
MBaaS
SEaaS
Serverless
Compute
SMTPaaS
IDPaaS
SA team 1 SA team 2
SA team 3
SA team 4 Platform team(s)
How to transition?
@suksr
57. Remaining
infrastructure team
Merged platform team
Previous platform team
Implementing Flow Optimization
Can split
later into
smaller
teams
Shares
previously
gained
cloud
knowledge
@suksr
58. Implementing Flow Optimization
BBoM
Online School
Content
Creation
Class
Mngmnt.
Learning
Support
Student
Evaluation
Course
Studies
Notification H.
Identity &
Access
Refactoring
@suksr
59. Backend team
Frontend team
Stream-aligned team 1
Starts the
refactoring
journey
Implementing Flow Optimization
BBoM
Online School
Content
Creation
Class
Mngmnt.
Learning
Support
Student
Evaluation
Course
Studies
Notification H.
Identity &
Access
Refactoring
@suksr
60. Stream-aligned team 1
Platform team
Stream-aligned team 1
Platform team API
Stream-aligned team 1
Platform team
Discover Establish Use
Close Collaboration
Limited Collaboration / Facilitating
X-As-A-Service
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
BBoM
DBaaS
MBaaS
SEaaS
Elastic
Compute
Online School
SMTPaaS
UI Team
Backend Team
Platform team
Stream-aligned team 1
Serverless
Compute
Refactoring
Implementing Flow Optimization
discover and
assess cloud
options for the
future bounded
context
occasional
on-demand
collaboration
and help
best practices,
standards,
tools, APIs
to easily
consume
cloud services
@suksr
61. Remaining backend team
Remaining frontend team
Stream-aligned team 2
Merged team
Stream-aligned team 3
Stream-aligned team 4
Implementing Flow Optimization
takes care
of the
remaining
monolith
as one team
splits into
stream-aligned
teams
@suksr
62. Genesis Custom-Built Product (+rental) Commodity (+utility)
DBaaS
MBaaS
SEaaS
Serverless
Compute
SMTPaaS
IDPaaS
SA team 1 SA team 2
SA team 3
SA team 4 Platform team
Refactoring
Stream-aligned team 2
Platform team
Stream-aligned team 3
Facilitating Facilitating
Stream-aligned team 1
Stream-aligned team 4
Facilitating
Stream-aligned team 1
Implementing Flow Optimization
@suksr
63. Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
BBoM
Data Storage
Message
Broker
Search Engine
Compute
VM
Online School
SMTP
Server
UI Team
Backend Team
Infrastructure Team
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
DBaaS
MBaaS
SEaaS
Serverless
Compute
SMTPaaS
IDPaaS
SA team 1 SA team 2
SA team 3
SA team 4 Platform team(s)
Functional
silo teams
w/ handover
High
communication
& coordination
effort between
teams
Team
Topologies
Restricted
communication
bandwidth
between
teams
What are we leaving behind? What are we adopting?
@suksr
64. Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
BBoM
Data Storage
Message
Broker
Search Engine
Compute
VM
Online School
SMTP
Server
UI Team
Backend Team
Infrastructure Team
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
DBaaS
MBaaS
SEaaS
Serverless
Compute
SMTPaaS
IDPaaS
SA team 1 SA team 2
SA team 3
SA team 4 Platform team(s)
Functional
silo teams
w/ handover
Monolithic big
ball of mud w/
messy model
and fuzzy
boundaries
No clear
ownership
boundaries
High
communication
& coordination
effort between
teams
Team
Topologies
Decomposed
system w/
clear models &
bounded
contexts
Clear team
ownership
boundaries
Restricted
communication
bandwidth
between
teams
What are we leaving behind? What are we adopting?
@suksr
65. Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
BBoM
Data Storage
Message
Broker
Search Engine
Compute
VM
Online School
SMTP
Server
UI Team
Backend Team
Infrastructure Team
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
DBaaS
MBaaS
SEaaS
Serverless
Compute
SMTPaaS
IDPaaS
SA team 1 SA team 2
SA team 3
SA team 4 Platform team(s)
Functional
silo teams
w/ handover
Monolithic big
ball of mud w/
messy model
and fuzzy
boundaries
No clear
ownership
boundaries
High
communication
& coordination
effort between
teams
Tight
change
coupling
High
team cognitve
load
Team
Topologies
Decomposed
system w/
clear models &
bounded
contexts
Clear team
ownership
boundaries
Restricted
communication
bandwidth
between
teams
Loosely
coupled
system
What are we leaving behind? What are we adopting?
Optimized
team cognitive
load
@suksr
66. Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
BBoM
Data Storage
Message
Broker
Search Engine
Compute
VM
Online School
SMTP
Server
UI Team
Backend Team
Infrastructure Team
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
DBaaS
MBaaS
SEaaS
Serverless
Compute
SMTPaaS
IDPaaS
SA team 1 SA team 2
SA team 3
SA team 4 Platform team(s)
Functional
silo teams
w/ handover
Monolithic big
ball of mud w/
messy model
and fuzzy
boundaries
No clear
ownership
boundaries
High
communication
& coordination
effort between
teams
Tight
change
coupling
High
team cognitve
load
High
operational
efforts due to
management
of on-premises
infrastructure
Delivery
bottlenecks
and impeded
software
delivery
performance
Team
Topologies
Decomposed
system w/
clear models &
bounded
contexts
Clear team
ownership
boundaries
Restricted
communication
bandwidth
between
teams
Loosely
coupled
system
What are we leaving behind? What are we adopting?
Optimized
team cognitive
load
Offloading
management
of infrastructure
components
to cloud
providers
Eliminating
delivery
bottlenecks
and increasing
software delivery
performance
@suksr
67. Key Takeaways
• Understanding the environment an organization is
operating & competing in
• Gaining domain knowledge & discovering the core
• Knowing what components to build, buy/use, or
outsource
• Decomposing the problem domain into modular
boundext contexts
• Aligning teams and evolving their interactions to
the system we build & the strategy we plan
Wardley Mapping Domain-Driven Design Team Topologies
@suksr
68. Key Takeaways
• Understanding the environment an organization is
operating & competing in
• Gaining domain knowledge & discovering the core
• Knowing what components to build, buy/use, or
outsource
• Decomposing the problem domain into modular
boundext contexts
• Aligning teams and evolving their interactions to
the system we build & the strategy we plan
• Identifying potential efficiency gaps
• Eliminating bottlenecks & increasing software
delivery performance
• Being able to respond to changes quickly
• Optimizing for a a fast flow of change with the
focus on improving the performance of a system as
a whole
Wardley Mapping Domain-Driven Design Team Topologies
@suksr