O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

Architecture for Flow w/ Wardley Mapping, Domain-Driven Design, and Team Topologies

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio

Confira estes a seguir

1 de 71 Anúncio

Architecture for Flow w/ Wardley Mapping, Domain-Driven Design, and Team Topologies

Baixar para ler offline

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

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

Anúncio
Anúncio

Mais Conteúdo rRelacionado

Semelhante a Architecture for Flow w/ Wardley Mapping, Domain-Driven Design, and Team Topologies (20)

Mais recentes (20)

Anúncio

Architecture for Flow w/ Wardley Mapping, Domain-Driven Design, and Team Topologies

  1. 1. Architecture for Flow w/ Wardley Mapping, DDD, Team Topologies Susanne Kaiser Independent Tech Consultant @suksr
  2. 2. Your local optimization Problem with Local Optimization @suksr
  3. 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. 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
  5. 5. Business-Strategy Software-Design/ -Architecture Team-Organization w/ Wardley Mapping w/ Domain-Driven Design w/ Team Topologies @suksr Three Perspectives to Build Adaptive Systems
  6. 6. Evolving a Legacy System Source: https://www.food-management.com @suksr
  7. 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
  8. 8. Value Chain Invisible Visible Evolution Genesis Custom-Built Product (+rental) Commodity (+utility) Position Movement Landscape @suksr Visualizing the Landscape w/ a Wardley Map
  9. 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. 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
  11. 11. 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 Landscape The Landscape of the Current State Identify users Identify user needs 1 2 @suksr
  12. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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 …
  23. 23. Stream-aligned team Fast flow of change @suksr Four Team Types of Team Topologies
  24. 24. Stream-aligned team Platform team Fast flow of change @suksr Four Team Types of Team Topologies
  25. 25. Stream-aligned team Platform team Enabling team Fast flow of change @suksr Four Team Types of Team Topologies
  26. 26. Stream-aligned team Platform team Enabling team Complicated subsystem team Fast flow of change @suksr Four Team Types of Team Topologies
  27. 27. Stream-aligned team Platform team Enabling team Complicated subsystem team Increasing autonomy Reducing cognitive load Fast flow of change @suksr Four Team Types of Team Topologies
  28. 28. Collaboration Rapid discovery @suksr Three Interaction Modes
  29. 29. Collaboration X-as-a-Service API Rapid discovery Predictable delivery @suksr Three Interaction Modes
  30. 30. Collaboration X-as-a-Service Facilitating API Rapid discovery Predictable delivery Active help @suksr Three Interaction Modes
  31. 31. Collaboration X-as-a-Service Facilitating Stream-aligned team Platform team Enabling team Complicated subsystem team API Team Topologies Promotes organizational effectiveness Applies Wardley’s Doctrinal Principles Doctrine @suksr
  32. 32. 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 BBoM Evolution Genesis Custom-Built Product (+rental) Commodity (+utility) Data Storage Message Broker Search Engine Compute VM Online School SMTP Server Architecture For Flow Finding suitable streams of change @suksr
  33. 33. 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 Problem Domain Student Understanding the problem domain and partitioning it into subdomains Finding suitable streams of change @suksr
  34. 34. Business Domain Needs Strategy Software Design @suksr Domain-Driven Design (DDD) Doctrine
  35. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
  55. 55. Backend team Infrastructure team New platform team Implementing Flow Optimization Assessing cloud migration strategies @suksr
  56. 56. Determining migration path Assessing cloud migration strategies Determining new platform Modifying underlying infrastructure Backend team Infrastructure team New platform team Value Chain Invisible Visible Genesis Custom-Built Product (+rental) Commodity (+utility) BBoM DBaaS MBaaS SEaaS Elastic Compute Online School SMTPaaS Replatfoming Implementing Flow Optimization @suksr
  57. 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. 58. Implementing Flow Optimization BBoM Online School Content Creation Class Mngmnt. Learning Support Student Evaluation Course Studies Notification H. Identity & Access Refactoring @suksr
  59. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
  69. 69. https://medium.com/wardleymaps https://learnwardleymapping.com/ https://github.com/wardley-maps- community/awesome-wardley-maps https://githup.com/ddd-crew https://www.dddheuristics.com Some References @suksr
  70. 70. If you are interested in more details ...
  71. 71. Susanne Kaiser Independent Tech Consultant @suksr susanne@susannekaiser.net

×