SlideShare a Scribd company logo
1 of 37
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

Similar to Applying Systems Thinking to Solve Wicked Problems in Software Engineering

Humane assessment on cards
Humane assessment on cardsHumane assessment on cards
Humane assessment on cardsTudor Girba
 
Empirical Methods in Software Engineering - an Overview
Empirical Methods in Software Engineering - an OverviewEmpirical Methods in Software Engineering - an Overview
Empirical Methods in Software Engineering - an Overviewalessio_ferrari
 
Agile Practices and Design Thinking.pptx
Agile Practices and Design Thinking.pptxAgile Practices and Design Thinking.pptx
Agile Practices and Design Thinking.pptxtosoyo4069
 
04 designing architectures
04 designing architectures04 designing architectures
04 designing architecturesMajong DevJfu
 
Advanced Systems Analyis Design (UML)
Advanced Systems Analyis Design (UML)Advanced Systems Analyis Design (UML)
Advanced Systems Analyis Design (UML)Makaha Rutendo
 
Role of system analyst
Role of system analystRole of system analyst
Role of system analystShaileshModi9
 
In search of the Higgs or What's wrong with SEMAT?
In search of the Higgs or What's wrong with SEMAT?In search of the Higgs or What's wrong with SEMAT?
In search of the Higgs or What's wrong with SEMAT?Rich Hilliard
 
[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineeringIvano Malavolta
 
Lecture2 2
Lecture2 2Lecture2 2
Lecture2 2soloeng
 
A New Model for Testing
A New Model for TestingA New Model for Testing
A New Model for TestingSQALab
 
Different Methodologies For Testing Web Application Testing
Different Methodologies For Testing Web Application TestingDifferent Methodologies For Testing Web Application Testing
Different Methodologies For Testing Web Application TestingRachel Davis
 
From Prototype to MVP (case study)
From Prototype to MVP (case study)From Prototype to MVP (case study)
From Prototype to MVP (case study)Sergey Sundukovskiy
 
CSE_2014 SE MODULE 1 V.10.pptx
CSE_2014 SE MODULE 1 V.10.pptxCSE_2014 SE MODULE 1 V.10.pptx
CSE_2014 SE MODULE 1 V.10.pptxAbdulMateen516672
 
What can Enterprise Architecture learn from Systems Thinking?
What can Enterprise Architecture learn from Systems Thinking?What can Enterprise Architecture learn from Systems Thinking?
What can Enterprise Architecture learn from Systems Thinking?Richard Veryard
 
Best Practice Information Architecture
Best Practice Information ArchitectureBest Practice Information Architecture
Best Practice Information ArchitecturePatrick Kennedy
 
Software Engineering: why it is more than coding, and why it is necessary
Software Engineering: why it is more than coding, and why it is necessarySoftware Engineering: why it is more than coding, and why it is necessary
Software Engineering: why it is more than coding, and why it is necessaryYazid Hamdi
 
CSE_2014 SE MODULE 1 V.10 (2).pptx
CSE_2014 SE MODULE 1 V.10 (2).pptxCSE_2014 SE MODULE 1 V.10 (2).pptx
CSE_2014 SE MODULE 1 V.10 (2).pptxMrSDeepakRajAssistan
 

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

Humane assessment on cards
Humane assessment on cardsHumane assessment on cards
Humane assessment on cards
 
Empirical Methods in Software Engineering - an Overview
Empirical Methods in Software Engineering - an OverviewEmpirical Methods in Software Engineering - an Overview
Empirical Methods in Software Engineering - an Overview
 
Agile Practices and Design Thinking.pptx
Agile Practices and Design Thinking.pptxAgile Practices and Design Thinking.pptx
Agile Practices and Design Thinking.pptx
 
04 designing architectures
04 designing architectures04 designing architectures
04 designing architectures
 
Advanced Systems Analyis Design (UML)
Advanced Systems Analyis Design (UML)Advanced Systems Analyis Design (UML)
Advanced Systems Analyis Design (UML)
 
Role of system analyst
Role of system analystRole of system analyst
Role of system analyst
 
In search of the Higgs or What's wrong with SEMAT?
In search of the Higgs or What's wrong with SEMAT?In search of the Higgs or What's wrong with SEMAT?
In search of the Higgs or What's wrong with SEMAT?
 
[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering
 
Lecture2 2
Lecture2 2Lecture2 2
Lecture2 2
 
A New Model for Testing
A New Model for TestingA New Model for Testing
A New Model for Testing
 
Different Methodologies For Testing Web Application Testing
Different Methodologies For Testing Web Application TestingDifferent Methodologies For Testing Web Application Testing
Different Methodologies For Testing Web Application Testing
 
From Prototype to MVP (case study)
From Prototype to MVP (case study)From Prototype to MVP (case study)
From Prototype to MVP (case study)
 
CSE_2014 SE MODULE 1 V.10.pptx
CSE_2014 SE MODULE 1 V.10.pptxCSE_2014 SE MODULE 1 V.10.pptx
CSE_2014 SE MODULE 1 V.10.pptx
 
What can Enterprise Architecture learn from Systems Thinking?
What can Enterprise Architecture learn from Systems Thinking?What can Enterprise Architecture learn from Systems Thinking?
What can Enterprise Architecture learn from Systems Thinking?
 
Welcome.pptx
Welcome.pptxWelcome.pptx
Welcome.pptx
 
Anti-Patterns
Anti-PatternsAnti-Patterns
Anti-Patterns
 
Best Practice Information Architecture
Best Practice Information ArchitectureBest Practice Information Architecture
Best Practice Information Architecture
 
Software Engineering: why it is more than coding, and why it is necessary
Software Engineering: why it is more than coding, and why it is necessarySoftware Engineering: why it is more than coding, and why it is necessary
Software Engineering: why it is more than coding, and why it is necessary
 
Systems Thinking
Systems ThinkingSystems Thinking
Systems Thinking
 
CSE_2014 SE MODULE 1 V.10 (2).pptx
CSE_2014 SE MODULE 1 V.10 (2).pptxCSE_2014 SE MODULE 1 V.10 (2).pptx
CSE_2014 SE MODULE 1 V.10 (2).pptx
 

Recently uploaded

BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 

Recently uploaded (20)

BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 

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