SlideShare a Scribd company logo
Applying Systems Thinking
to Solve Wicked Problems in Software
Engineering
The scientific study of “wholes”
Majed Ayyad, PhD
Birzeit University
11/21/2019
Outline 2
1
2
3
4
What is a problem: Complex wicked Problems
What is Thinking
What is Systems Thinking
Where it is applied in Software Engineering
Replaced by
Not Yet Another Thinking
What is a Problem?
Which of the followings is a problem
The multiplication of 2 by 2
Translating the word “problem” into Arabic
Problem solving is “What you do, when you don’t know what to do”
(Wheatley, 1984)
A rule of thumb: Problems exist when learned behaviors are
not sufficient to solve the problem.
I learned
Arithmetic , I know
both languages
I am 2 years
old, I don’t
know Arabic
How Do You Solve this Problem?
Problem: Given a candidate CV, which of the following decisions you will
select:
Analyze
Challenge assumptions
Seek others opinion
Validate claimed knowledge
Critical Thinking
Use Pros and Cons
How Do You Solve this Problem?
Problem: … (Yes, three dots) Yes, But for a
specific
context?
Ah … we
need to find
the problem?
Gather Information
Verify and Validate gathered
information
Do we need Secondary
Information?
Problem Framing
Design ThinkingSelect a strategy
Build a solution Prototype
Evaluate Results
Productize
..
..
How Do You Solve this Problem?
Overtime /Velocity
Problem: Increase the development velocity by 20%
Linear Thinking
Increases
Explain a phenomenon by
using a single relationship:
cause and effect.
reductionist theory Mechanistic Thinking
What is Thinking?
Problem: What is This?
But what is thinking?
When you start the process of solving the problem … you
start the thinking process
A mind activity
To make sense of what you are aware of [here the picture:
physical perception]!
Using your [knowledge, memory, experience,…
Given the following characteristics, Name one
problem that matches all ………………….!
We don’t understand the problem until we find the solution
You can create incremental solutions to the problem, but there’s
nothing that tells you that you’ve found the correct and final solution.
Solutions are not right or wrong:
Every problem is essentially novel and unique
Every solution is a one-shot operation
Answer: Software Engineering
Which Problem is Solved by Software Engineering?
A fundamental problem of software engineering is the problem of
development of systems…
Creating value to customer
The actual product of software
engineering is ……………..
Software Engineering: A wicked Problem?
The real problem in software
engineering is to find the Value?
Software Engineering is a wicked problem
by itself. It is used to solve another wicked
problem which is finding the customer value.
Why Software Engineering is a wickedproblem?
Proof by contradiction
SE is not a wicked problem
We start by well defined problem statement
We don’t have to use incremental solutions to the
problem [ Spiral, XP, Scrum, lean, …]
We know that we are building what the customer
needs
We can use previous solutions
Change is affordable
How do We Solve Wicked Problems!
ThinkingSystems
What is Systems Thinking? Zoom out
Holistic Thinking
Synthetic thinking
Dynamic thinking
Systems thinking was developed by Jay Forrester and others at MIT.
“Systems thinking is a discipline for seeing wholes. It is a
framework for seeing interrelationships rather than things, for
seeing patterns of change rather than static ‘snapshots”
A Systems Example
A System
This Photo by Unknown Author is licensed under CC BY-SA-NC
A Part
A Structure
A Function
A Process
Thoughts
{time}
{space}
{Emergent}
{Input/Output}
{The whole is different than the sum}
{function/Role}
A Whole
{contains}
Kanban Board as a System !
Control
Stock Stock Stock
Flow
Flow
Development rate
inflow outflow
Characteristics of Systems Thinking
• Optimize the Whole – avoid sub-optimization and look for the
properties of the whole not the properties of each part.
Learn and practice the zoom out skill
What is This?
What is This?
?
Zoom out
Too vague Some characteristics Big Picture
source
The truth : A medal
A Sea Turtle Medal
Solving the Previous Buzzle!
Problem: What is This?
Again it is sea turtle!
Zoom out the Kanban Board!
Stock Stock Stock
Flow
Flow
Development rate
inflow
outflow
Characteristics of Systems Thinking
• Optimize the Whole – avoid sub-optimization look for the properties
of the whole not the properties of each part.
• Look for Relationships: Interaction is more important to understand
how components work together.
Systems Dynamics: Balancing and Enforcing Loops
Overtime /Velocity
Fatigue
Stress
+
-
-
Efficiency
+
+
+
time
Stress management
-
+
+
Features
Delivered/
Throughput
QualityProblem: Increase the development velocity by 20%
Bugs
rate of requirements change
Team skills
Budget constraints
Schedule constraints
Characteristics of Systems Thinking
• Optimize the Whole – avoid sub-optimization look for the properties
of the whole not the properties of each part.
• Look for Relationships: Interaction is more important to understand
how components work together.
• Consider Flows and Processes before Structures.
How To Develop Systems Thinking Mindset?
 Start with Synthesis
 Draw a boundary – identify the containing whole
 Study the behavior and properties of the whole – emergent
properties, homeostasis or steady state
 Study the behavior and properties of the parts in terms of
their contribution to the behavior of the whole [ use loops,
flows and stocks]- interrelationships
Identify the Whole? How can I master the zoom-out skill?
Synthesis reveals understanding—why?
Analysis reveals structure— how?
Example on Synthetic
How many developers start
the design exercise from
scratch?
• … few
• … why
• We analyze and analyze
then we compile the
design after we put a lot of
code!
Reverse Engineering is not synthetic!
Application as Stock
APIs as flows
Applications of Systems Thinking in SE
.
Operations
Development
Architecture
PlaceholderPlanning
SE-Education
Scaled Agile and Systems Thinking!
Aspects of systems thinking in © Scaled Agile, Inc.
Microservices Challenges
• Decentralized Governance and Data Management
• Creating Synergies and Orchestrations
• Heterogeneity and Homeostasis
• Network Structure
(Image: Bruce Wong, Netflix)
DevOps
Feedbacks
Flows work, experiments and learning
The 175 Principles of Flow
ECONOMIC PRINCIPLES
QUEUEING PRINCIPLES
FLOW CONTROL PRINCIPLES
FAST FEEDBACK PRINCIPLES
We have developed and evolved an MS-level software engineering
curriculum that enables Computer Science (CS) majors to become
considerably more T-shaped than when they entered. It includes
courses in software management and economics, human-computer
interaction, embedded software systems, systems and software
requirements, architecture, and Verification and Validation (V&V), and
a two-semester, real-client team project course that gives students
experience in applying these skills.
Between 𝑡0 𝑎𝑛𝑑 𝑡0 + 1
The Domino effect
Image source
Faulty Requirements
Faulty design
Faulty functionality
Faulty logic
The bug path
Final Remark
• Systems are connected through a complex network!
• Software Engineering a Socio-Technical System
• Theory of systems is our way to achieve Integration in the various
sciences, natural and social as inspired by von Bertalanffy
(Image: Josh Evans, Netflix)
Not Anymore R&D
• Research and design are not two different things!
• …. Design is also a research methodology
THANK YOU.
Summary
• Software systems are essentially socio-technical systems
• and they are not isolated from other systems engineering processes.
Unconsciously or by intention, we implement systems thinking in multi-
agent systems, microservices, DevOps, distributed systems, API-led
integrations and lean based software development life cycles. However, the
concrete relationship between systems thinking and software engineering
is still a green area and barely highlighted as a common practice among
software engineers. In this presentation, we will
• elaborate how systems thinking helps us to understand the socio-technical
aspects of software engineering. We will discuss why systems thinking is
important in the field of software engineering, provide examples where it
is currently used and show the general areas where systems thinking
applies to tackle complex software problems

More Related Content

What's hot (20)

PDF
Project Scope Management,PMP Chapter 5,PMBOK,PMP Exam Preparation training
JustAcademy
 
PPTX
ITIL Introduction
Ravi Kiran
 
PDF
Architectural runway
DmitriyViktorov
 
PDF
API strategy with IBM API connect
Kellton Tech Solutions Ltd
 
PDF
Software Engineering - Ch4
Siddharth Ayer
 
PDF
IBM DevOps - Adopting Scaled Agile Framework (SAFe) Webinar
Reedy Feggins Jr
 
PDF
PRINCE2 key terms and free revision notes to pass the certification exam
projectingIT
 
PPTX
Ch9-Software Engineering 9
Ian Sommerville
 
PDF
BUSINESS ARCHITECTURE OVERVIEW
KenMartin18
 
PPTX
Establishing a Business Process Management Center of Excellence - Impact 2012
Prolifics
 
PPT
ITSM Project
Oleksandr
 
PDF
Agile Transformation at Scale
ITSM Academy, Inc.
 
PPTX
Formal Methods lecture 01
Sidra Ashraf
 
PPT
Spm
Suresh Kumar
 
PDF
Project Scope Management
Andersson Lujan Ojeda
 
PPTX
Requirement engineering evaluation
Ishraq Al Fataftah
 
PDF
Orchestrating the microservices - Camunda 2023
Ilkin Abdullayev
 
PPT
Solution Architecture
FirmansyahIrma1
 
PDF
Digital Transformation And Enterprise Architecture
Alan McSweeney
 
PDF
Architecting an Enterprise API Management Strategy
WSO2
 
Project Scope Management,PMP Chapter 5,PMBOK,PMP Exam Preparation training
JustAcademy
 
ITIL Introduction
Ravi Kiran
 
Architectural runway
DmitriyViktorov
 
API strategy with IBM API connect
Kellton Tech Solutions Ltd
 
Software Engineering - Ch4
Siddharth Ayer
 
IBM DevOps - Adopting Scaled Agile Framework (SAFe) Webinar
Reedy Feggins Jr
 
PRINCE2 key terms and free revision notes to pass the certification exam
projectingIT
 
Ch9-Software Engineering 9
Ian Sommerville
 
BUSINESS ARCHITECTURE OVERVIEW
KenMartin18
 
Establishing a Business Process Management Center of Excellence - Impact 2012
Prolifics
 
ITSM Project
Oleksandr
 
Agile Transformation at Scale
ITSM Academy, Inc.
 
Formal Methods lecture 01
Sidra Ashraf
 
Project Scope Management
Andersson Lujan Ojeda
 
Requirement engineering evaluation
Ishraq Al Fataftah
 
Orchestrating the microservices - Camunda 2023
Ilkin Abdullayev
 
Solution Architecture
FirmansyahIrma1
 
Digital Transformation And Enterprise Architecture
Alan McSweeney
 
Architecting an Enterprise API Management Strategy
WSO2
 

Similar to Applying Systems Thinking to Solve Wicked Problems in Software Engineering (20)

PPTX
EngD in Systems (thinking)
richard_craig
 
PDF
From Principles to Strategies for Systems Engineering
Glen Alleman
 
PDF
Systems Thinking: Applications to Space Systems
Caltech
 
PPTX
The Benefits of using Systems Thinking in Project Management
Association for Project Management
 
PDF
What systems thinking can offer portfolio, programme and project managers
Association for Project Management
 
PDF
What systems thinking can offer portfolio, programme & project managers, 19 O...
Association for Project Management
 
PDF
Systems Thinking
JonathanBowman24
 
PDF
Concepts Development : How To Create Products Customers Love
Bernardo A. Delicado
 
PDF
a-beginners-guide-to-systems-engineering.pdf
ssuser1f55c6
 
PDF
Systems Engineering and Requirements Management in Medical Device Product Dev...
UBMCanon
 
PDF
Published Article: Integrating Systems & Design Thinking
EricaWexler
 
PPTX
Systems thinking
Maripaz Señorita
 
PPTX
The nine system model
Joseph KAsser
 
PPT
Creativity And Inovation
Nor Azri Nor Hashim
 
PPTX
materi berpikir sistem kesmas dan kepemimpinan.pptx
dvmgaluhlarasati
 
PDF
Mike.ryschkewitsch
NASAPMC
 
PDF
System Development Life Cycle (SDLC)
Animesh Chaturvedi
 
PDF
Teaching the Technologies learning area using a thinking skills approach
Jason Zagami
 
PPTX
01-Introduction to System Engineering & System Engineering Life cycle.pptx
ssuseraaa4d6
 
PDF
Unravelling Systems Engineering
Bernardo A. Delicado
 
EngD in Systems (thinking)
richard_craig
 
From Principles to Strategies for Systems Engineering
Glen Alleman
 
Systems Thinking: Applications to Space Systems
Caltech
 
The Benefits of using Systems Thinking in Project Management
Association for Project Management
 
What systems thinking can offer portfolio, programme and project managers
Association for Project Management
 
What systems thinking can offer portfolio, programme & project managers, 19 O...
Association for Project Management
 
Systems Thinking
JonathanBowman24
 
Concepts Development : How To Create Products Customers Love
Bernardo A. Delicado
 
a-beginners-guide-to-systems-engineering.pdf
ssuser1f55c6
 
Systems Engineering and Requirements Management in Medical Device Product Dev...
UBMCanon
 
Published Article: Integrating Systems & Design Thinking
EricaWexler
 
Systems thinking
Maripaz Señorita
 
The nine system model
Joseph KAsser
 
Creativity And Inovation
Nor Azri Nor Hashim
 
materi berpikir sistem kesmas dan kepemimpinan.pptx
dvmgaluhlarasati
 
Mike.ryschkewitsch
NASAPMC
 
System Development Life Cycle (SDLC)
Animesh Chaturvedi
 
Teaching the Technologies learning area using a thinking skills approach
Jason Zagami
 
01-Introduction to System Engineering & System Engineering Life cycle.pptx
ssuseraaa4d6
 
Unravelling Systems Engineering
Bernardo A. Delicado
 
Ad

Recently uploaded (20)

PDF
HiHelloHR – Simplify HR Operations for Modern Workplaces
HiHelloHR
 
PPTX
Hardware(Central Processing Unit ) CU and ALU
RizwanaKalsoom2
 
PPTX
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
PDF
Letasoft Sound Booster 1.12.0.538 Crack Download+ Product Key [Latest]
HyperPc soft
 
PDF
Mobile CMMS Solutions Empowering the Frontline Workforce
CryotosCMMSSoftware
 
PDF
Continouous failure - Why do we make our lives hard?
Papp Krisztián
 
PPTX
How Odoo Became a Game-Changer for an IT Company in Manufacturing ERP
SatishKumar2651
 
PPTX
MailsDaddy Outlook OST to PST converter.pptx
abhishekdutt366
 
PDF
Efficient, Automated Claims Processing Software for Insurers
Insurance Tech Services
 
PPTX
Writing Better Code - Helping Developers make Decisions.pptx
Lorraine Steyn
 
PPTX
Fundamentals_of_Microservices_Architecture.pptx
MuhammadUzair504018
 
PDF
Salesforce CRM Services.VALiNTRY360
VALiNTRY360
 
PPTX
The Role of a PHP Development Company in Modern Web Development
SEO Company for School in Delhi NCR
 
PDF
Revenue streams of the Wazirx clone script.pdf
aaronjeffray
 
PDF
Alexander Marshalov - How to use AI Assistants with your Monitoring system Q2...
VictoriaMetrics
 
PPTX
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
PPTX
Perfecting XM Cloud for Multisite Setup.pptx
Ahmed Okour
 
PDF
MiniTool Partition Wizard 12.8 Crack License Key LATEST
hashhshs786
 
PDF
Alarm in Android-Scheduling Timed Tasks Using AlarmManager in Android.pdf
Nabin Dhakal
 
PPTX
Engineering the Java Web Application (MVC)
abhishekoza1981
 
HiHelloHR – Simplify HR Operations for Modern Workplaces
HiHelloHR
 
Hardware(Central Processing Unit ) CU and ALU
RizwanaKalsoom2
 
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
Letasoft Sound Booster 1.12.0.538 Crack Download+ Product Key [Latest]
HyperPc soft
 
Mobile CMMS Solutions Empowering the Frontline Workforce
CryotosCMMSSoftware
 
Continouous failure - Why do we make our lives hard?
Papp Krisztián
 
How Odoo Became a Game-Changer for an IT Company in Manufacturing ERP
SatishKumar2651
 
MailsDaddy Outlook OST to PST converter.pptx
abhishekdutt366
 
Efficient, Automated Claims Processing Software for Insurers
Insurance Tech Services
 
Writing Better Code - Helping Developers make Decisions.pptx
Lorraine Steyn
 
Fundamentals_of_Microservices_Architecture.pptx
MuhammadUzair504018
 
Salesforce CRM Services.VALiNTRY360
VALiNTRY360
 
The Role of a PHP Development Company in Modern Web Development
SEO Company for School in Delhi NCR
 
Revenue streams of the Wazirx clone script.pdf
aaronjeffray
 
Alexander Marshalov - How to use AI Assistants with your Monitoring system Q2...
VictoriaMetrics
 
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
Perfecting XM Cloud for Multisite Setup.pptx
Ahmed Okour
 
MiniTool Partition Wizard 12.8 Crack License Key LATEST
hashhshs786
 
Alarm in Android-Scheduling Timed Tasks Using AlarmManager in Android.pdf
Nabin Dhakal
 
Engineering the Java Web Application (MVC)
abhishekoza1981
 
Ad

Applying Systems Thinking to Solve Wicked Problems in Software Engineering

  • 1. Applying Systems Thinking to Solve Wicked Problems in Software Engineering The scientific study of “wholes” Majed Ayyad, PhD Birzeit University 11/21/2019
  • 2. Outline 2 1 2 3 4 What is a problem: Complex wicked Problems What is Thinking What is Systems Thinking Where it is applied in Software Engineering Replaced by
  • 3. Not Yet Another Thinking
  • 4. What is a Problem? Which of the followings is a problem The multiplication of 2 by 2 Translating the word “problem” into Arabic Problem solving is “What you do, when you don’t know what to do” (Wheatley, 1984) A rule of thumb: Problems exist when learned behaviors are not sufficient to solve the problem. I learned Arithmetic , I know both languages I am 2 years old, I don’t know Arabic
  • 5. How Do You Solve this Problem? Problem: Given a candidate CV, which of the following decisions you will select: Analyze Challenge assumptions Seek others opinion Validate claimed knowledge Critical Thinking Use Pros and Cons
  • 6. How Do You Solve this Problem? Problem: … (Yes, three dots) Yes, But for a specific context? Ah … we need to find the problem? Gather Information Verify and Validate gathered information Do we need Secondary Information? Problem Framing Design ThinkingSelect a strategy Build a solution Prototype Evaluate Results Productize .. ..
  • 7. How Do You Solve this Problem? Overtime /Velocity Problem: Increase the development velocity by 20% Linear Thinking Increases Explain a phenomenon by using a single relationship: cause and effect. reductionist theory Mechanistic Thinking
  • 8. What is Thinking? Problem: What is This? But what is thinking? When you start the process of solving the problem … you start the thinking process A mind activity To make sense of what you are aware of [here the picture: physical perception]! Using your [knowledge, memory, experience,…
  • 9. Given the following characteristics, Name one problem that matches all ………………….! We don’t understand the problem until we find the solution You can create incremental solutions to the problem, but there’s nothing that tells you that you’ve found the correct and final solution. Solutions are not right or wrong: Every problem is essentially novel and unique Every solution is a one-shot operation Answer: Software Engineering
  • 10. Which Problem is Solved by Software Engineering? A fundamental problem of software engineering is the problem of development of systems… Creating value to customer The actual product of software engineering is ……………..
  • 11. Software Engineering: A wicked Problem? The real problem in software engineering is to find the Value? Software Engineering is a wicked problem by itself. It is used to solve another wicked problem which is finding the customer value.
  • 12. Why Software Engineering is a wickedproblem? Proof by contradiction SE is not a wicked problem We start by well defined problem statement We don’t have to use incremental solutions to the problem [ Spiral, XP, Scrum, lean, …] We know that we are building what the customer needs We can use previous solutions Change is affordable
  • 13. How do We Solve Wicked Problems! ThinkingSystems
  • 14. What is Systems Thinking? Zoom out Holistic Thinking Synthetic thinking Dynamic thinking Systems thinking was developed by Jay Forrester and others at MIT. “Systems thinking is a discipline for seeing wholes. It is a framework for seeing interrelationships rather than things, for seeing patterns of change rather than static ‘snapshots”
  • 15. A Systems Example A System This Photo by Unknown Author is licensed under CC BY-SA-NC A Part A Structure A Function A Process Thoughts {time} {space} {Emergent} {Input/Output} {The whole is different than the sum} {function/Role} A Whole {contains}
  • 16. Kanban Board as a System ! Control Stock Stock Stock Flow Flow Development rate inflow outflow
  • 17. Characteristics of Systems Thinking • Optimize the Whole – avoid sub-optimization and look for the properties of the whole not the properties of each part. Learn and practice the zoom out skill
  • 20. ? Zoom out Too vague Some characteristics Big Picture source The truth : A medal A Sea Turtle Medal
  • 21. Solving the Previous Buzzle! Problem: What is This? Again it is sea turtle!
  • 22. Zoom out the Kanban Board! Stock Stock Stock Flow Flow Development rate inflow outflow
  • 23. Characteristics of Systems Thinking • Optimize the Whole – avoid sub-optimization look for the properties of the whole not the properties of each part. • Look for Relationships: Interaction is more important to understand how components work together.
  • 24. Systems Dynamics: Balancing and Enforcing Loops Overtime /Velocity Fatigue Stress + - - Efficiency + + + time Stress management - + + Features Delivered/ Throughput QualityProblem: Increase the development velocity by 20% Bugs rate of requirements change Team skills Budget constraints Schedule constraints
  • 25. Characteristics of Systems Thinking • Optimize the Whole – avoid sub-optimization look for the properties of the whole not the properties of each part. • Look for Relationships: Interaction is more important to understand how components work together. • Consider Flows and Processes before Structures.
  • 26. How To Develop Systems Thinking Mindset?  Start with Synthesis  Draw a boundary – identify the containing whole  Study the behavior and properties of the whole – emergent properties, homeostasis or steady state  Study the behavior and properties of the parts in terms of their contribution to the behavior of the whole [ use loops, flows and stocks]- interrelationships Identify the Whole? How can I master the zoom-out skill? Synthesis reveals understanding—why? Analysis reveals structure— how?
  • 27. Example on Synthetic How many developers start the design exercise from scratch? • … few • … why • We analyze and analyze then we compile the design after we put a lot of code! Reverse Engineering is not synthetic! Application as Stock APIs as flows
  • 28. Applications of Systems Thinking in SE . Operations Development Architecture PlaceholderPlanning SE-Education
  • 29. Scaled Agile and Systems Thinking! Aspects of systems thinking in © Scaled Agile, Inc.
  • 30. Microservices Challenges • Decentralized Governance and Data Management • Creating Synergies and Orchestrations • Heterogeneity and Homeostasis • Network Structure (Image: Bruce Wong, Netflix)
  • 31. DevOps Feedbacks Flows work, experiments and learning The 175 Principles of Flow ECONOMIC PRINCIPLES QUEUEING PRINCIPLES FLOW CONTROL PRINCIPLES FAST FEEDBACK PRINCIPLES
  • 32. We have developed and evolved an MS-level software engineering curriculum that enables Computer Science (CS) majors to become considerably more T-shaped than when they entered. It includes courses in software management and economics, human-computer interaction, embedded software systems, systems and software requirements, architecture, and Verification and Validation (V&V), and a two-semester, real-client team project course that gives students experience in applying these skills.
  • 33. Between 𝑡0 𝑎𝑛𝑑 𝑡0 + 1 The Domino effect Image source Faulty Requirements Faulty design Faulty functionality Faulty logic The bug path
  • 34. Final Remark • Systems are connected through a complex network! • Software Engineering a Socio-Technical System • Theory of systems is our way to achieve Integration in the various sciences, natural and social as inspired by von Bertalanffy (Image: Josh Evans, Netflix)
  • 35. Not Anymore R&D • Research and design are not two different things! • …. Design is also a research methodology
  • 37. Summary • Software systems are essentially socio-technical systems • and they are not isolated from other systems engineering processes. Unconsciously or by intention, we implement systems thinking in multi- agent systems, microservices, DevOps, distributed systems, API-led integrations and lean based software development life cycles. However, the concrete relationship between systems thinking and software engineering is still a green area and barely highlighted as a common practice among software engineers. In this presentation, we will • elaborate how systems thinking helps us to understand the socio-technical aspects of software engineering. We will discuss why systems thinking is important in the field of software engineering, provide examples where it is currently used and show the general areas where systems thinking applies to tackle complex software problems