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

What's hot

JMeter vs LoadRunner | Edureka
JMeter vs LoadRunner | EdurekaJMeter vs LoadRunner | Edureka
JMeter vs LoadRunner | EdurekaEdureka!
 
Lean Enterprise Transformation: The Journey Inside Large Organizations, Sonja...
Lean Enterprise Transformation: The Journey Inside Large Organizations, Sonja...Lean Enterprise Transformation: The Journey Inside Large Organizations, Sonja...
Lean Enterprise Transformation: The Journey Inside Large Organizations, Sonja...Lean Startup Co.
 
Viewpoint-based Test Requirement Analysis Modeling and Test Architectural D...
Viewpoint-based Test Requirement Analysis Modelingand Test Architectural D...Viewpoint-based Test Requirement Analysis Modelingand Test Architectural D...
Viewpoint-based Test Requirement Analysis Modeling and Test Architectural D...Yasuharu Nishi
 
Loadrunner vs Jmeter
Loadrunner vs JmeterLoadrunner vs Jmeter
Loadrunner vs JmeterAtul Pant
 
What should you shift left
What should you shift leftWhat should you shift left
What should you shift leftYasuharu Nishi
 
Performance Testing With Jmeter
Performance Testing With JmeterPerformance Testing With Jmeter
Performance Testing With JmeterAdam Goucher
 
Automate REST API Testing
Automate REST API TestingAutomate REST API Testing
Automate REST API TestingTechWell
 
Agile Test Management Using Jira and Zephyr
Agile Test Management Using Jira and ZephyrAgile Test Management Using Jira and Zephyr
Agile Test Management Using Jira and ZephyrXBOSoft
 
Performance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter introPerformance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter introMykola Kovsh
 
What Is Functional Testing?
What Is Functional Testing?What Is Functional Testing?
What Is Functional Testing?QA InfoTech
 
Test Automation Framework Development Introduction
Test Automation Framework Development IntroductionTest Automation Framework Development Introduction
Test Automation Framework Development IntroductionGanuka Yashantha
 
LINE Developer Meetup in Tokyo #39 Presentation (modified)
LINE Developer Meetup in Tokyo #39 Presentation (modified)LINE Developer Meetup in Tokyo #39 Presentation (modified)
LINE Developer Meetup in Tokyo #39 Presentation (modified)Yasuharu Nishi
 
Defect Density matrix SQA
Defect Density  matrix   SQADefect Density  matrix   SQA
Defect Density matrix SQAHashim Ali
 
Performance testing presentation
Performance testing presentationPerformance testing presentation
Performance testing presentationBelatrix Software
 
Performance testing interview questions and answers
Performance testing interview questions and answersPerformance testing interview questions and answers
Performance testing interview questions and answersGaruda Trainings
 
Test automation principles, terminologies and implementations
Test automation principles, terminologies and implementationsTest automation principles, terminologies and implementations
Test automation principles, terminologies and implementationsSteven Li
 
Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHPRangel Javier
 

What's hot (20)

JMeter vs LoadRunner | Edureka
JMeter vs LoadRunner | EdurekaJMeter vs LoadRunner | Edureka
JMeter vs LoadRunner | Edureka
 
Lean Enterprise Transformation: The Journey Inside Large Organizations, Sonja...
Lean Enterprise Transformation: The Journey Inside Large Organizations, Sonja...Lean Enterprise Transformation: The Journey Inside Large Organizations, Sonja...
Lean Enterprise Transformation: The Journey Inside Large Organizations, Sonja...
 
Viewpoint-based Test Requirement Analysis Modeling and Test Architectural D...
Viewpoint-based Test Requirement Analysis Modelingand Test Architectural D...Viewpoint-based Test Requirement Analysis Modelingand Test Architectural D...
Viewpoint-based Test Requirement Analysis Modeling and Test Architectural D...
 
SOA Testing
SOA TestingSOA Testing
SOA Testing
 
Loadrunner vs Jmeter
Loadrunner vs JmeterLoadrunner vs Jmeter
Loadrunner vs Jmeter
 
What should you shift left
What should you shift leftWhat should you shift left
What should you shift left
 
Performance Testing With Jmeter
Performance Testing With JmeterPerformance Testing With Jmeter
Performance Testing With Jmeter
 
Automate REST API Testing
Automate REST API TestingAutomate REST API Testing
Automate REST API Testing
 
Agile Test Management Using Jira and Zephyr
Agile Test Management Using Jira and ZephyrAgile Test Management Using Jira and Zephyr
Agile Test Management Using Jira and Zephyr
 
Performance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter introPerformance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter intro
 
What Is Functional Testing?
What Is Functional Testing?What Is Functional Testing?
What Is Functional Testing?
 
Test Automation Framework Development Introduction
Test Automation Framework Development IntroductionTest Automation Framework Development Introduction
Test Automation Framework Development Introduction
 
LINE Developer Meetup in Tokyo #39 Presentation (modified)
LINE Developer Meetup in Tokyo #39 Presentation (modified)LINE Developer Meetup in Tokyo #39 Presentation (modified)
LINE Developer Meetup in Tokyo #39 Presentation (modified)
 
Automation testing
Automation testingAutomation testing
Automation testing
 
Defect Density matrix SQA
Defect Density  matrix   SQADefect Density  matrix   SQA
Defect Density matrix SQA
 
Software/Yazılım Test
Software/Yazılım TestSoftware/Yazılım Test
Software/Yazılım Test
 
Performance testing presentation
Performance testing presentationPerformance testing presentation
Performance testing presentation
 
Performance testing interview questions and answers
Performance testing interview questions and answersPerformance testing interview questions and answers
Performance testing interview questions and answers
 
Test automation principles, terminologies and implementations
Test automation principles, terminologies and implementationsTest automation principles, terminologies and implementations
Test automation principles, terminologies and implementations
 
Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHP
 

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

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
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noidabntitsolutionsrishis
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
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
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
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
 
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
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfLivetecs LLC
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 

Recently uploaded (20)

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...
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
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
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
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
 
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
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdf
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 

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