SlideShare une entreprise Scribd logo
1  sur  39
Icebergs, Bathtubs & Flows
Applying Systems Thinking to Software Architecture
Matt McLarty, Global Leader of API Strategy at MuleSoft, a Salesforce company
@mattmclartybc
Inspiration
Software architecture
…is a study in dealing with complexity
Functional Operational Organizational
What is “systems thinking”?
• A conceptual approach to problem
solving that considers the behaviour,
structure, and interconnected parts of
the complex systems within which the
problem occurs
• Related to systems theory, systems
engineering, system dynamics, and
chaos theory
Thinking in Systems
• A system is greater than the sum of its parts
• A system cannot be controlled
• Systems can be understood and influenced
“Systems fool us by presenting themselves—or
we fool ourselves by seeing the world—as a
series of events.”
Donella “Dana” Meadows
http://donellameadows.org/donella-meadows-legacy/danas-writing/
Stocks & flows
Stock
Flows
Time graphs
Feedback loops
Balancing Loops Reinforcing Loops
Delays and oscillations
System dynamics
From https://thesystemsthinker.com/step-by-step-stocks-and-flows-converting-from-causal-loop-diagrams/
Understanding systems
• Events show that there is a systemWhat?
• Patterns show its behaviourHow?
• Structure begins to show its purposeWhy?
Iceberg model
Event
Pattern
Structure
Mental Model
System boundaries
• All system boundaries are artificial
• If they are set too small, they are error prone
• If they are set too large, they are difficult to analyze
• Boundaries should change over time as the problem changes
“Where to draw a boundary around a system
depends on the purpose of the discussion.”
Highly-functioning systems
Resilience
• The ability of the system to maintain its purpose through destabilizing events
• Balancing loops for balancing loops
Self-organization
• The ability of subsystems to change themselves
• How the system makes itself more complex
Hierarchy
• Not about power structures
• About abstraction to simplify communication between components
• “Stable intermediate forms”
System archetypes
Policy
resistance
Tragedy of the
commons
Drift to low
performance
Escalation
Success to the
successful
Addiction Rule beating
Seeking the
wrong goal
Leverage points
Improving the information flow
Changing rules and authority
Increasing self-organization
Changing goals and purpose
Shifting the paradigm
The Fifth Discipline
Learning Organization
Generative
Conversation
Aspiration
Understanding
Complexity
Personal Mastery
Shared Vision
Mental Models
Team Learning
Systems Thinking
The Art of Systems Architecting
• Analysis of different types of systems, including
software systems and collaborative systems
• Applies heuristics and design progression
“It is the system, not the software inside, the
client wishes to acquire.”
“The greatest leverage in system architecting is
at the interfaces.”
https://sdincose.org/wp-content/uploads/2017/10/TheArtOfSystemsEngineering_inaugural.pdf
Applying systems thinking
…to software architecture…
Software systems
Software systems
…are sociotechnical systems
What is software?
Software is a digital projection of human intentions
Software architecture should focus on aligning
those intentions toward a common goal
System archetype: “addiction”
Shifting the burden to the intervenor
“Addiction is finding a quick and dirty solution to the symptom of
the problem, which prevents or distracts one from the harder and
longer-term task of solving the real problem”
In software systems, this is “silver bullet” syndrome
Architectural leverage points
1. Transcending paradigms
2. Shifting the paradigm
3. Changing goals and purpose
4. Increasing self-organization
5. Changing rules and authority
6. Improving information flows
7. Limiting reinforcing feedback loops
8. Strengthening balancing feedback loops
9. Shortening delays
10. Optimizing stock-and-flow structures
11. Buffering stabilizing stocks relative to flows
12. Applying constants and parameters
Lots of time spent here…
…should be spent here!
Highly-functioning IT
Brittle monoliths Resilient microservices
Siloed organizations
Self-organizing,
cross-functional teams
Horizontally-tiered
applications
Hierarchical domains, APIs
Stable intermediate forms
“Minimum viable product” approach
Leverage points scenario
ST3, Inc. – A diversified, multinational enterprise
• For consistency, enterprise architecture has issued a standard to use
DDD and API-fronted microservices for all development
• Product teams slow in adopting, complaining that this is a bottleneck
• EA has tried to fix with…
• Architecture review process, escalation to CIO
• Enterprise API design specification, with automated compliance checking
• Development of enterprise domain taxonomy
System Archetype:
“Policy resistance”
“When various actors try to pull a system stock toward various goals,
the result can be policy resistance. Any new policy, especially if it’s
effective, just pulls the stock farther from the goals of other actors and
produces additional resistance, with a result that no one likes, but that
everyone expends considerable effort in maintaining.”
AKA Newton’s Third Law of Systems
Using leverage points
“People deeply involved in a system often
know intuitively where to find leverage
points, more often than not they push the
change in the wrong direction.”
Using leverage points
1. Transcending paradigms
2. Shifting the paradigm
3. Changing goals and purpose
4. Increasing self-organization
5. Changing rules and authority
6. Improving information flows
7. Limiting reinforcing feedback loops
8. Strengthening balancing feedback loops
9. Shortening delays
10. Optimizing stock-and-flow structures
11. Buffering stabilizing stocks relative to flows
12. Applying constants and parameters
Tried to impose new structure
Levered rules in the wrong direction
Reduced team autonomy
Using leverage points
• Communicate the mission; provide education and tooling on DDD
concepts, practical microservices principles, and API designImprove information flow
• Relax standards to focus on interoperability concerns, introduce
optional guidelines, change review process to consultationChange rules and authority
• Create a community of practice where individuals from product
teams can provide input to standards and guidelinesIncrease self-organization
• Elevate the purpose from "consistency" to goals that help product
teams: delivery speed, reduced coordination, technical debt removalChange goals and purpose
• Redefine product team's perception of enterprise architecture as an
ivory tower cost center to a thoughtful and helpful change agencyShift the paradigm
System dynamics scenario
ST3, Inc. – A diversified, multinational enterprise
• IT organization struggling to keep pace with customer needs
• Product backlogs growing, delivery velocity slowing, releases failing
• Have tried to fix with…
• More thorough release reviews
• Automated testing to allow for more features per release
• Most experienced resources assigned to all major releases
Iceberg model: ST3 software delivery
• Latest software release failed and could
not be backed out
Event
• 3 of last 4 major releases failed,
prolonged recovery
Pattern
• Releases happen less
frequently, with more
features in each one
Structure
• Lack of trust in
production changes
Mental Model
System dynamics: ST3 software delivery
Features in
Release
Release
Failure Rate
Release
Complexity
Perceived Risk of
Production Changes
Depth of
Release Review
Features in
Production
Product
Backlog
Customer
Satisfaction
Production
Releases
Lack of Trust in
Production Changes
Operating
Costs
Product
Revenue
Cost per
Feature
Active Monthly
Users
R
System dynamics: ST3 software delivery
Features in
Release
Release
Failure Rate
Release
Complexity
Pressure to reduce
release size
Release Size
Assessment
Features in
Production
Product
Backlog
Customer
Satisfaction
Production
Releases
Lack of Trust in Big
Production Changes
Operating
Costs
Product
Revenue
Cost per
Feature
Active Monthly
Users
Release
Frequency
R
Perception of minimum
viable release
Where to apply systems thinking
• Not everywhere!
• Systemic issues
• Issues that won’t go away
• Issues that get worse the more you try to fix them
• “Paradigm shifting” changes in technology or approach
For more information…
• http://donellameadows.org/Donalla Meadows resources
• https://www.crcpress.com/The-Art-of-Systems-
Architecting/Maier/p/book/9781420079135Rechtin & Maier book
• https://www.solonline.org/Peter Senge & SoL
• https://thesystemsthinker.com/Systems Thinker website
• https://twitter.com/ArchiThinkeryFollow @archithinkery
What’s with the t-shirt?
TechLit Africa is a non-profit
organization that helps African
students learn the web by
setting up labs in schools that
have no internet access.
Site: https://techlitafrica.org
Donate: https://www.gofundme.com/building-computer-labs-in-african-schools
Hear Nelly Cheboi’s story on the Software Engineering Daily podcast here:
https://softwareengineeringdaily.com/2019/05/20/emergingmarkets-kenya-with-nelly-cheboi/
Applying Systems Thinking to Software Architecture

Contenu connexe

Tendances

Building Business & IT Architecture Roadmaps with ArchiMate & TOGAF
Building Business & IT Architecture Roadmaps with ArchiMate & TOGAFBuilding Business & IT Architecture Roadmaps with ArchiMate & TOGAF
Building Business & IT Architecture Roadmaps with ArchiMate & TOGAFCorso
 
Enterprise Architecture, Project Management & Digital Transformation
Enterprise Architecture, Project Management & Digital TransformationEnterprise Architecture, Project Management & Digital Transformation
Enterprise Architecture, Project Management & Digital TransformationRiaz A. Khan, OpenCA, TOGAF
 
Value Driven Development by Dave Thomas
Value Driven Development by Dave Thomas Value Driven Development by Dave Thomas
Value Driven Development by Dave Thomas Naresh Jain
 
IT Strategy Framework
IT Strategy FrameworkIT Strategy Framework
IT Strategy FrameworkVishal Sharma
 
IT4IT - The Full Story for Digital Transformation - Part 2
IT4IT - The Full Story for Digital Transformation - Part 2IT4IT - The Full Story for Digital Transformation - Part 2
IT4IT - The Full Story for Digital Transformation - Part 2Mohamed Zakarya Abdelgawad
 
Process Oriented Architecture
Process Oriented ArchitectureProcess Oriented Architecture
Process Oriented ArchitectureAlan McSweeney
 
Information Asset Registers: A Short Guide
Information Asset Registers: A Short GuideInformation Asset Registers: A Short Guide
Information Asset Registers: A Short GuideJanet Brimson
 
Functional point analysis
Functional point analysisFunctional point analysis
Functional point analysisDestinationQA
 
Business Focused IT Strategy
Business Focused IT StrategyBusiness Focused IT Strategy
Business Focused IT Strategymuhammadsjameel
 
Enterprise Architecture - TOGAF Overview
Enterprise Architecture - TOGAF OverviewEnterprise Architecture - TOGAF Overview
Enterprise Architecture - TOGAF OverviewMohamed Sami El-Tahawy
 
Enterprise Architecture & Project Portfolio Management 2/2
Enterprise Architecture & Project Portfolio Management 2/2Enterprise Architecture & Project Portfolio Management 2/2
Enterprise Architecture & Project Portfolio Management 2/2Jean Gehring
 
IT4IT™ - Managing the Business of IT
IT4IT™ - Managing the Business of ITIT4IT™ - Managing the Business of IT
IT4IT™ - Managing the Business of ITThe Open Group SA
 
A guide for the rolling out of a software delivery project
A guide for the rolling out of a software delivery projectA guide for the rolling out of a software delivery project
A guide for the rolling out of a software delivery projectProject Management Solutions
 
Designing Enhanced Supervision for the Evolving Wealth Management Ecosystem
Designing Enhanced Supervision for the Evolving Wealth Management EcosystemDesigning Enhanced Supervision for the Evolving Wealth Management Ecosystem
Designing Enhanced Supervision for the Evolving Wealth Management Ecosystemaccenture
 
Book extracts: An Enterprise Architecture Development Framework
Book extracts: An Enterprise Architecture Development FrameworkBook extracts: An Enterprise Architecture Development Framework
Book extracts: An Enterprise Architecture Development FrameworkAdrian Grigoriu
 
Business Rules Framework
Business Rules FrameworkBusiness Rules Framework
Business Rules Frameworkjoedigiovanni
 

Tendances (20)

Building Business & IT Architecture Roadmaps with ArchiMate & TOGAF
Building Business & IT Architecture Roadmaps with ArchiMate & TOGAFBuilding Business & IT Architecture Roadmaps with ArchiMate & TOGAF
Building Business & IT Architecture Roadmaps with ArchiMate & TOGAF
 
Enterprise Architecture, Project Management & Digital Transformation
Enterprise Architecture, Project Management & Digital TransformationEnterprise Architecture, Project Management & Digital Transformation
Enterprise Architecture, Project Management & Digital Transformation
 
Value Driven Development by Dave Thomas
Value Driven Development by Dave Thomas Value Driven Development by Dave Thomas
Value Driven Development by Dave Thomas
 
Strategic Operating Model
Strategic Operating Model Strategic Operating Model
Strategic Operating Model
 
IT Strategy Framework
IT Strategy FrameworkIT Strategy Framework
IT Strategy Framework
 
IT4IT - The Full Story for Digital Transformation - Part 2
IT4IT - The Full Story for Digital Transformation - Part 2IT4IT - The Full Story for Digital Transformation - Part 2
IT4IT - The Full Story for Digital Transformation - Part 2
 
Process Oriented Architecture
Process Oriented ArchitectureProcess Oriented Architecture
Process Oriented Architecture
 
Information Asset Registers: A Short Guide
Information Asset Registers: A Short GuideInformation Asset Registers: A Short Guide
Information Asset Registers: A Short Guide
 
Functional point analysis
Functional point analysisFunctional point analysis
Functional point analysis
 
Business Focused IT Strategy
Business Focused IT StrategyBusiness Focused IT Strategy
Business Focused IT Strategy
 
Enterprise Architecture - TOGAF Overview
Enterprise Architecture - TOGAF OverviewEnterprise Architecture - TOGAF Overview
Enterprise Architecture - TOGAF Overview
 
Enterprise Architecture & Project Portfolio Management 2/2
Enterprise Architecture & Project Portfolio Management 2/2Enterprise Architecture & Project Portfolio Management 2/2
Enterprise Architecture & Project Portfolio Management 2/2
 
IT4IT™ - Managing the Business of IT
IT4IT™ - Managing the Business of ITIT4IT™ - Managing the Business of IT
IT4IT™ - Managing the Business of IT
 
A guide for the rolling out of a software delivery project
A guide for the rolling out of a software delivery projectA guide for the rolling out of a software delivery project
A guide for the rolling out of a software delivery project
 
Designing Enhanced Supervision for the Evolving Wealth Management Ecosystem
Designing Enhanced Supervision for the Evolving Wealth Management EcosystemDesigning Enhanced Supervision for the Evolving Wealth Management Ecosystem
Designing Enhanced Supervision for the Evolving Wealth Management Ecosystem
 
Book extracts: An Enterprise Architecture Development Framework
Book extracts: An Enterprise Architecture Development FrameworkBook extracts: An Enterprise Architecture Development Framework
Book extracts: An Enterprise Architecture Development Framework
 
What is an operating model
What is an operating modelWhat is an operating model
What is an operating model
 
Fraud and Risk in Big Data
Fraud and Risk in Big DataFraud and Risk in Big Data
Fraud and Risk in Big Data
 
Business Rules Framework
Business Rules FrameworkBusiness Rules Framework
Business Rules Framework
 
Chapter 1: Professional Issues in Software Engineering
Chapter 1: Professional Issues in Software Engineering  Chapter 1: Professional Issues in Software Engineering
Chapter 1: Professional Issues in Software Engineering
 

Similaire à Applying Systems Thinking to Software Architecture

System_Analysis_and_Design_Assignment_New2.ppt
System_Analysis_and_Design_Assignment_New2.pptSystem_Analysis_and_Design_Assignment_New2.ppt
System_Analysis_and_Design_Assignment_New2.pptMarissaPedragosa
 
CS 414 (IT Project Management)
CS 414 (IT Project Management)CS 414 (IT Project Management)
CS 414 (IT Project Management)raszky
 
System Analysis and Design Project documentation
System Analysis and Design Project documentationSystem Analysis and Design Project documentation
System Analysis and Design Project documentationMAHERMOHAMED27
 
Large Scale Scrum: More with LeSS
Large Scale Scrum: More with LeSSLarge Scale Scrum: More with LeSS
Large Scale Scrum: More with LeSSRam Srinivasan, CST
 
Alternative Methodologies for Systems Development
Alternative Methodologies for Systems Development Alternative Methodologies for Systems Development
Alternative Methodologies for Systems Development Sunderland City Council
 
PLANNING PHASE(1).pdf and designing phases
PLANNING PHASE(1).pdf and designing phasesPLANNING PHASE(1).pdf and designing phases
PLANNING PHASE(1).pdf and designing phaseshamdiabdrhman
 
System development life cycle
System development life cycleSystem development life cycle
System development life cyclerelekarsushant
 
Security, Administration & Governance for SharePoint On-Prem, Online, & Every...
Security, Administration & Governance for SharePoint On-Prem, Online, & Every...Security, Administration & Governance for SharePoint On-Prem, Online, & Every...
Security, Administration & Governance for SharePoint On-Prem, Online, & Every...Christian Buckley
 
System engineering analysis and design
System engineering analysis and designSystem engineering analysis and design
System engineering analysis and designDr. Vardhan choubey
 
SAD Reviewer
SAD ReviewerSAD Reviewer
SAD Reviewerermell61
 
META for Microservices: Getting your enterprise migration in motion
META for Microservices: Getting your enterprise migration in motionMETA for Microservices: Getting your enterprise migration in motion
META for Microservices: Getting your enterprise migration in motionMatt McLarty
 
System Modeling & Simulation Introduction
System Modeling & Simulation  IntroductionSystem Modeling & Simulation  Introduction
System Modeling & Simulation IntroductionSharmilaChidaravalli
 

Similaire à Applying Systems Thinking to Software Architecture (20)

System_Analysis_and_Design_Assignment_New2.ppt
System_Analysis_and_Design_Assignment_New2.pptSystem_Analysis_and_Design_Assignment_New2.ppt
System_Analysis_and_Design_Assignment_New2.ppt
 
CS 414 (IT Project Management)
CS 414 (IT Project Management)CS 414 (IT Project Management)
CS 414 (IT Project Management)
 
Presentation2
Presentation2Presentation2
Presentation2
 
System Analysis and Design Project documentation
System Analysis and Design Project documentationSystem Analysis and Design Project documentation
System Analysis and Design Project documentation
 
Concepts of information system
Concepts of information systemConcepts of information system
Concepts of information system
 
SDLC
SDLCSDLC
SDLC
 
Large Scale Scrum: More with LeSS
Large Scale Scrum: More with LeSSLarge Scale Scrum: More with LeSS
Large Scale Scrum: More with LeSS
 
Alternative Methodologies for Systems Development
Alternative Methodologies for Systems Development Alternative Methodologies for Systems Development
Alternative Methodologies for Systems Development
 
PLANNING PHASE(1).pdf and designing phases
PLANNING PHASE(1).pdf and designing phasesPLANNING PHASE(1).pdf and designing phases
PLANNING PHASE(1).pdf and designing phases
 
Ch12
Ch12Ch12
Ch12
 
Building an Information System
Building an Information SystemBuilding an Information System
Building an Information System
 
System development life cycle
System development life cycleSystem development life cycle
System development life cycle
 
Bsa 411 preview full class
Bsa 411 preview full classBsa 411 preview full class
Bsa 411 preview full class
 
Security, Administration & Governance for SharePoint On-Prem, Online, & Every...
Security, Administration & Governance for SharePoint On-Prem, Online, & Every...Security, Administration & Governance for SharePoint On-Prem, Online, & Every...
Security, Administration & Governance for SharePoint On-Prem, Online, & Every...
 
System engineering analysis and design
System engineering analysis and designSystem engineering analysis and design
System engineering analysis and design
 
Mis chapter 8
Mis chapter 8Mis chapter 8
Mis chapter 8
 
Chapter01 1
Chapter01 1Chapter01 1
Chapter01 1
 
SAD Reviewer
SAD ReviewerSAD Reviewer
SAD Reviewer
 
META for Microservices: Getting your enterprise migration in motion
META for Microservices: Getting your enterprise migration in motionMETA for Microservices: Getting your enterprise migration in motion
META for Microservices: Getting your enterprise migration in motion
 
System Modeling & Simulation Introduction
System Modeling & Simulation  IntroductionSystem Modeling & Simulation  Introduction
System Modeling & Simulation Introduction
 

Plus de Matt McLarty

A Visual Language for Systems Integration
A Visual Language for Systems IntegrationA Visual Language for Systems Integration
A Visual Language for Systems IntegrationMatt McLarty
 
Composable data for the composable enterprise
Composable data for the composable enterpriseComposable data for the composable enterprise
Composable data for the composable enterpriseMatt McLarty
 
Value Networks in Open Banking
Value Networks in Open BankingValue Networks in Open Banking
Value Networks in Open BankingMatt McLarty
 
Mapping API business models through value exchange
Mapping API business models through value exchangeMapping API business models through value exchange
Mapping API business models through value exchangeMatt McLarty
 
Overcoming RESTlessness
Overcoming RESTlessnessOvercoming RESTlessness
Overcoming RESTlessnessMatt McLarty
 
How to Execute a Successful API Strategy
How to Execute a Successful API StrategyHow to Execute a Successful API Strategy
How to Execute a Successful API StrategyMatt McLarty
 
Microservices: 5 Years In
Microservices: 5 Years InMicroservices: 5 Years In
Microservices: 5 Years InMatt McLarty
 
How to Execute a Successful API Strategy
How to Execute a Successful API StrategyHow to Execute a Successful API Strategy
How to Execute a Successful API StrategyMatt McLarty
 
Design-Based Microservices AKA Planes, Trains & Automobiles
Design-Based Microservices AKA Planes, Trains & AutomobilesDesign-Based Microservices AKA Planes, Trains & Automobiles
Design-Based Microservices AKA Planes, Trains & AutomobilesMatt McLarty
 
API Security in a Microservice Architecture
API Security in a Microservice ArchitectureAPI Security in a Microservice Architecture
API Security in a Microservice ArchitectureMatt McLarty
 
Vancouver Microservices Meetup - Kickoff Session
Vancouver Microservices Meetup - Kickoff SessionVancouver Microservices Meetup - Kickoff Session
Vancouver Microservices Meetup - Kickoff SessionMatt McLarty
 
Microservice Lifecycle Demo Presentation
Microservice Lifecycle Demo PresentationMicroservice Lifecycle Demo Presentation
Microservice Lifecycle Demo PresentationMatt McLarty
 
A Capability Blueprint for Microservices
A Capability Blueprint for MicroservicesA Capability Blueprint for Microservices
A Capability Blueprint for MicroservicesMatt McLarty
 
API360 Microservices Summit Welcome
API360 Microservices Summit WelcomeAPI360 Microservices Summit Welcome
API360 Microservices Summit WelcomeMatt McLarty
 
Defining Microservices
Defining MicroservicesDefining Microservices
Defining MicroservicesMatt McLarty
 
The Agile Roots of Microservices
The Agile Roots of MicroservicesThe Agile Roots of Microservices
The Agile Roots of MicroservicesMatt McLarty
 

Plus de Matt McLarty (16)

A Visual Language for Systems Integration
A Visual Language for Systems IntegrationA Visual Language for Systems Integration
A Visual Language for Systems Integration
 
Composable data for the composable enterprise
Composable data for the composable enterpriseComposable data for the composable enterprise
Composable data for the composable enterprise
 
Value Networks in Open Banking
Value Networks in Open BankingValue Networks in Open Banking
Value Networks in Open Banking
 
Mapping API business models through value exchange
Mapping API business models through value exchangeMapping API business models through value exchange
Mapping API business models through value exchange
 
Overcoming RESTlessness
Overcoming RESTlessnessOvercoming RESTlessness
Overcoming RESTlessness
 
How to Execute a Successful API Strategy
How to Execute a Successful API StrategyHow to Execute a Successful API Strategy
How to Execute a Successful API Strategy
 
Microservices: 5 Years In
Microservices: 5 Years InMicroservices: 5 Years In
Microservices: 5 Years In
 
How to Execute a Successful API Strategy
How to Execute a Successful API StrategyHow to Execute a Successful API Strategy
How to Execute a Successful API Strategy
 
Design-Based Microservices AKA Planes, Trains & Automobiles
Design-Based Microservices AKA Planes, Trains & AutomobilesDesign-Based Microservices AKA Planes, Trains & Automobiles
Design-Based Microservices AKA Planes, Trains & Automobiles
 
API Security in a Microservice Architecture
API Security in a Microservice ArchitectureAPI Security in a Microservice Architecture
API Security in a Microservice Architecture
 
Vancouver Microservices Meetup - Kickoff Session
Vancouver Microservices Meetup - Kickoff SessionVancouver Microservices Meetup - Kickoff Session
Vancouver Microservices Meetup - Kickoff Session
 
Microservice Lifecycle Demo Presentation
Microservice Lifecycle Demo PresentationMicroservice Lifecycle Demo Presentation
Microservice Lifecycle Demo Presentation
 
A Capability Blueprint for Microservices
A Capability Blueprint for MicroservicesA Capability Blueprint for Microservices
A Capability Blueprint for Microservices
 
API360 Microservices Summit Welcome
API360 Microservices Summit WelcomeAPI360 Microservices Summit Welcome
API360 Microservices Summit Welcome
 
Defining Microservices
Defining MicroservicesDefining Microservices
Defining Microservices
 
The Agile Roots of Microservices
The Agile Roots of MicroservicesThe Agile Roots of Microservices
The Agile Roots of Microservices
 

Dernier

Lecture # 8 software design and architecture (SDA).ppt
Lecture # 8 software design and architecture (SDA).pptLecture # 8 software design and architecture (SDA).ppt
Lecture # 8 software design and architecture (SDA).pptesrabilgic2
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...Akihiro Suda
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxRTS corp
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfYashikaSharma391629
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencessuser9e7c64
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 

Dernier (20)

Lecture # 8 software design and architecture (SDA).ppt
Lecture # 8 software design and architecture (SDA).pptLecture # 8 software design and architecture (SDA).ppt
Lecture # 8 software design and architecture (SDA).ppt
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conference
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 

Applying Systems Thinking to Software Architecture

  • 1. Icebergs, Bathtubs & Flows Applying Systems Thinking to Software Architecture Matt McLarty, Global Leader of API Strategy at MuleSoft, a Salesforce company @mattmclartybc
  • 3. Software architecture …is a study in dealing with complexity Functional Operational Organizational
  • 4. What is “systems thinking”? • A conceptual approach to problem solving that considers the behaviour, structure, and interconnected parts of the complex systems within which the problem occurs • Related to systems theory, systems engineering, system dynamics, and chaos theory
  • 5. Thinking in Systems • A system is greater than the sum of its parts • A system cannot be controlled • Systems can be understood and influenced “Systems fool us by presenting themselves—or we fool ourselves by seeing the world—as a series of events.” Donella “Dana” Meadows http://donellameadows.org/donella-meadows-legacy/danas-writing/
  • 8. Feedback loops Balancing Loops Reinforcing Loops
  • 11. Understanding systems • Events show that there is a systemWhat? • Patterns show its behaviourHow? • Structure begins to show its purposeWhy?
  • 13. System boundaries • All system boundaries are artificial • If they are set too small, they are error prone • If they are set too large, they are difficult to analyze • Boundaries should change over time as the problem changes “Where to draw a boundary around a system depends on the purpose of the discussion.”
  • 14. Highly-functioning systems Resilience • The ability of the system to maintain its purpose through destabilizing events • Balancing loops for balancing loops Self-organization • The ability of subsystems to change themselves • How the system makes itself more complex Hierarchy • Not about power structures • About abstraction to simplify communication between components • “Stable intermediate forms”
  • 15. System archetypes Policy resistance Tragedy of the commons Drift to low performance Escalation Success to the successful Addiction Rule beating Seeking the wrong goal
  • 16. Leverage points Improving the information flow Changing rules and authority Increasing self-organization Changing goals and purpose Shifting the paradigm
  • 17. The Fifth Discipline Learning Organization Generative Conversation Aspiration Understanding Complexity Personal Mastery Shared Vision Mental Models Team Learning Systems Thinking
  • 18. The Art of Systems Architecting • Analysis of different types of systems, including software systems and collaborative systems • Applies heuristics and design progression “It is the system, not the software inside, the client wishes to acquire.” “The greatest leverage in system architecting is at the interfaces.” https://sdincose.org/wp-content/uploads/2017/10/TheArtOfSystemsEngineering_inaugural.pdf
  • 19. Applying systems thinking …to software architecture…
  • 22. What is software? Software is a digital projection of human intentions Software architecture should focus on aligning those intentions toward a common goal
  • 23. System archetype: “addiction” Shifting the burden to the intervenor “Addiction is finding a quick and dirty solution to the symptom of the problem, which prevents or distracts one from the harder and longer-term task of solving the real problem” In software systems, this is “silver bullet” syndrome
  • 24. Architectural leverage points 1. Transcending paradigms 2. Shifting the paradigm 3. Changing goals and purpose 4. Increasing self-organization 5. Changing rules and authority 6. Improving information flows 7. Limiting reinforcing feedback loops 8. Strengthening balancing feedback loops 9. Shortening delays 10. Optimizing stock-and-flow structures 11. Buffering stabilizing stocks relative to flows 12. Applying constants and parameters Lots of time spent here… …should be spent here!
  • 25. Highly-functioning IT Brittle monoliths Resilient microservices Siloed organizations Self-organizing, cross-functional teams Horizontally-tiered applications Hierarchical domains, APIs
  • 26. Stable intermediate forms “Minimum viable product” approach
  • 27. Leverage points scenario ST3, Inc. – A diversified, multinational enterprise • For consistency, enterprise architecture has issued a standard to use DDD and API-fronted microservices for all development • Product teams slow in adopting, complaining that this is a bottleneck • EA has tried to fix with… • Architecture review process, escalation to CIO • Enterprise API design specification, with automated compliance checking • Development of enterprise domain taxonomy
  • 28. System Archetype: “Policy resistance” “When various actors try to pull a system stock toward various goals, the result can be policy resistance. Any new policy, especially if it’s effective, just pulls the stock farther from the goals of other actors and produces additional resistance, with a result that no one likes, but that everyone expends considerable effort in maintaining.” AKA Newton’s Third Law of Systems
  • 29. Using leverage points “People deeply involved in a system often know intuitively where to find leverage points, more often than not they push the change in the wrong direction.”
  • 30. Using leverage points 1. Transcending paradigms 2. Shifting the paradigm 3. Changing goals and purpose 4. Increasing self-organization 5. Changing rules and authority 6. Improving information flows 7. Limiting reinforcing feedback loops 8. Strengthening balancing feedback loops 9. Shortening delays 10. Optimizing stock-and-flow structures 11. Buffering stabilizing stocks relative to flows 12. Applying constants and parameters Tried to impose new structure Levered rules in the wrong direction Reduced team autonomy
  • 31. Using leverage points • Communicate the mission; provide education and tooling on DDD concepts, practical microservices principles, and API designImprove information flow • Relax standards to focus on interoperability concerns, introduce optional guidelines, change review process to consultationChange rules and authority • Create a community of practice where individuals from product teams can provide input to standards and guidelinesIncrease self-organization • Elevate the purpose from "consistency" to goals that help product teams: delivery speed, reduced coordination, technical debt removalChange goals and purpose • Redefine product team's perception of enterprise architecture as an ivory tower cost center to a thoughtful and helpful change agencyShift the paradigm
  • 32. System dynamics scenario ST3, Inc. – A diversified, multinational enterprise • IT organization struggling to keep pace with customer needs • Product backlogs growing, delivery velocity slowing, releases failing • Have tried to fix with… • More thorough release reviews • Automated testing to allow for more features per release • Most experienced resources assigned to all major releases
  • 33. Iceberg model: ST3 software delivery • Latest software release failed and could not be backed out Event • 3 of last 4 major releases failed, prolonged recovery Pattern • Releases happen less frequently, with more features in each one Structure • Lack of trust in production changes Mental Model
  • 34. System dynamics: ST3 software delivery Features in Release Release Failure Rate Release Complexity Perceived Risk of Production Changes Depth of Release Review Features in Production Product Backlog Customer Satisfaction Production Releases Lack of Trust in Production Changes Operating Costs Product Revenue Cost per Feature Active Monthly Users R
  • 35. System dynamics: ST3 software delivery Features in Release Release Failure Rate Release Complexity Pressure to reduce release size Release Size Assessment Features in Production Product Backlog Customer Satisfaction Production Releases Lack of Trust in Big Production Changes Operating Costs Product Revenue Cost per Feature Active Monthly Users Release Frequency R Perception of minimum viable release
  • 36. Where to apply systems thinking • Not everywhere! • Systemic issues • Issues that won’t go away • Issues that get worse the more you try to fix them • “Paradigm shifting” changes in technology or approach
  • 37. For more information… • http://donellameadows.org/Donalla Meadows resources • https://www.crcpress.com/The-Art-of-Systems- Architecting/Maier/p/book/9781420079135Rechtin & Maier book • https://www.solonline.org/Peter Senge & SoL • https://thesystemsthinker.com/Systems Thinker website • https://twitter.com/ArchiThinkeryFollow @archithinkery
  • 38. What’s with the t-shirt? TechLit Africa is a non-profit organization that helps African students learn the web by setting up labs in schools that have no internet access. Site: https://techlitafrica.org Donate: https://www.gofundme.com/building-computer-labs-in-african-schools Hear Nelly Cheboi’s story on the Software Engineering Daily podcast here: https://softwareengineeringdaily.com/2019/05/20/emergingmarkets-kenya-with-nelly-cheboi/