SlideShare a Scribd company logo
Why Do We Break APIs?
First Answers from Developers
Laerte Xavier, André Hora, Marco Tulio Valente
Federal University of Minas Gerais, Brazil
SANER 2017
ERA Track
2
Breaking API contracts is
a common practice!
API changes break
compatiblity
28%
Historical and Impact Analysis of API Breaking Changes:
A Large-Scale Study, SANER, 2017
3
4
The rate of breaking changes
increases
over time!
Historical and Impact Analysis of API Breaking Changes:
A Large-Scale Study, SANER, 2017
5
What specific reasons motivate
API breaking changes?
6
RQ1: Why do developers break API contracts?
RQ2: Are developers aware of the impact of
breaking changes on client applications?
Research Questions
7
TOP-317
GITHUB JAVA LIBRARIES
8
TOP-317
GITHUB JAVA LIBRARIES
90
LIBRARIES WITH MORE
THAN 50 BREAKING
CHANGES
9
TOP-317
90
49
EMAILS FROM MAJOR
CONTRIBUTORS
GITHUB JAVA LIBRARIES
LIBRARIES WITH MORE
THAN 50 BREAKING
CHANGES
49
EMAILS
SENT 10
49
EMAILS
SENT
14
ANSWERS
RECEIVED 11
49
EMAILS
SENT
14
ANSWERS
RECEIVED
28%
RESPONSE
RATE 12
13
49
EMAILS
SENT
14
ANSWERS
RECEIVED
7
EMAILS
SELECTED
RESPONSE
RATE
28%
14
15
16
17
18
19
RQ1: Why do developers break API contracts?
RQ2: Are developers aware of the impact of
breaking changes on client applications?
Research Questions
20
Five main reasons
21
“The change leads to better and more developer-friendly
code (for example, to more fluent code).” [D2]
22
“The classes/methods/fields are not removed all, they are
just refactored to a better package signature.” [D6]
23
“Bugfix. For example some of the items shouldn’t be
accessible and were made private.” [D3]
24
“We switched the assertion library on which the library
was based.” [D4]
25
“It’s a deliberate policy. bitcoinj has never done a 1.0
release that would have posted API stability.” [D7]
26
RQ1: Why do developers break API contracts?
RQ2: Are developers aware of the impact of
breaking changes on client applications?
Research Questions
27
SEVEN
ANSWERS
28
FIVE
AWARE
SEVEN
ANSWERS
29
FIVE
AWARE
TWO
UNCLEAR
SEVEN
ANSWERS
30
FIVE
AWARE
TWO
UNCLEAR
SEVEN
ANSWERS
“Once one client asked to
use @Deprecated on old
methods, but we simply
don’t have enough resources
to maintain all deprecated
methods.” [D2]
31
FIVE
AWARE
TWO
UNCLEAR
SEVEN
ANSWERS
“Yes. But we are not Spring
yet. [...] Being a
small-to-middle library has
it’s benefits.” [D2]
32
Five main reasons why developers break APIs
33
Five main reasons why developers break APIs
Most developers are aware of the impact
34
Five main reasons why developers break APIs
Most developers are aware of the impact
In some cases, they adopt strategies to mitigate
35
Five main reasons why developers break APIs
Most developers are aware of the impact
In some cases, they adopt strategies to mitigate
New study contacting developers right after a
commit with a breaking change
Why do you break
APIs?
36
Why do you break
APIs?
37
Are you aware about
the impact?
Why Do We Break APIs?
First Answers from Developers
Laerte Xavier, André Hora, Marco Tulio Valente
Federal University of Minas Gerais, Brazil
SANER 2017
ERA Track

More Related Content

What's hot

DevOpsDays Baltimore 2018: A Definition of Done for DevSecOps - Gene Gotimer
DevOpsDays Baltimore 2018: A Definition of Done for DevSecOps - Gene GotimerDevOpsDays Baltimore 2018: A Definition of Done for DevSecOps - Gene Gotimer
DevOpsDays Baltimore 2018: A Definition of Done for DevSecOps - Gene Gotimer
DevOpsDays Baltimore
 

What's hot (20)

The DevOps Challenge: Open Source Security at Scale
The DevOps Challenge: Open Source Security at ScaleThe DevOps Challenge: Open Source Security at Scale
The DevOps Challenge: Open Source Security at Scale
 
DevOps Friendly Doc Publishing for APIs & Microservices
DevOps Friendly Doc Publishing for APIs & MicroservicesDevOps Friendly Doc Publishing for APIs & Microservices
DevOps Friendly Doc Publishing for APIs & Microservices
 
DevOpsDays Baltimore 2018: A Definition of Done for DevSecOps - Gene Gotimer
DevOpsDays Baltimore 2018: A Definition of Done for DevSecOps - Gene GotimerDevOpsDays Baltimore 2018: A Definition of Done for DevSecOps - Gene Gotimer
DevOpsDays Baltimore 2018: A Definition of Done for DevSecOps - Gene Gotimer
 
The Evolving Role of the Developer in 2021
The Evolving Role of the Developer in 2021The Evolving Role of the Developer in 2021
The Evolving Role of the Developer in 2021
 
Cloud Native Debugging in Production - Dig Deep into your agents
Cloud Native Debugging in Production - Dig Deep into your agentsCloud Native Debugging in Production - Dig Deep into your agents
Cloud Native Debugging in Production - Dig Deep into your agents
 
Pull requests and testers can be friends
Pull requests and testers can be friendsPull requests and testers can be friends
Pull requests and testers can be friends
 
DevOps Powered by Splunk Hands-On
DevOps Powered by Splunk Hands-OnDevOps Powered by Splunk Hands-On
DevOps Powered by Splunk Hands-On
 
Better Governance Banking on Continuous Delivery
Better Governance Banking on Continuous DeliveryBetter Governance Banking on Continuous Delivery
Better Governance Banking on Continuous Delivery
 
RSAC DevSecOpsDays 2018 - We are all Equifax
RSAC DevSecOpsDays 2018 - We are all EquifaxRSAC DevSecOpsDays 2018 - We are all Equifax
RSAC DevSecOpsDays 2018 - We are all Equifax
 
Continuous Acceleration with a Software Supply Chain Approach
Continuous Acceleration with a Software Supply Chain ApproachContinuous Acceleration with a Software Supply Chain Approach
Continuous Acceleration with a Software Supply Chain Approach
 
The State of Testing 2017
The State of Testing 2017The State of Testing 2017
The State of Testing 2017
 
A "Firewall" for Bad Binaries
A "Firewall" for Bad BinariesA "Firewall" for Bad Binaries
A "Firewall" for Bad Binaries
 
Accelerating Innovation with Software Supply Chain Management
Accelerating Innovation with Software Supply Chain ManagementAccelerating Innovation with Software Supply Chain Management
Accelerating Innovation with Software Supply Chain Management
 
DevSecOps Days SF at RSA Conference 2018
DevSecOps Days SF at RSA Conference 2018DevSecOps Days SF at RSA Conference 2018
DevSecOps Days SF at RSA Conference 2018
 
DevOps at Lean Apps
DevOps at Lean AppsDevOps at Lean Apps
DevOps at Lean Apps
 
Shifting Left: The Top 5 Reasons to Test APIs and Components Early
Shifting Left: The Top 5 Reasons to Test APIs and Components EarlyShifting Left: The Top 5 Reasons to Test APIs and Components Early
Shifting Left: The Top 5 Reasons to Test APIs and Components Early
 
Scale DevSecOps with your Continuous Integration Pipeline
Scale DevSecOps with your Continuous Integration PipelineScale DevSecOps with your Continuous Integration Pipeline
Scale DevSecOps with your Continuous Integration Pipeline
 
Continuous integration
Continuous integration Continuous integration
Continuous integration
 
Funny stories and anti-patterns from DevOps landscape
Funny stories and anti-patterns from DevOps landscapeFunny stories and anti-patterns from DevOps landscape
Funny stories and anti-patterns from DevOps landscape
 
DevOps and Splunk
DevOps and SplunkDevOps and Splunk
DevOps and Splunk
 

Viewers also liked

The promises and perils of microservices
The promises and perils of microservicesThe promises and perils of microservices
The promises and perils of microservices
Uwe Friedrichsen
 

Viewers also liked (19)

Why roommates matter
Why roommates matterWhy roommates matter
Why roommates matter
 
Summer in Nanded City, Pune
Summer in Nanded City, PuneSummer in Nanded City, Pune
Summer in Nanded City, Pune
 
Historical and Impact Analysis of API Breaking Changes: A Large-Scale Study
Historical and Impact Analysis of API Breaking Changes: A Large-Scale StudyHistorical and Impact Analysis of API Breaking Changes: A Large-Scale Study
Historical and Impact Analysis of API Breaking Changes: A Large-Scale Study
 
Putnam Data Quality and the IR
Putnam Data Quality and the IRPutnam Data Quality and the IR
Putnam Data Quality and the IR
 
Informe de Coyuntura de la Construcción. Nro 136
Informe de Coyuntura de la Construcción. Nro 136Informe de Coyuntura de la Construcción. Nro 136
Informe de Coyuntura de la Construcción. Nro 136
 
All love.com
All love.comAll love.com
All love.com
 
مبانی انگیزه کارکنان
مبانی انگیزه کارکنانمبانی انگیزه کارکنان
مبانی انگیزه کارکنان
 
IDCC workshop: OpenAIRE services and tools for Open Research Data in H2020
IDCC workshop: OpenAIRE services and tools for Open Research Data in H2020IDCC workshop: OpenAIRE services and tools for Open Research Data in H2020
IDCC workshop: OpenAIRE services and tools for Open Research Data in H2020
 
Mitos y realidades sobre Álvaro Uribe Vélez
Mitos y realidades sobre Álvaro Uribe VélezMitos y realidades sobre Álvaro Uribe Vélez
Mitos y realidades sobre Álvaro Uribe Vélez
 
I GUERRA MUNDIAL (versão 2017)
I GUERRA MUNDIAL (versão 2017)I GUERRA MUNDIAL (versão 2017)
I GUERRA MUNDIAL (versão 2017)
 
The promises and perils of microservices
The promises and perils of microservicesThe promises and perils of microservices
The promises and perils of microservices
 
Data driven design (in English!)
Data driven design (in English!)Data driven design (in English!)
Data driven design (in English!)
 
Augustin joly - Curriculum Vitae
Augustin joly - Curriculum VitaeAugustin joly - Curriculum Vitae
Augustin joly - Curriculum Vitae
 
Fastura technologies
Fastura technologiesFastura technologies
Fastura technologies
 
Sharding and scale out
Sharding and scale outSharding and scale out
Sharding and scale out
 
Cancun COP16 report from JUCCCE Advisor Robert Allender
Cancun COP16 report from JUCCCE Advisor Robert AllenderCancun COP16 report from JUCCCE Advisor Robert Allender
Cancun COP16 report from JUCCCE Advisor Robert Allender
 
Медийная реклама // Display advertising
Медийная реклама // Display advertisingМедийная реклама // Display advertising
Медийная реклама // Display advertising
 
Boosting Beer Sales by Mapping the In-store Journey
Boosting Beer Sales by Mapping the In-store JourneyBoosting Beer Sales by Mapping the In-store Journey
Boosting Beer Sales by Mapping the In-store Journey
 
نہ جائے ماندن نہ پائے رفتن منسانہ)
نہ جائے ماندن نہ پائے رفتن منسانہ)نہ جائے ماندن نہ پائے رفتن منسانہ)
نہ جائے ماندن نہ پائے رفتن منسانہ)
 

Similar to Why Do We Break APIs? First Answers from Developers

Best Practices for React Developer Test Technical Assessment for Hiring.pdf
Best Practices for React Developer Test Technical Assessment for Hiring.pdfBest Practices for React Developer Test Technical Assessment for Hiring.pdf
Best Practices for React Developer Test Technical Assessment for Hiring.pdf
DarshanaMallick
 
Top 10 Lessons Learned from the Netflix API - OSCON 2014
Top 10 Lessons Learned from the Netflix API - OSCON 2014Top 10 Lessons Learned from the Netflix API - OSCON 2014
Top 10 Lessons Learned from the Netflix API - OSCON 2014
Daniel Jacobson
 

Similar to Why Do We Break APIs? First Answers from Developers (20)

Challenges of React Native App Development_ Effective Mitigation Strategies.pdf
Challenges of React Native App Development_ Effective Mitigation Strategies.pdfChallenges of React Native App Development_ Effective Mitigation Strategies.pdf
Challenges of React Native App Development_ Effective Mitigation Strategies.pdf
 
How Libraries Evolve. A Survey of Two Industrial Companies and an Open-Source...
How Libraries Evolve. A Survey of Two Industrial Companies and an Open-Source...How Libraries Evolve. A Survey of Two Industrial Companies and an Open-Source...
How Libraries Evolve. A Survey of Two Industrial Companies and an Open-Source...
 
Best Practices for React Developer Test Technical Assessment for Hiring.pdf
Best Practices for React Developer Test Technical Assessment for Hiring.pdfBest Practices for React Developer Test Technical Assessment for Hiring.pdf
Best Practices for React Developer Test Technical Assessment for Hiring.pdf
 
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
 
Oscon2014 Netflix API - Top 10 Lessons Learned
Oscon2014 Netflix API - Top 10 Lessons LearnedOscon2014 Netflix API - Top 10 Lessons Learned
Oscon2014 Netflix API - Top 10 Lessons Learned
 
Understanding and Executing on API Developer Experience
Understanding and Executing on API Developer ExperienceUnderstanding and Executing on API Developer Experience
Understanding and Executing on API Developer Experience
 
Grails & DevOps: continuous integration and delivery in the cloud
Grails & DevOps: continuous integration and delivery in the cloudGrails & DevOps: continuous integration and delivery in the cloud
Grails & DevOps: continuous integration and delivery in the cloud
 
Top 10 Lessons Learned from the Netflix API - OSCON 2014
Top 10 Lessons Learned from the Netflix API - OSCON 2014Top 10 Lessons Learned from the Netflix API - OSCON 2014
Top 10 Lessons Learned from the Netflix API - OSCON 2014
 
DevOps culture, concepte , philosophie and practices
DevOps culture, concepte , philosophie and practicesDevOps culture, concepte , philosophie and practices
DevOps culture, concepte , philosophie and practices
 
Transform the internal it landscape with APIs
Transform the internal it landscape with APIsTransform the internal it landscape with APIs
Transform the internal it landscape with APIs
 
Pain Points In API Development? They’re Everywhere
Pain Points In API Development? They’re EverywherePain Points In API Development? They’re Everywhere
Pain Points In API Development? They’re Everywhere
 
Software Quality Assurance class 1
Software Quality Assurance  class 1Software Quality Assurance  class 1
Software Quality Assurance class 1
 
Engineering DevOps and Cloud
Engineering DevOps and CloudEngineering DevOps and Cloud
Engineering DevOps and Cloud
 
Understanding and Executing on API Developer Experience
Understanding and Executing on API Developer ExperienceUnderstanding and Executing on API Developer Experience
Understanding and Executing on API Developer Experience
 
RAD Model
RAD ModelRAD Model
RAD Model
 
Why You Need a Developer Relations Team for Your API
Why You Need a Developer Relations Team for Your APIWhy You Need a Developer Relations Team for Your API
Why You Need a Developer Relations Team for Your API
 
DevOps For Everyone: Bringing DevOps Success to Every App and Every Role in y...
DevOps For Everyone: Bringing DevOps Success to Every App and Every Role in y...DevOps For Everyone: Bringing DevOps Success to Every App and Every Role in y...
DevOps For Everyone: Bringing DevOps Success to Every App and Every Role in y...
 
APIs, APIs and more APIs
APIs, APIs and more APIsAPIs, APIs and more APIs
APIs, APIs and more APIs
 
What are the Characteristics of High-rated Apps
What are the Characteristics of High-rated AppsWhat are the Characteristics of High-rated Apps
What are the Characteristics of High-rated Apps
 
Icws 2016 v1
Icws 2016 v1Icws 2016 v1
Icws 2016 v1
 

Recently uploaded

Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 

Recently uploaded (20)

Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
 
Studiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting softwareStudiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting software
 
Software Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdfSoftware Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdf
 
Strategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptxStrategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptx
 
Agnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in KrakówAgnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in Kraków
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 

Why Do We Break APIs? First Answers from Developers