SlideShare a Scribd company logo
Architecting Flow
in Software Engineering
G a i l C . M u r p h y
U n i v e r s i t y o f B r i t i s h C o l u m b i a
except for images where noted
@gail_murphy
Software engineering occurs at different scales
Image not copyable
INDIVIDUAL COMPONENT
E.G., BRAKE
CAR & ENVIRONMENT
E.G., LANE DEPARTURE
CAR-CAR INTERACTIONS
E.G., SMART TRAFFIC
Software engineering occurs at different scales
INTEGRATED COMPONENTS
E.G., BRAKE & CRUISE
Images not copyable
Software engineering involves
multi-person multi-version development
— Brian Randell
[Parnas 2011]
Software engineering involves
multi-person multi-version development
And many more…
Tools to manage technical artifacts
Software engineering involves
multi-person multi-version development
And many more…
Tools to support social interaction
Software engineering involves
multi-person multi-version development
Some integration between social and technical tools
But limited, more is possible
Architecting Flow in Software Engineering
Software engineering is a socio-technical endeavour
T
V
Y
I
1
S
S&T
T
S&T
T
Increasing focus on tool architectures and value streams
can increase quality and productivity
S = Social Tool
T = Technical Tool
1 Socio-Technical
Congruence 2 Information Flow
3 Tool Architecture
4 Architecting Flow
“Why” “What”
“How”
“How”
1 Socio-Technical
Congruence 2 Information Flow
3 Tool Architecture
4 Architecting Flow
Completely network collaborative
services via centric initiatives.
Completely network collaborative
services via centric initiatives.
Completely network collaborative
services via centric initiatives.
Socio-technical
congruence A
B
C
Technical dependencies between modules
Coordination needs between teams
Team
for A
Team
for C
Team
for B
Congruence leads to
improved productivity
Higher levels of congruence
associated with lower levels
of fault proneness
[Cataldo & Herbsleb, 2013]
Example 1: Within System
Cataldo & Herbsleb studied two developments in depth
- Project A - Distributed system for a data storage product
(114 developers, 5m lines of code, C & C++)
- Project B - Embedded system for automotive sector
(380 developers, 8 sites, 7m lines of code, C)
Less mature system
More mature system
finding that:
Higher-levels of socio-technical congruence are associated with better software quality. True for
both projects, but with more benefit for Project B (more mature).
Higher-levels of socio-technical congruence associated with improvements in productivity. True for
both projects, but with more benefit for Project A (less mature).
[Cataldo & Herbsleb, 2013]
Example 2: Integrated Systems
Integrator
(Boeing)
Supplier
(Crane/
GE)
https://www.reuters.com/article/us-airshow-boeing-787-idUSL1559730020080715
Example 3: Between Systems
What happens in ecosystems that are weakly inter-connected, like Java?
Guava
mcMMO
Vault
Netty
Assertj
Junit
Appsgate
JSONassert
0%
25%
50%
75%
100%
4 32 256 2048
Number of user repositories
R
s
:
Ratio
of
user
repositories
having
a
social
link
Red Dots are Java projects
on GitHub.
The farther right, the more
other technically dependent
Java systems.
[Palyart, Murphy & Masrani, 2017]
Example 3: Between Systems
What happens in ecosystems that are weakly inter-connected, like Java?
Guava
mcMMO
Vault
Netty
Assertj
Junit
Appsgate
JSONassert
0%
25%
50%
75%
100%
4 32 256 2048
Number of user repositories
R
s
:
Ratio
of
user
repositories
having
a
social
link
This is a testing library
(JUnit) with lots of
systems using it.
[Palyart, Murphy & Masrani, 2017]
Example 3: Between Systems
What happens in ecosystems that are weakly inter-connected, like Java?
Guava
mcMMO
Vault
Netty
Assertj
Junit
Appsgate
JSONassert
0%
25%
50%
75%
100%
4 32 256 2048
Number of user repositories
R
s
:
Ratio
of
user
repositories
having
a
social
link
The vertical axis provides an
indication of how many of
the using systems have a
social dependence.
Reasonable number of using
systems and high-level of social
dependencies from those
systems.
Lots of users, less social
dependencies from those
systems.
[Palyart, Murphy & Masrani, 2017]
Scale Why (examples) What How
Within system
Increased productivity
and quality
Integrated system Avoid integration
failures
Between systems Improve planning
Architecting Flow
Scale Why (examples) What How
Within system
Increased productivity
and quality
Integrated system Avoid integration
failures
Between systems Improve planning
Architecting Flow
Focus will be on “within system” and “between systems” for
remainder of talk
1 Socio-Technical
Congruence 2 Information Flow
3 Tool Architecture
4 Architecting Flow
A
B
C
Technical dependencies between modules
Coordination needs between teams
Team
for A
Team
for C
Team
for B
Information flow
Information flow related to
technical dependence
Is related to software
architecture
Software architecture
specification, evolution,
recovery, practices, etc.
are well-established
A
B
C
Technical dependencies between modules
Coordination needs between teams
Team
for A
Team
for C
Team
for B
Information flow
Information flow to support
coordination needs is
less established
Focus in this talk will
be on information flow
related to coordination
03
02
01
04
Features
Types of information
flowing through a
software development
Defects
Debts
Risks
Four types of Flow Items
— Mik Kersten, 2018
A “Within System”
Conceptual Example
An automotive company building a
hybrid or electric vehicle with
regenerative braking
Image not copyable
Requirement: Provide regenerative braking
Task: Design algorithm for regenerative braking
Task: Gain input from brake sensors
Task: Reverse engine
Task: Route electricity from motor to batteries
Task: Simulate algorithm for regenerative braking
Task: Implement algorithm for regenerative braking
Task: Test algorithm for regenerative braking
Task: Performance test algorithm for regenerative braking
Etc. etc. etc.
Information flow items
related to a Feature
Image not copyable
Requirement: Provide regenerative braking
Task: Design algorithm for regenerative braking
Task: Simulate algorithm for regenerative braking
Task: Implement algorithm for regenerative braking
Task: Test algorithm for regenerative braking
Task: Performance test algorithm for regenerative braking
Etc. etc. etc.
Information flow items
related to a Feature
Requirements Team
Design Team
Dev Team #1
Dev Team #2
Test Team
Image not copyable
Etc. etc. etc.
Information flow items
related to a Feature
Requirements Team Design Team Dev Team #1 Dev Team #2 Test Team
Image not copyable
Etc. etc. etc.
Information flow items
related to a Defect
Requirements Team Design Team Dev Team #1 Dev Team #2 Test Team
Defect Team
Defect: Problems with anti-lock braking
Etc. etc. etc.
Image not copyable
Etc. etc. etc.
Information flow items
related to a Feature
and Defect
Requirements Team Design Team Dev Team #1 Dev Team #2 Test Team
Defect Team
Defect: Problems with anti-lock braking
Etc. etc. etc.
Technical: Algorithm Spec
Social: Discussion about Spec
Technical: Environment
conditions for defect
Social: Discussion to gather
more environmental info
Image not copyable
An “Integrated System”
Conceptual Example
An airline manufacturer
contracting the braking
system for the plane
Image not copyable
Information flow items
Feature:
Provide braking
component
Integrator Supplier
Image not copyable
Information flow items
Feature:
Provide braking
component
Integrator
Supplier
Requirements Team
Development Team
Quality Assurance Team
Technical: component
Social: interface discussion
More limited content on flow
Items between integrator and supplier
Image not copyable
Scale Why (examples) What How
Within system
Increased productivity
and quality
Features, Defects, Risks
and Debts
Integrated system Avoid integration
failures
Likely contractually
limited to features and
defects
Architecting Flow
1 Socio-Technical
Congruence 2 Information Flow
3 Tool Architecture
4 Architecting Flow
Modularization of
software to reduce
team
interdependencies
degrades over time
Teams interchange
a variety of
technical and social
information during
development
Information flow is
constant, complex
and changing
Organization and
software structure
will not suffice
Requirements Team Design Team Dev Team #1 Dev Team #2 Test Team
Tools can help track information
T
Requirements
V
Features
I
Tasks
Defects
I
Tasks
Defects
Y
Test
Requirements Team Design Team Dev Team #1 Dev Team #2 Test Team
Requirements Team Design Team Dev Team #1 Dev Team #2 Test Team
Tool architectures with an
integration substrate can help
information flow
T
Requirements
V
Features
I
Tasks
I
Tasks
Defects Defects
Y
Test
An example tool architecture
With thanks to Tasktop Technologies Inc. for the diagram.
Diagram may not be copied.
Tool architectures vary
With thanks to Tasktop Technologies Inc. for the diagram.
Diagram may not be copied.
Tool architectures vary
With thanks to Tasktop Technologies Inc. for the diagram.
Diagram may not be copied.
An integration substrate (product) can enable flow
across the connectors between tools
What about integrated system development?
Integrator Supplier
A deep relationship between integrator
and supplier may see information flow
between tools
A less trusted relationship may
see the Integrator limited to sending
defects to the supplier
Scale Why (examples) What How
Within system
Increased productivity
and quality
Features, Defects, Risks
and Debts
Tool architecture
Integrated system Avoid integration
failures
Likely contractually
limited to features and
defects
Tool architecture
Architecting Flow
1 Socio-Technical
Congruence 2 Information Flow
3 Tool Architecture
4 Architecting Flow
Tool architectures
supported by an
integration
substrate enable
information flow
But WHAT
information flows
should be
supported?
Information flow is
technical and
social information
and is about
features, defects,
risks and debts
Socio-technical
congruence can
increase quality
and improve
productivity
Where are we?
Images not copyable
Completely network collaborative
services via centric initiatives.
Information flow related to
value streams needs to be
supported
A value stream takes a product or service
from beginning through to a customer (who may
be internal or external)
Completely network collaborative
services via centric initiatives.
How does a value stream relate to software architecture?
47
Tasktop Viz
© Tasktop Technologies, Inc.
2017-2018. All rights reserved.
Tracking Information Flow for Value Streams
Scale
Within system
Integrated system
Supporting software engineering at different scales
Tracking
Information Flow
for Value Steams
Commercial products
Commercial products
(depending on trust
relationship)
Scale Why (examples) What How
Within system
Increased productivity
and quality
Features, Defects, Risks
and Debts
Value streams and tool
architecture
Integrated system Avoid integration
failures
Likely contractually
limited to features and
defects
Value streams and tool
architecture
Architecting Flow
Many open questions
Conway’s law (adage)
1967
Modular software
architecture to enable
parallel work and
enable change
(1970s)
but…
In practice, changes crosscut software architecture, attention is being placed on (often
crosscutting) value streams and developers view their teams as fluid
so…
How should software be organized? How should teams be organized?
What metrics should be tracked?
T = Technical Tool
@gail_murphy
[Cataldo & Herbsleb, 2013] Cataldo, M. and Herbsleb, J. Coordination breakdowns and their
impact on development productivity and software failures. IEEE TSE, vol 39, no 3, 2013.
[Kersten, 2018] Kersten, M. Project to product: How to survive and thrive in the age of digital
disruption with the flow framework. IT Revolution Press, 2018.
[Palyart, Murphy & Masrani, 2017] Palyart, M., Murphy, G.C. and Masrani, V. A study of social interactions
in open source component use. IEEE TSE, vol 44, no 12, 2017.
[Parnas 2011] Parnas, D. Software engineering: Multi-person development of multi-version programs.
In Dependable and Historic Computing - Essays dedicated to Brian Randell on the Occasion of His 75th
Birthday. LNCS Vol. 6875, 2011.

More Related Content

Similar to Architecting-Flow-in-SE.pdf

Software For Software Development Life Cycle
Software For Software Development Life CycleSoftware For Software Development Life Cycle
Software For Software Development Life Cycle
Christina Padilla
 
Design and Monitoring Performance of Digital Properties
Design and Monitoring Performance of Digital PropertiesDesign and Monitoring Performance of Digital Properties
Design and Monitoring Performance of Digital Properties
IRJET Journal
 
C0371019027
C0371019027C0371019027
C0371019027
inventionjournals
 
Yemo_Capstone_MS_Fairfield University
Yemo_Capstone_MS_Fairfield UniversityYemo_Capstone_MS_Fairfield University
Yemo_Capstone_MS_Fairfield University
Guillermo Julca
 
Foundation for accelerating digital development—Two-speed IT
Foundation for accelerating digital development—Two-speed ITFoundation for accelerating digital development—Two-speed IT
Foundation for accelerating digital development—Two-speed IT
Apigee | Google Cloud
 
Unified V- Model Approach of Re-Engineering to reinforce Web Application Deve...
Unified V- Model Approach of Re-Engineering to reinforce Web Application Deve...Unified V- Model Approach of Re-Engineering to reinforce Web Application Deve...
Unified V- Model Approach of Re-Engineering to reinforce Web Application Deve...
IOSR Journals
 
Brand Niemann12102009
Brand Niemann12102009Brand Niemann12102009
Brand Niemann12102009
guest8c518a8
 
Tweet Tracking App Design Document
Tweet Tracking App Design DocumentTweet Tracking App Design Document
Tweet Tracking App Design Document
Bessie Chu
 
Quality Attributes of Web Software Applications ∗
Quality Attributes of Web Software Applications ∗Quality Attributes of Web Software Applications ∗
Quality Attributes of Web Software Applications ∗
hasnainqayyum1
 
Unit Testing Essay
Unit Testing EssayUnit Testing Essay
Unit Testing Essay
Dani Cox
 
CV-NiteshMittal_4.5yrs_Exp
CV-NiteshMittal_4.5yrs_ExpCV-NiteshMittal_4.5yrs_Exp
CV-NiteshMittal_4.5yrs_Exp
Nitesh Mittal
 
OSSF 2018 - Brandon Jung of GitLab - Is Your DevOps 'Tool Tax' Weighing You D...
OSSF 2018 - Brandon Jung of GitLab - Is Your DevOps 'Tool Tax' Weighing You D...OSSF 2018 - Brandon Jung of GitLab - Is Your DevOps 'Tool Tax' Weighing You D...
OSSF 2018 - Brandon Jung of GitLab - Is Your DevOps 'Tool Tax' Weighing You D...
FINOS
 
Naresh Chirra
Naresh ChirraNaresh Chirra
Naresh Chirra
naresh chirra
 
Quality Attributes of Web Software
Quality Attributes of Web Software Quality Attributes of Web Software
Quality Attributes of Web Software
hasnainqayyum1
 
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Mozaic Works
 
L'impatto della sicurezza su DevOps
L'impatto della sicurezza su DevOpsL'impatto della sicurezza su DevOps
L'impatto della sicurezza su DevOps
Giulio Vian
 
Intro
IntroIntro
Intro
hinaaaa123
 
Lecture 02 Software Management Renaissance.ppt
Lecture 02 Software Management Renaissance.pptLecture 02 Software Management Renaissance.ppt
Lecture 02 Software Management Renaissance.ppt
Getahuntigistu5
 
Seminar VU Amsterdam 2015
Seminar VU Amsterdam 2015Seminar VU Amsterdam 2015
Seminar VU Amsterdam 2015
Philipp Leitner
 
AA using WS vanZyl 2002-05-06
AA using WS vanZyl 2002-05-06AA using WS vanZyl 2002-05-06
AA using WS vanZyl 2002-05-06
Jay van Zyl
 

Similar to Architecting-Flow-in-SE.pdf (20)

Software For Software Development Life Cycle
Software For Software Development Life CycleSoftware For Software Development Life Cycle
Software For Software Development Life Cycle
 
Design and Monitoring Performance of Digital Properties
Design and Monitoring Performance of Digital PropertiesDesign and Monitoring Performance of Digital Properties
Design and Monitoring Performance of Digital Properties
 
C0371019027
C0371019027C0371019027
C0371019027
 
Yemo_Capstone_MS_Fairfield University
Yemo_Capstone_MS_Fairfield UniversityYemo_Capstone_MS_Fairfield University
Yemo_Capstone_MS_Fairfield University
 
Foundation for accelerating digital development—Two-speed IT
Foundation for accelerating digital development—Two-speed ITFoundation for accelerating digital development—Two-speed IT
Foundation for accelerating digital development—Two-speed IT
 
Unified V- Model Approach of Re-Engineering to reinforce Web Application Deve...
Unified V- Model Approach of Re-Engineering to reinforce Web Application Deve...Unified V- Model Approach of Re-Engineering to reinforce Web Application Deve...
Unified V- Model Approach of Re-Engineering to reinforce Web Application Deve...
 
Brand Niemann12102009
Brand Niemann12102009Brand Niemann12102009
Brand Niemann12102009
 
Tweet Tracking App Design Document
Tweet Tracking App Design DocumentTweet Tracking App Design Document
Tweet Tracking App Design Document
 
Quality Attributes of Web Software Applications ∗
Quality Attributes of Web Software Applications ∗Quality Attributes of Web Software Applications ∗
Quality Attributes of Web Software Applications ∗
 
Unit Testing Essay
Unit Testing EssayUnit Testing Essay
Unit Testing Essay
 
CV-NiteshMittal_4.5yrs_Exp
CV-NiteshMittal_4.5yrs_ExpCV-NiteshMittal_4.5yrs_Exp
CV-NiteshMittal_4.5yrs_Exp
 
OSSF 2018 - Brandon Jung of GitLab - Is Your DevOps 'Tool Tax' Weighing You D...
OSSF 2018 - Brandon Jung of GitLab - Is Your DevOps 'Tool Tax' Weighing You D...OSSF 2018 - Brandon Jung of GitLab - Is Your DevOps 'Tool Tax' Weighing You D...
OSSF 2018 - Brandon Jung of GitLab - Is Your DevOps 'Tool Tax' Weighing You D...
 
Naresh Chirra
Naresh ChirraNaresh Chirra
Naresh Chirra
 
Quality Attributes of Web Software
Quality Attributes of Web Software Quality Attributes of Web Software
Quality Attributes of Web Software
 
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
 
L'impatto della sicurezza su DevOps
L'impatto della sicurezza su DevOpsL'impatto della sicurezza su DevOps
L'impatto della sicurezza su DevOps
 
Intro
IntroIntro
Intro
 
Lecture 02 Software Management Renaissance.ppt
Lecture 02 Software Management Renaissance.pptLecture 02 Software Management Renaissance.ppt
Lecture 02 Software Management Renaissance.ppt
 
Seminar VU Amsterdam 2015
Seminar VU Amsterdam 2015Seminar VU Amsterdam 2015
Seminar VU Amsterdam 2015
 
AA using WS vanZyl 2002-05-06
AA using WS vanZyl 2002-05-06AA using WS vanZyl 2002-05-06
AA using WS vanZyl 2002-05-06
 

More from Gail Murphy

The (Un) Expected Impact of Tools in Software Evolution
The (Un) Expected Impact of Tools in Software EvolutionThe (Un) Expected Impact of Tools in Software Evolution
The (Un) Expected Impact of Tools in Software Evolution
Gail Murphy
 
Icsme 2021-keynote-creating-usable-and-useful-software-tools
Icsme 2021-keynote-creating-usable-and-useful-software-toolsIcsme 2021-keynote-creating-usable-and-useful-software-tools
Icsme 2021-keynote-creating-usable-and-useful-software-tools
Gail Murphy
 
Is software engineering research addressing software engineering problems?
Is software engineering research addressing software engineering problems?Is software engineering research addressing software engineering problems?
Is software engineering research addressing software engineering problems?
Gail Murphy
 
Developing Effective Software Productively
Developing Effective Software ProductivelyDeveloping Effective Software Productively
Developing Effective Software Productively
Gail Murphy
 
Making Effective, Useful Software Development Tools
Making Effective, Useful Software Development ToolsMaking Effective, Useful Software Development Tools
Making Effective, Useful Software Development Tools
Gail Murphy
 
The Need for Context in Software Engineering
The Need for Context in Software EngineeringThe Need for Context in Software Engineering
The Need for Context in Software Engineering
Gail Murphy
 
Beyond DevOps: Finding Value through Requirements
Beyond DevOps: Finding Value through RequirementsBeyond DevOps: Finding Value through Requirements
Beyond DevOps: Finding Value through Requirements
Gail Murphy
 
Impactful SE Research: Some Do's and More Don'ts
Impactful SE Research: Some Do's and More Don'tsImpactful SE Research: Some Do's and More Don'ts
Impactful SE Research: Some Do's and More Don'ts
Gail Murphy
 
The Elusive Nature of Context: Why We Need It and Were We Might Find It
The Elusive Nature of Context: Why We Need It and Were We Might Find ItThe Elusive Nature of Context: Why We Need It and Were We Might Find It
The Elusive Nature of Context: Why We Need It and Were We Might Find It
Gail Murphy
 
Human-centric Software Development Tools
Human-centric Software Development ToolsHuman-centric Software Development Tools
Human-centric Software Development Tools
Gail Murphy
 
Implications of Open Source Software Use (or Let's Talk Open Source)
Implications of Open Source Software Use (or Let's Talk Open Source)Implications of Open Source Software Use (or Let's Talk Open Source)
Implications of Open Source Software Use (or Let's Talk Open Source)
Gail Murphy
 
Is Continuous Adoption in Software Engineering Achievable and Desirable?
Is Continuous Adoption in Software Engineering Achievable and Desirable? Is Continuous Adoption in Software Engineering Achievable and Desirable?
Is Continuous Adoption in Software Engineering Achievable and Desirable?
Gail Murphy
 
Acm productivity-webinar-2016-slides
Acm productivity-webinar-2016-slidesAcm productivity-webinar-2016-slides
Acm productivity-webinar-2016-slides
Gail Murphy
 
Software Supply Chains
Software Supply ChainsSoftware Supply Chains
Software Supply Chains
Gail Murphy
 
Getting to Flow in Software Development (ASWEC 2014 Keynote)
Getting to Flow in Software Development (ASWEC 2014 Keynote)Getting to Flow in Software Development (ASWEC 2014 Keynote)
Getting to Flow in Software Development (ASWEC 2014 Keynote)
Gail Murphy
 
The Human Element
The Human ElementThe Human Element
The Human Element
Gail Murphy
 
What is Software Development Productivity Anyway?
What is Software Development Productivity Anyway?What is Software Development Productivity Anyway?
What is Software Development Productivity Anyway?
Gail Murphy
 

More from Gail Murphy (17)

The (Un) Expected Impact of Tools in Software Evolution
The (Un) Expected Impact of Tools in Software EvolutionThe (Un) Expected Impact of Tools in Software Evolution
The (Un) Expected Impact of Tools in Software Evolution
 
Icsme 2021-keynote-creating-usable-and-useful-software-tools
Icsme 2021-keynote-creating-usable-and-useful-software-toolsIcsme 2021-keynote-creating-usable-and-useful-software-tools
Icsme 2021-keynote-creating-usable-and-useful-software-tools
 
Is software engineering research addressing software engineering problems?
Is software engineering research addressing software engineering problems?Is software engineering research addressing software engineering problems?
Is software engineering research addressing software engineering problems?
 
Developing Effective Software Productively
Developing Effective Software ProductivelyDeveloping Effective Software Productively
Developing Effective Software Productively
 
Making Effective, Useful Software Development Tools
Making Effective, Useful Software Development ToolsMaking Effective, Useful Software Development Tools
Making Effective, Useful Software Development Tools
 
The Need for Context in Software Engineering
The Need for Context in Software EngineeringThe Need for Context in Software Engineering
The Need for Context in Software Engineering
 
Beyond DevOps: Finding Value through Requirements
Beyond DevOps: Finding Value through RequirementsBeyond DevOps: Finding Value through Requirements
Beyond DevOps: Finding Value through Requirements
 
Impactful SE Research: Some Do's and More Don'ts
Impactful SE Research: Some Do's and More Don'tsImpactful SE Research: Some Do's and More Don'ts
Impactful SE Research: Some Do's and More Don'ts
 
The Elusive Nature of Context: Why We Need It and Were We Might Find It
The Elusive Nature of Context: Why We Need It and Were We Might Find ItThe Elusive Nature of Context: Why We Need It and Were We Might Find It
The Elusive Nature of Context: Why We Need It and Were We Might Find It
 
Human-centric Software Development Tools
Human-centric Software Development ToolsHuman-centric Software Development Tools
Human-centric Software Development Tools
 
Implications of Open Source Software Use (or Let's Talk Open Source)
Implications of Open Source Software Use (or Let's Talk Open Source)Implications of Open Source Software Use (or Let's Talk Open Source)
Implications of Open Source Software Use (or Let's Talk Open Source)
 
Is Continuous Adoption in Software Engineering Achievable and Desirable?
Is Continuous Adoption in Software Engineering Achievable and Desirable? Is Continuous Adoption in Software Engineering Achievable and Desirable?
Is Continuous Adoption in Software Engineering Achievable and Desirable?
 
Acm productivity-webinar-2016-slides
Acm productivity-webinar-2016-slidesAcm productivity-webinar-2016-slides
Acm productivity-webinar-2016-slides
 
Software Supply Chains
Software Supply ChainsSoftware Supply Chains
Software Supply Chains
 
Getting to Flow in Software Development (ASWEC 2014 Keynote)
Getting to Flow in Software Development (ASWEC 2014 Keynote)Getting to Flow in Software Development (ASWEC 2014 Keynote)
Getting to Flow in Software Development (ASWEC 2014 Keynote)
 
The Human Element
The Human ElementThe Human Element
The Human Element
 
What is Software Development Productivity Anyway?
What is Software Development Productivity Anyway?What is Software Development Productivity Anyway?
What is Software Development Productivity Anyway?
 

Recently uploaded

Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
fredae14
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
OpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - AuthorizationOpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - Authorization
David Brossard
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 

Recently uploaded (20)

Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
OpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - AuthorizationOpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - Authorization
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 

Architecting-Flow-in-SE.pdf

  • 1. Architecting Flow in Software Engineering G a i l C . M u r p h y U n i v e r s i t y o f B r i t i s h C o l u m b i a except for images where noted @gail_murphy
  • 2. Software engineering occurs at different scales Image not copyable
  • 3. INDIVIDUAL COMPONENT E.G., BRAKE CAR & ENVIRONMENT E.G., LANE DEPARTURE CAR-CAR INTERACTIONS E.G., SMART TRAFFIC Software engineering occurs at different scales INTEGRATED COMPONENTS E.G., BRAKE & CRUISE Images not copyable
  • 4. Software engineering involves multi-person multi-version development — Brian Randell [Parnas 2011]
  • 5. Software engineering involves multi-person multi-version development And many more… Tools to manage technical artifacts
  • 6. Software engineering involves multi-person multi-version development And many more… Tools to support social interaction
  • 7. Software engineering involves multi-person multi-version development Some integration between social and technical tools But limited, more is possible
  • 8. Architecting Flow in Software Engineering Software engineering is a socio-technical endeavour T V Y I 1 S S&T T S&T T Increasing focus on tool architectures and value streams can increase quality and productivity S = Social Tool T = Technical Tool
  • 9. 1 Socio-Technical Congruence 2 Information Flow 3 Tool Architecture 4 Architecting Flow “Why” “What” “How” “How”
  • 10. 1 Socio-Technical Congruence 2 Information Flow 3 Tool Architecture 4 Architecting Flow
  • 11. Completely network collaborative services via centric initiatives. Completely network collaborative services via centric initiatives. Completely network collaborative services via centric initiatives. Socio-technical congruence A B C Technical dependencies between modules Coordination needs between teams Team for A Team for C Team for B Congruence leads to improved productivity Higher levels of congruence associated with lower levels of fault proneness [Cataldo & Herbsleb, 2013]
  • 12. Example 1: Within System Cataldo & Herbsleb studied two developments in depth - Project A - Distributed system for a data storage product (114 developers, 5m lines of code, C & C++) - Project B - Embedded system for automotive sector (380 developers, 8 sites, 7m lines of code, C) Less mature system More mature system finding that: Higher-levels of socio-technical congruence are associated with better software quality. True for both projects, but with more benefit for Project B (more mature). Higher-levels of socio-technical congruence associated with improvements in productivity. True for both projects, but with more benefit for Project A (less mature). [Cataldo & Herbsleb, 2013]
  • 13. Example 2: Integrated Systems Integrator (Boeing) Supplier (Crane/ GE) https://www.reuters.com/article/us-airshow-boeing-787-idUSL1559730020080715
  • 14. Example 3: Between Systems What happens in ecosystems that are weakly inter-connected, like Java? Guava mcMMO Vault Netty Assertj Junit Appsgate JSONassert 0% 25% 50% 75% 100% 4 32 256 2048 Number of user repositories R s : Ratio of user repositories having a social link Red Dots are Java projects on GitHub. The farther right, the more other technically dependent Java systems. [Palyart, Murphy & Masrani, 2017]
  • 15. Example 3: Between Systems What happens in ecosystems that are weakly inter-connected, like Java? Guava mcMMO Vault Netty Assertj Junit Appsgate JSONassert 0% 25% 50% 75% 100% 4 32 256 2048 Number of user repositories R s : Ratio of user repositories having a social link This is a testing library (JUnit) with lots of systems using it. [Palyart, Murphy & Masrani, 2017]
  • 16. Example 3: Between Systems What happens in ecosystems that are weakly inter-connected, like Java? Guava mcMMO Vault Netty Assertj Junit Appsgate JSONassert 0% 25% 50% 75% 100% 4 32 256 2048 Number of user repositories R s : Ratio of user repositories having a social link The vertical axis provides an indication of how many of the using systems have a social dependence. Reasonable number of using systems and high-level of social dependencies from those systems. Lots of users, less social dependencies from those systems. [Palyart, Murphy & Masrani, 2017]
  • 17. Scale Why (examples) What How Within system Increased productivity and quality Integrated system Avoid integration failures Between systems Improve planning Architecting Flow
  • 18. Scale Why (examples) What How Within system Increased productivity and quality Integrated system Avoid integration failures Between systems Improve planning Architecting Flow Focus will be on “within system” and “between systems” for remainder of talk
  • 19. 1 Socio-Technical Congruence 2 Information Flow 3 Tool Architecture 4 Architecting Flow
  • 20. A B C Technical dependencies between modules Coordination needs between teams Team for A Team for C Team for B Information flow Information flow related to technical dependence Is related to software architecture Software architecture specification, evolution, recovery, practices, etc. are well-established
  • 21. A B C Technical dependencies between modules Coordination needs between teams Team for A Team for C Team for B Information flow Information flow to support coordination needs is less established Focus in this talk will be on information flow related to coordination
  • 22. 03 02 01 04 Features Types of information flowing through a software development Defects Debts Risks Four types of Flow Items — Mik Kersten, 2018
  • 23. A “Within System” Conceptual Example An automotive company building a hybrid or electric vehicle with regenerative braking Image not copyable
  • 24. Requirement: Provide regenerative braking Task: Design algorithm for regenerative braking Task: Gain input from brake sensors Task: Reverse engine Task: Route electricity from motor to batteries Task: Simulate algorithm for regenerative braking Task: Implement algorithm for regenerative braking Task: Test algorithm for regenerative braking Task: Performance test algorithm for regenerative braking Etc. etc. etc. Information flow items related to a Feature Image not copyable
  • 25. Requirement: Provide regenerative braking Task: Design algorithm for regenerative braking Task: Simulate algorithm for regenerative braking Task: Implement algorithm for regenerative braking Task: Test algorithm for regenerative braking Task: Performance test algorithm for regenerative braking Etc. etc. etc. Information flow items related to a Feature Requirements Team Design Team Dev Team #1 Dev Team #2 Test Team Image not copyable
  • 26. Etc. etc. etc. Information flow items related to a Feature Requirements Team Design Team Dev Team #1 Dev Team #2 Test Team Image not copyable
  • 27. Etc. etc. etc. Information flow items related to a Defect Requirements Team Design Team Dev Team #1 Dev Team #2 Test Team Defect Team Defect: Problems with anti-lock braking Etc. etc. etc. Image not copyable
  • 28. Etc. etc. etc. Information flow items related to a Feature and Defect Requirements Team Design Team Dev Team #1 Dev Team #2 Test Team Defect Team Defect: Problems with anti-lock braking Etc. etc. etc. Technical: Algorithm Spec Social: Discussion about Spec Technical: Environment conditions for defect Social: Discussion to gather more environmental info Image not copyable
  • 29. An “Integrated System” Conceptual Example An airline manufacturer contracting the braking system for the plane Image not copyable
  • 30. Information flow items Feature: Provide braking component Integrator Supplier Image not copyable
  • 31. Information flow items Feature: Provide braking component Integrator Supplier Requirements Team Development Team Quality Assurance Team Technical: component Social: interface discussion More limited content on flow Items between integrator and supplier Image not copyable
  • 32. Scale Why (examples) What How Within system Increased productivity and quality Features, Defects, Risks and Debts Integrated system Avoid integration failures Likely contractually limited to features and defects Architecting Flow
  • 33. 1 Socio-Technical Congruence 2 Information Flow 3 Tool Architecture 4 Architecting Flow
  • 34. Modularization of software to reduce team interdependencies degrades over time Teams interchange a variety of technical and social information during development Information flow is constant, complex and changing Organization and software structure will not suffice
  • 35. Requirements Team Design Team Dev Team #1 Dev Team #2 Test Team Tools can help track information T Requirements V Features I Tasks Defects I Tasks Defects Y Test
  • 36. Requirements Team Design Team Dev Team #1 Dev Team #2 Test Team
  • 37. Requirements Team Design Team Dev Team #1 Dev Team #2 Test Team Tool architectures with an integration substrate can help information flow T Requirements V Features I Tasks I Tasks Defects Defects Y Test
  • 38. An example tool architecture With thanks to Tasktop Technologies Inc. for the diagram. Diagram may not be copied.
  • 39. Tool architectures vary With thanks to Tasktop Technologies Inc. for the diagram. Diagram may not be copied.
  • 40. Tool architectures vary With thanks to Tasktop Technologies Inc. for the diagram. Diagram may not be copied. An integration substrate (product) can enable flow across the connectors between tools
  • 41. What about integrated system development? Integrator Supplier A deep relationship between integrator and supplier may see information flow between tools A less trusted relationship may see the Integrator limited to sending defects to the supplier
  • 42. Scale Why (examples) What How Within system Increased productivity and quality Features, Defects, Risks and Debts Tool architecture Integrated system Avoid integration failures Likely contractually limited to features and defects Tool architecture Architecting Flow
  • 43. 1 Socio-Technical Congruence 2 Information Flow 3 Tool Architecture 4 Architecting Flow
  • 44. Tool architectures supported by an integration substrate enable information flow But WHAT information flows should be supported? Information flow is technical and social information and is about features, defects, risks and debts Socio-technical congruence can increase quality and improve productivity Where are we? Images not copyable
  • 45. Completely network collaborative services via centric initiatives. Information flow related to value streams needs to be supported A value stream takes a product or service from beginning through to a customer (who may be internal or external)
  • 46. Completely network collaborative services via centric initiatives. How does a value stream relate to software architecture?
  • 47. 47 Tasktop Viz © Tasktop Technologies, Inc. 2017-2018. All rights reserved. Tracking Information Flow for Value Streams
  • 48. Scale Within system Integrated system Supporting software engineering at different scales Tracking Information Flow for Value Steams Commercial products Commercial products (depending on trust relationship)
  • 49. Scale Why (examples) What How Within system Increased productivity and quality Features, Defects, Risks and Debts Value streams and tool architecture Integrated system Avoid integration failures Likely contractually limited to features and defects Value streams and tool architecture Architecting Flow
  • 50. Many open questions Conway’s law (adage) 1967 Modular software architecture to enable parallel work and enable change (1970s) but… In practice, changes crosscut software architecture, attention is being placed on (often crosscutting) value streams and developers view their teams as fluid so… How should software be organized? How should teams be organized? What metrics should be tracked?
  • 51.
  • 52.
  • 53.
  • 54. T = Technical Tool @gail_murphy
  • 55. [Cataldo & Herbsleb, 2013] Cataldo, M. and Herbsleb, J. Coordination breakdowns and their impact on development productivity and software failures. IEEE TSE, vol 39, no 3, 2013. [Kersten, 2018] Kersten, M. Project to product: How to survive and thrive in the age of digital disruption with the flow framework. IT Revolution Press, 2018. [Palyart, Murphy & Masrani, 2017] Palyart, M., Murphy, G.C. and Masrani, V. A study of social interactions in open source component use. IEEE TSE, vol 44, no 12, 2017. [Parnas 2011] Parnas, D. Software engineering: Multi-person development of multi-version programs. In Dependable and Historic Computing - Essays dedicated to Brian Randell on the Occasion of His 75th Birthday. LNCS Vol. 6875, 2011.