SlideShare a Scribd company logo
1 of 36
Download to read offline
How Libraries Evolve: A Survey of Two Industrial
Companies and an Open-Source Community
1CIRAD, UMR - SENS, Montpellier, France
2Arolla, Paris, France
3Univ. Lille, Inria, CNRS, Centrale Lille, UMR 9189 - CRIStAL
Oleksandr ZAITSEV1, Stéphane DUCASSE 3, Nicolas ANQUETIL 3, Arnaud THIEFAINE 2
29th Asia-Pacific Software Engineering Conference (APSEC 2022)
oleksandr.zaitsev@cirad.fr
2
Arolla is a consulting company specialised in
the advanced techniques of software development:
Clean Code, TDD, BDD, Legacy Remediation, etc.
https://www.arolla.fr/
Introduction
Part 1:
4
Library Evolution & Update
Client
System
Library
v1.0
Client
Developer
Library
Developer
depends
Part 1 / 5
5
Client
System
Library
v1.0
Library
v2.0
Client
Developer
Library
Developer
depends
Library Evolution
Library Evolution & Update
Part 1 / 5
6
Client
System
Library
v1.0
Library
v2.0
Client
Developer
Library
Developer
depends
Library Evolution
! Errors!
Library Evolution & Update
Part 1 / 5
7
Updated
Client
System
Client
System
Library
v1.0
Library
v2.0
Client
Developer
Library
Developer
depends
Library Evolution
Library Update
Library Evolution & Update
Part 1 / 5
8
Updated
Client
System
Client
System
Library
v1.0
Library
v2.0
Client
Developer
Library
Developer
depends
Understanding the Developers
Part 1 / 5
Tools to support
client developers
Tools to support
library developers
9
Updated
Client
System
Client
System
Library
v1.0
Library
v2.0
Client
Developer
Library
Developer
depends
‣ How do they behave
in the context of
library update?
‣ What problems do
they face?
‣ What support do
they need?
Understanding the Developers
Part 1 / 5
State of the Art
Part 2:
11
Technique Perspective
Client developer
Library developer
Both
Developer survey
Code analysis
SOTA: Criteria
Part 2 / 5
12
Paper Survey Code Analysis Client Dev. Library Dev.
[Robbes 2012a] X ✓ ✓ X
[Jezek 2015] X ✓ ✓ ✓
[Hora 2015] X ✓ ✓ X
[Bogart 2016] ✓ X ✓ ✓
[Sawant 2016] X ✓ ✓ X
[Xavier 2017a] X ✓ ✓ ✓
[Xavier 2017b] ✓ X X ✓
[Hora 2018] X ✓ ✓ X
[Kula 2018a] ✓ ✓ ✓ X
[Kula 2018b] X ✓ X ✓
[Brito 2019] ✓ X ✓ ✓
SOTA: Empirical Studies
Part 2 / 5
13
1. Most surveys analyse specific cases of breaking changes.
2. No survey has asked client developers about what makes
library update hard and what makes it easy.
SOTA: Shortcomings
Part 2 / 5
Survey Setup
& Population
Part 3:
15
Research Questions
Part 3 / 5
How do they perceive the impact
of library evolution on their clients?
Why do they introduce breaking
changes?
How motivated are they to support
their clients?
How do they help their clients to
update?
How do they perceive the impact of
library evolution on their systems?
What makes library update easy and
what makes it hard?
RQ1.
RQ2.
RQ3.
RQ4.
RQ5.
RQ6.
Library Developers Client Developers
16
Pharo (open-source)
Pure object-oriented programming language designed in tradition of
Smalltalk. It is also an IDE developed entirely in itself.
Why? We are members of this community and have access to developers
Communities
Part 3 / 5
Arolla (industry)
Medium-size software consulting company - each dev. has their own project
Berger-Levrault (industry)
Medium-size software company - dev. work in teams
Why? We collaborate with both companies and they agreed to participate
17
Open-Source
(33)
Industry
(14)
Unspecified
(8)
Library developers
(18)
11 5 2
Client Developers
(37)
22 9 6
participation was optional;
surveys were shared
through community chats
and forums
Developer Population
Part 3 / 5
?
18
Q: What software they develop?
Library Developers
Part 3 / 5
Q: What is their level of expertise?
Expert
Advanced
Intermediate
Beginner
Absolute novice
5
9
3
0
0
Library
Framework
SDK
Microservices
Other
15
10
4
4
3
19
Libraries and frameworks
Web (back end)
Web (front end)
Desktop applications
IDE
Compilers / VM
Mobile applications
Embedded systems
Security
Other
Q: What software they develop?
Client Developers
22
Part 3 / 5
21
16
12
9
6
4
2
2
5
Q: What is their level of expertise?
Expert
Advanced
Intermediate
Beginner
Absolute novice
8
18
6
2
0
Survey Results
Part 4:
21
Q: Do you think that breaking changes in
your releases have big impact on clients?
RQ1. Perception of impact
Very small impact
Small impact
Moderate impact
Big impact
Very big impact
1
0
9
6
2
Part 4 / 5
Library
Dev.
Less than an hour
Half a day
One day
Several days
A week or more
3
7
4
3
1
Q: How much time do you think client
developers need to update to the new
version of your library?
22
RQ2. Why introduce BC?
Part 4 / 5
Library
Dev.
Q: What are your primary reasons for introducing
breaking changes?
Implementing a new feature
API simpli
fi
cation
Improving maintainability
Bug
fi
xing
Other
12
11
6
11
2
This confirms the results of
[Brito et al., 2019]
23
Q: How important is it for you to maintain
backward compatibility?
RQ3. Motivation to support clients
Not important at all
Of little importance
Of average importance
Very important
Absolutely essential 1
8
5
4
0
Part 4 / 5
Library
Dev.
Not important at all
Of little importance
Of average importance
Very important
Absolutely essential
0
8
4
5
1
Q: How important is it for you to
encourage clients to update to the latest
version?
24
RQ4. How do they support clients?
Part 4 / 5
Library
Dev.
Q: When you are forced to break backward
compatibility, what do you do to reduce the
negative impact on users?
(open question)
Practice mentioned dev.
Documentation 8
Deprecation 4
Automation 4
Communication 3
3x a year or more often
Twice a year
Once a year
Less often
We do not do it regularly
25
Q: How much time does it usually take you
to update your dependencies?
RQ5. Perception of impact
Less than an hour
Half a day
One day
Several days
One week or more
17
10
3
3
1
Part 4 / 5
Client
Dev.
9
11
6
9
3
Q: Try to estimate how often do you have
to deal with the task of updating
dependencies?
26
RQ6. What makes it easy/hard?
Part 4 / 5
Client
Dev.
Q: What makes library update easy? Q: What makes it hard?
Factor dev.
Documentation 15
Absence of breaking changes 11
Test coverage 6
Tool support 5
Deprecations 4
Simple breaking changes 4
Community support 3
Factor dev.
Breaking changes 11
Absent or bad documentation 10
Indirect dependencies 7
Big changes to the API 7
Poor test coverage 4
Removed functionality 3
Changed hooks or abs. classes 3
27
Library
Developers
Client
Developers
‣ Often have to deal with the
problem of library update
‣ Need documentation and support
for breaking changes
‣ Want to help their clients
to update
Key Takeaways
Part 4 / 5
Conclusion
Part 5:
Contributions
29
Part 5 / 5
✓ Surveys of library and client developers from different communities.
✓ We are the first to ask client developers what is the support that they need
✓ We confirmed the results of previous studies on the motivation of library
dev. to introduce breaking changes and understanding of their impact.
Threats to Validity
30
Internal External Construct
‣ General questions
‣ Only Pharo has
transforming
deprecations
‣ Some developers
answered both
surveys
Part 5 / 5
Conclusion
‣ Some participants
know us and our
research
‣ Relatively small size
of libraries
(no more than
500 clients)
‣ Some RQ can not
be expressed as
survey questions
‣ Most questions
have the list of
options
‣ Client perception
depends on how
the library is used
‣ Relatively small
population size
‣ No statistical tests.
Only descriptive
statistics
✓ Surveys of library and client developers
from different communities.
✓ We are the first to ask client developers
what is the support that they need
✓ We confirmed the results of previous
studies on the motivation of library dev.
to introduce breaking changes and
understanding of their impact.
Summary
Contributions:
Updated
Client
System
Client
System
Library
v1.0
Library
v2.0
Client
Developer
Library
Developer
depends
Key takeaways:
• Often have to deal with the
problem of library update
• Need documentation and
support for breaking changes
• Want to help
their clients
to update
Client
Developers
Library
Developers
Threats to Internal Validity
33
Support
• We asked about general experience, not specific projects.
(hard to analyse the context that originate certain situations / decisions)
• Some questions were hard to answer generally
(e.g., how much time it takes for clients to update)
• The transforming deprecations mechanism may have affected how Pharo
developers answered this survey.
• Some developers could have answered both surveys.
Threats to External Validity
34
Support
• Some participants could know us personally and be aware of our research
(for convenience, we enlisted developers from the open-source community
that we are part of and companies that we collaborate with)
• Relatively small size of libraries: no more than 500 clients
(this is also a novelty because most related works focus only large libraries
which might introduce a bias)
Threats to Construct Validity
35
Support
• Some research questions could not be fully expressed with survey questions
(e.g., to measure the impact of library evolution, we ask how clients perceive
this impact and how much time it takes to update)
• Most questions were not open but based on the list of options.
• The perception of the impact of breaking changes may tell us about the way
client uses the library rather than the actual impact
Threats to Conclusion Validity
36
Support
• Population size is relatively small — 18 library and 37 client developers
(comparable to other surveys in this field: 28 dev., 7 dev., 16 dev., 102 dev.)
• Did not perform statistical tests and drew conclusions from descriptive stats.
(because of the small population size)

More Related Content

Similar to How Libraries Evolve and Developers Update

Open Source Project Management
Open Source Project ManagementOpen Source Project Management
Open Source Project ManagementSemen Arslan
 
Accessibility in the Engineering Village CSUN 2019
Accessibility in the Engineering Village CSUN 2019Accessibility in the Engineering Village CSUN 2019
Accessibility in the Engineering Village CSUN 2019Ted Gies
 
Designing API Platforms that Developers Love - New York Life Build Blue May 2017
Designing API Platforms that Developers Love - New York Life Build Blue May 2017Designing API Platforms that Developers Love - New York Life Build Blue May 2017
Designing API Platforms that Developers Love - New York Life Build Blue May 2017Deepak Nadig
 
software Prototyping model
software Prototyping modelsoftware Prototyping model
software Prototyping modelSankeerthanaS1
 
Agile Development – Why requirements matter by Fariz Saracevic
Agile Development – Why requirements matter by Fariz SaracevicAgile Development – Why requirements matter by Fariz Saracevic
Agile Development – Why requirements matter by Fariz SaracevicAgile ME
 
Sample project requirements document
Sample project requirements documentSample project requirements document
Sample project requirements documentALATechSource
 
Six Principles of Software Design to Empower Scientists
Six Principles of Software Design to Empower ScientistsSix Principles of Software Design to Empower Scientists
Six Principles of Software Design to Empower ScientistsDavid De Roure
 
Scaling Software Delivery.pdf
Scaling Software Delivery.pdfScaling Software Delivery.pdf
Scaling Software Delivery.pdfTiffany Jachja
 
Introduction to Software Development Life Cycle.pptx
Introduction to Software Development Life Cycle.pptxIntroduction to Software Development Life Cycle.pptx
Introduction to Software Development Life Cycle.pptxGodwin Monserate
 
CSUN 2017 VPATs For Business or Measure
CSUN 2017 VPATs For Business or MeasureCSUN 2017 VPATs For Business or Measure
CSUN 2017 VPATs For Business or MeasureTed Gies
 
InnerSourcing - Worldwide enterprise development teams collaboration
InnerSourcing - Worldwide enterprise development teams collaborationInnerSourcing - Worldwide enterprise development teams collaboration
InnerSourcing - Worldwide enterprise development teams collaborationJulian Werba
 
Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycleAfrasiyab Haider
 
Designing A Waterfall Approach For Software Development Essay
Designing A Waterfall Approach For Software Development EssayDesigning A Waterfall Approach For Software Development Essay
Designing A Waterfall Approach For Software Development EssayAlison Reed
 

Similar to How Libraries Evolve and Developers Update (20)

Open Source Project Management
Open Source Project ManagementOpen Source Project Management
Open Source Project Management
 
Cnpm bkdn
Cnpm bkdnCnpm bkdn
Cnpm bkdn
 
Accessibility in the Engineering Village CSUN 2019
Accessibility in the Engineering Village CSUN 2019Accessibility in the Engineering Village CSUN 2019
Accessibility in the Engineering Village CSUN 2019
 
Designing API Platforms that Developers Love - New York Life Build Blue May 2017
Designing API Platforms that Developers Love - New York Life Build Blue May 2017Designing API Platforms that Developers Love - New York Life Build Blue May 2017
Designing API Platforms that Developers Love - New York Life Build Blue May 2017
 
software Prototyping model
software Prototyping modelsoftware Prototyping model
software Prototyping model
 
Open access Jornal
Open access JornalOpen access Jornal
Open access Jornal
 
From e-Lib to NOF-digi and beyond
From e-Lib to NOF-digi and beyondFrom e-Lib to NOF-digi and beyond
From e-Lib to NOF-digi and beyond
 
Agile Development – Why requirements matter by Fariz Saracevic
Agile Development – Why requirements matter by Fariz SaracevicAgile Development – Why requirements matter by Fariz Saracevic
Agile Development – Why requirements matter by Fariz Saracevic
 
Sample project requirements document
Sample project requirements documentSample project requirements document
Sample project requirements document
 
Six Principles of Software Design to Empower Scientists
Six Principles of Software Design to Empower ScientistsSix Principles of Software Design to Empower Scientists
Six Principles of Software Design to Empower Scientists
 
Scaling Software Delivery.pdf
Scaling Software Delivery.pdfScaling Software Delivery.pdf
Scaling Software Delivery.pdf
 
Introduction to Software Development Life Cycle.pptx
Introduction to Software Development Life Cycle.pptxIntroduction to Software Development Life Cycle.pptx
Introduction to Software Development Life Cycle.pptx
 
Bank managment system
Bank managment systemBank managment system
Bank managment system
 
CSUN 2017 VPATs For Business or Measure
CSUN 2017 VPATs For Business or MeasureCSUN 2017 VPATs For Business or Measure
CSUN 2017 VPATs For Business or Measure
 
Perforce Scm best practices
Perforce Scm best practicesPerforce Scm best practices
Perforce Scm best practices
 
InnerSourcing - Worldwide enterprise development teams collaboration
InnerSourcing - Worldwide enterprise development teams collaborationInnerSourcing - Worldwide enterprise development teams collaboration
InnerSourcing - Worldwide enterprise development teams collaboration
 
Week1.pptx
Week1.pptxWeek1.pptx
Week1.pptx
 
Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycle
 
Designing A Waterfall Approach For Software Development Essay
Designing A Waterfall Approach For Software Development EssayDesigning A Waterfall Approach For Software Development Essay
Designing A Waterfall Approach For Software Development Essay
 
System Development Life Cycle Models
System Development Life Cycle ModelsSystem Development Life Cycle Models
System Development Life Cycle Models
 

More from Oleksandr Zaitsev

Cormas: Modelling for Citizens with Citizens. Building accessible and reliabl...
Cormas: Modelling for Citizens with Citizens. Building accessible and reliabl...Cormas: Modelling for Citizens with Citizens. Building accessible and reliabl...
Cormas: Modelling for Citizens with Citizens. Building accessible and reliabl...Oleksandr Zaitsev
 
Agent-Based Modelling in Pharo Using Cormas
Agent-Based Modelling in Pharo Using CormasAgent-Based Modelling in Pharo Using Cormas
Agent-Based Modelling in Pharo Using CormasOleksandr Zaitsev
 
AI for Software Engineering:
Research & Innovation
AI for Software Engineering:
Research & InnovationAI for Software Engineering:
Research & Innovation
AI for Software Engineering:
Research & InnovationOleksandr Zaitsev
 
How Fast is AI in Pharo? Benchmarking Linear Regression
How Fast is AI in Pharo? Benchmarking Linear RegressionHow Fast is AI in Pharo? Benchmarking Linear Regression
How Fast is AI in Pharo? Benchmarking Linear RegressionOleksandr Zaitsev
 
DepMiner: Automatic Recommendation of Transformation Rules for Method Depreca...
DepMiner: Automatic Recommendation of Transformation Rules for Method Depreca...DepMiner: Automatic Recommendation of Transformation Rules for Method Depreca...
DepMiner: Automatic Recommendation of Transformation Rules for Method Depreca...Oleksandr Zaitsev
 
Suggesting Descriptive Method Names: An Exploratory Study of Two Machine Lear...
Suggesting Descriptive Method Names: An Exploratory Study of Two Machine Lear...Suggesting Descriptive Method Names: An Exploratory Study of Two Machine Lear...
Suggesting Descriptive Method Names: An Exploratory Study of Two Machine Lear...Oleksandr Zaitsev
 
Machine Learning-based Tools to Support Library Update
Machine Learning-based Tools to Support Library UpdateMachine Learning-based Tools to Support Library Update
Machine Learning-based Tools to Support Library UpdateOleksandr Zaitsev
 
Introduction to Git Version Control System
Introduction to Git Version Control SystemIntroduction to Git Version Control System
Introduction to Git Version Control SystemOleksandr Zaitsev
 
Aspects of software naturalness through the generation of IdentifierNames
Aspects of software naturalness through the generation of IdentifierNamesAspects of software naturalness through the generation of IdentifierNames
Aspects of software naturalness through the generation of IdentifierNamesOleksandr Zaitsev
 

More from Oleksandr Zaitsev (15)

Cormas: Modelling for Citizens with Citizens. Building accessible and reliabl...
Cormas: Modelling for Citizens with Citizens. Building accessible and reliabl...Cormas: Modelling for Citizens with Citizens. Building accessible and reliabl...
Cormas: Modelling for Citizens with Citizens. Building accessible and reliabl...
 
Cormas RMoD
Cormas RMoDCormas RMoD
Cormas RMoD
 
Cirad Parcours
Cirad ParcoursCirad Parcours
Cirad Parcours
 
Cirad Concours
Cirad ConcoursCirad Concours
Cirad Concours
 
Agent-Based Modelling in Pharo Using Cormas
Agent-Based Modelling in Pharo Using CormasAgent-Based Modelling in Pharo Using Cormas
Agent-Based Modelling in Pharo Using Cormas
 
AI for Software Engineering:
Research & Innovation
AI for Software Engineering:
Research & InnovationAI for Software Engineering:
Research & Innovation
AI for Software Engineering:
Research & Innovation
 
PolyMath (ESUG 2022)
PolyMath (ESUG 2022)PolyMath (ESUG 2022)
PolyMath (ESUG 2022)
 
How Fast is AI in Pharo? Benchmarking Linear Regression
How Fast is AI in Pharo? Benchmarking Linear RegressionHow Fast is AI in Pharo? Benchmarking Linear Regression
How Fast is AI in Pharo? Benchmarking Linear Regression
 
DepMiner: Automatic Recommendation of Transformation Rules for Method Depreca...
DepMiner: Automatic Recommendation of Transformation Rules for Method Depreca...DepMiner: Automatic Recommendation of Transformation Rules for Method Depreca...
DepMiner: Automatic Recommendation of Transformation Rules for Method Depreca...
 
Suggesting Descriptive Method Names: An Exploratory Study of Two Machine Lear...
Suggesting Descriptive Method Names: An Exploratory Study of Two Machine Lear...Suggesting Descriptive Method Names: An Exploratory Study of Two Machine Lear...
Suggesting Descriptive Method Names: An Exploratory Study of Two Machine Lear...
 
Machine Learning-based Tools to Support Library Update
Machine Learning-based Tools to Support Library UpdateMachine Learning-based Tools to Support Library Update
Machine Learning-based Tools to Support Library Update
 
Introduction to Git Version Control System
Introduction to Git Version Control SystemIntroduction to Git Version Control System
Introduction to Git Version Control System
 
PhD Roadmap
PhD RoadmapPhD Roadmap
PhD Roadmap
 
Magic Literals in Pharo
Magic Literals in PharoMagic Literals in Pharo
Magic Literals in Pharo
 
Aspects of software naturalness through the generation of IdentifierNames
Aspects of software naturalness through the generation of IdentifierNamesAspects of software naturalness through the generation of IdentifierNames
Aspects of software naturalness through the generation of IdentifierNames
 

Recently uploaded

Zer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfZer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfmaor17
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldRoberto Pérez Alcolea
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsJean Silva
 
Revolutionize Your Video Editing with InVideo.io: A Comprehensive Review
Revolutionize Your Video Editing with InVideo.io: A Comprehensive ReviewRevolutionize Your Video Editing with InVideo.io: A Comprehensive Review
Revolutionize Your Video Editing with InVideo.io: A Comprehensive Reviewjw364beach
 
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...kalichargn70th171
 
full course of software engineering mid term.pdf
full course of software engineering mid term.pdffull course of software engineering mid term.pdf
full course of software engineering mid term.pdfAbdul salam
 
Understanding Plagiarism: Causes, Consequences and Prevention.pptx
Understanding Plagiarism: Causes, Consequences and Prevention.pptxUnderstanding Plagiarism: Causes, Consequences and Prevention.pptx
Understanding Plagiarism: Causes, Consequences and Prevention.pptxSasikiranMarri
 
AmsterdamJUG April 2024 - Going serverless with Quarkus GraalVM native images...
AmsterdamJUG April 2024 - Going serverless with Quarkus GraalVM native images...AmsterdamJUG April 2024 - Going serverless with Quarkus GraalVM native images...
AmsterdamJUG April 2024 - Going serverless with Quarkus GraalVM native images...Bert Jan Schrijver
 
What are the core components of Azure Data Engineer courses.docx
What are the core components of Azure Data Engineer courses.docxWhat are the core components of Azure Data Engineer courses.docx
What are the core components of Azure Data Engineer courses.docxkzayra69
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolsosttopstonverter
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slidesvaideheekore1
 
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdfSteve Caron
 
OpenMetadata Community Meeting - 4th April, 2024
OpenMetadata Community Meeting - 4th April, 2024OpenMetadata Community Meeting - 4th April, 2024
OpenMetadata Community Meeting - 4th April, 2024OpenMetadata
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shardsChristopher Curtin
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorTier1 app
 
Effort Estimation Techniques used in Software Projects
Effort Estimation Techniques used in Software ProjectsEffort Estimation Techniques used in Software Projects
Effort Estimation Techniques used in Software ProjectsDEEPRAJ PATHAK
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...OnePlan Solutions
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...Bert Jan Schrijver
 
Advantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptxAdvantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptxRTS corp
 
ETE PPT.pdf LMMKLMKLMLKMLLMJKBHJBHBNUIHBU
ETE PPT.pdf LMMKLMKLMLKMLLMJKBHJBHBNUIHBUETE PPT.pdf LMMKLMKLMLKMLLMJKBHJBHBNUIHBU
ETE PPT.pdf LMMKLMKLMLKMLLMJKBHJBHBNUIHBUsamruddhijedgule2004
 

Recently uploaded (20)

Zer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfZer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdf
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero results
 
Revolutionize Your Video Editing with InVideo.io: A Comprehensive Review
Revolutionize Your Video Editing with InVideo.io: A Comprehensive ReviewRevolutionize Your Video Editing with InVideo.io: A Comprehensive Review
Revolutionize Your Video Editing with InVideo.io: A Comprehensive Review
 
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
 
full course of software engineering mid term.pdf
full course of software engineering mid term.pdffull course of software engineering mid term.pdf
full course of software engineering mid term.pdf
 
Understanding Plagiarism: Causes, Consequences and Prevention.pptx
Understanding Plagiarism: Causes, Consequences and Prevention.pptxUnderstanding Plagiarism: Causes, Consequences and Prevention.pptx
Understanding Plagiarism: Causes, Consequences and Prevention.pptx
 
AmsterdamJUG April 2024 - Going serverless with Quarkus GraalVM native images...
AmsterdamJUG April 2024 - Going serverless with Quarkus GraalVM native images...AmsterdamJUG April 2024 - Going serverless with Quarkus GraalVM native images...
AmsterdamJUG April 2024 - Going serverless with Quarkus GraalVM native images...
 
What are the core components of Azure Data Engineer courses.docx
What are the core components of Azure Data Engineer courses.docxWhat are the core components of Azure Data Engineer courses.docx
What are the core components of Azure Data Engineer courses.docx
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration tools
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slides
 
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
 
OpenMetadata Community Meeting - 4th April, 2024
OpenMetadata Community Meeting - 4th April, 2024OpenMetadata Community Meeting - 4th April, 2024
OpenMetadata Community Meeting - 4th April, 2024
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryError
 
Effort Estimation Techniques used in Software Projects
Effort Estimation Techniques used in Software ProjectsEffort Estimation Techniques used in Software Projects
Effort Estimation Techniques used in Software Projects
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
 
Advantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptxAdvantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptx
 
ETE PPT.pdf LMMKLMKLMLKMLLMJKBHJBHBNUIHBU
ETE PPT.pdf LMMKLMKLMLKMLLMJKBHJBHBNUIHBUETE PPT.pdf LMMKLMKLMLKMLLMJKBHJBHBNUIHBU
ETE PPT.pdf LMMKLMKLMLKMLLMJKBHJBHBNUIHBU
 

How Libraries Evolve and Developers Update

  • 1. How Libraries Evolve: A Survey of Two Industrial Companies and an Open-Source Community 1CIRAD, UMR - SENS, Montpellier, France 2Arolla, Paris, France 3Univ. Lille, Inria, CNRS, Centrale Lille, UMR 9189 - CRIStAL Oleksandr ZAITSEV1, Stéphane DUCASSE 3, Nicolas ANQUETIL 3, Arnaud THIEFAINE 2 29th Asia-Pacific Software Engineering Conference (APSEC 2022) oleksandr.zaitsev@cirad.fr
  • 2. 2 Arolla is a consulting company specialised in the advanced techniques of software development: Clean Code, TDD, BDD, Legacy Remediation, etc. https://www.arolla.fr/
  • 4. 4 Library Evolution & Update Client System Library v1.0 Client Developer Library Developer depends Part 1 / 5
  • 9. 9 Updated Client System Client System Library v1.0 Library v2.0 Client Developer Library Developer depends ‣ How do they behave in the context of library update? ‣ What problems do they face? ‣ What support do they need? Understanding the Developers Part 1 / 5
  • 10. State of the Art Part 2:
  • 11. 11 Technique Perspective Client developer Library developer Both Developer survey Code analysis SOTA: Criteria Part 2 / 5
  • 12. 12 Paper Survey Code Analysis Client Dev. Library Dev. [Robbes 2012a] X ✓ ✓ X [Jezek 2015] X ✓ ✓ ✓ [Hora 2015] X ✓ ✓ X [Bogart 2016] ✓ X ✓ ✓ [Sawant 2016] X ✓ ✓ X [Xavier 2017a] X ✓ ✓ ✓ [Xavier 2017b] ✓ X X ✓ [Hora 2018] X ✓ ✓ X [Kula 2018a] ✓ ✓ ✓ X [Kula 2018b] X ✓ X ✓ [Brito 2019] ✓ X ✓ ✓ SOTA: Empirical Studies Part 2 / 5
  • 13. 13 1. Most surveys analyse specific cases of breaking changes. 2. No survey has asked client developers about what makes library update hard and what makes it easy. SOTA: Shortcomings Part 2 / 5
  • 15. 15 Research Questions Part 3 / 5 How do they perceive the impact of library evolution on their clients? Why do they introduce breaking changes? How motivated are they to support their clients? How do they help their clients to update? How do they perceive the impact of library evolution on their systems? What makes library update easy and what makes it hard? RQ1. RQ2. RQ3. RQ4. RQ5. RQ6. Library Developers Client Developers
  • 16. 16 Pharo (open-source) Pure object-oriented programming language designed in tradition of Smalltalk. It is also an IDE developed entirely in itself. Why? We are members of this community and have access to developers Communities Part 3 / 5 Arolla (industry) Medium-size software consulting company - each dev. has their own project Berger-Levrault (industry) Medium-size software company - dev. work in teams Why? We collaborate with both companies and they agreed to participate
  • 17. 17 Open-Source (33) Industry (14) Unspecified (8) Library developers (18) 11 5 2 Client Developers (37) 22 9 6 participation was optional; surveys were shared through community chats and forums Developer Population Part 3 / 5 ?
  • 18. 18 Q: What software they develop? Library Developers Part 3 / 5 Q: What is their level of expertise? Expert Advanced Intermediate Beginner Absolute novice 5 9 3 0 0 Library Framework SDK Microservices Other 15 10 4 4 3
  • 19. 19 Libraries and frameworks Web (back end) Web (front end) Desktop applications IDE Compilers / VM Mobile applications Embedded systems Security Other Q: What software they develop? Client Developers 22 Part 3 / 5 21 16 12 9 6 4 2 2 5 Q: What is their level of expertise? Expert Advanced Intermediate Beginner Absolute novice 8 18 6 2 0
  • 21. 21 Q: Do you think that breaking changes in your releases have big impact on clients? RQ1. Perception of impact Very small impact Small impact Moderate impact Big impact Very big impact 1 0 9 6 2 Part 4 / 5 Library Dev. Less than an hour Half a day One day Several days A week or more 3 7 4 3 1 Q: How much time do you think client developers need to update to the new version of your library?
  • 22. 22 RQ2. Why introduce BC? Part 4 / 5 Library Dev. Q: What are your primary reasons for introducing breaking changes? Implementing a new feature API simpli fi cation Improving maintainability Bug fi xing Other 12 11 6 11 2 This confirms the results of [Brito et al., 2019]
  • 23. 23 Q: How important is it for you to maintain backward compatibility? RQ3. Motivation to support clients Not important at all Of little importance Of average importance Very important Absolutely essential 1 8 5 4 0 Part 4 / 5 Library Dev. Not important at all Of little importance Of average importance Very important Absolutely essential 0 8 4 5 1 Q: How important is it for you to encourage clients to update to the latest version?
  • 24. 24 RQ4. How do they support clients? Part 4 / 5 Library Dev. Q: When you are forced to break backward compatibility, what do you do to reduce the negative impact on users? (open question) Practice mentioned dev. Documentation 8 Deprecation 4 Automation 4 Communication 3
  • 25. 3x a year or more often Twice a year Once a year Less often We do not do it regularly 25 Q: How much time does it usually take you to update your dependencies? RQ5. Perception of impact Less than an hour Half a day One day Several days One week or more 17 10 3 3 1 Part 4 / 5 Client Dev. 9 11 6 9 3 Q: Try to estimate how often do you have to deal with the task of updating dependencies?
  • 26. 26 RQ6. What makes it easy/hard? Part 4 / 5 Client Dev. Q: What makes library update easy? Q: What makes it hard? Factor dev. Documentation 15 Absence of breaking changes 11 Test coverage 6 Tool support 5 Deprecations 4 Simple breaking changes 4 Community support 3 Factor dev. Breaking changes 11 Absent or bad documentation 10 Indirect dependencies 7 Big changes to the API 7 Poor test coverage 4 Removed functionality 3 Changed hooks or abs. classes 3
  • 27. 27 Library Developers Client Developers ‣ Often have to deal with the problem of library update ‣ Need documentation and support for breaking changes ‣ Want to help their clients to update Key Takeaways Part 4 / 5
  • 29. Contributions 29 Part 5 / 5 ✓ Surveys of library and client developers from different communities. ✓ We are the first to ask client developers what is the support that they need ✓ We confirmed the results of previous studies on the motivation of library dev. to introduce breaking changes and understanding of their impact.
  • 30. Threats to Validity 30 Internal External Construct ‣ General questions ‣ Only Pharo has transforming deprecations ‣ Some developers answered both surveys Part 5 / 5 Conclusion ‣ Some participants know us and our research ‣ Relatively small size of libraries (no more than 500 clients) ‣ Some RQ can not be expressed as survey questions ‣ Most questions have the list of options ‣ Client perception depends on how the library is used ‣ Relatively small population size ‣ No statistical tests. Only descriptive statistics
  • 31. ✓ Surveys of library and client developers from different communities. ✓ We are the first to ask client developers what is the support that they need ✓ We confirmed the results of previous studies on the motivation of library dev. to introduce breaking changes and understanding of their impact. Summary Contributions: Updated Client System Client System Library v1.0 Library v2.0 Client Developer Library Developer depends Key takeaways: • Often have to deal with the problem of library update • Need documentation and support for breaking changes • Want to help their clients to update Client Developers Library Developers
  • 32.
  • 33. Threats to Internal Validity 33 Support • We asked about general experience, not specific projects. (hard to analyse the context that originate certain situations / decisions) • Some questions were hard to answer generally (e.g., how much time it takes for clients to update) • The transforming deprecations mechanism may have affected how Pharo developers answered this survey. • Some developers could have answered both surveys.
  • 34. Threats to External Validity 34 Support • Some participants could know us personally and be aware of our research (for convenience, we enlisted developers from the open-source community that we are part of and companies that we collaborate with) • Relatively small size of libraries: no more than 500 clients (this is also a novelty because most related works focus only large libraries which might introduce a bias)
  • 35. Threats to Construct Validity 35 Support • Some research questions could not be fully expressed with survey questions (e.g., to measure the impact of library evolution, we ask how clients perceive this impact and how much time it takes to update) • Most questions were not open but based on the list of options. • The perception of the impact of breaking changes may tell us about the way client uses the library rather than the actual impact
  • 36. Threats to Conclusion Validity 36 Support • Population size is relatively small — 18 library and 37 client developers (comparable to other surveys in this field: 28 dev., 7 dev., 16 dev., 102 dev.) • Did not perform statistical tests and drew conclusions from descriptive stats. (because of the small population size)