Transcript
Page 1: Why Do We Break APIs? First Answers from Developers

Why Do We Break APIs?First Answers from Developers

Laerte Xavier, André Hora, Marco Tulio ValenteFederal University of Minas Gerais, Brazil

SANER 2017 ERA Track

Page 2: Why Do We Break APIs? First Answers from Developers

2

Breaking API contracts is a common practice!

Page 3: Why Do We Break APIs? First Answers from Developers

API changes break compatiblity

28%Historical and Impact Analysis of API Breaking Changes:

A Large-Scale Study, SANER, 20173

Page 4: Why Do We Break APIs? First Answers from Developers

4

The rate of breaking changes increases over time!

Historical and Impact Analysis of API Breaking Changes: A Large-Scale Study, SANER, 2017

Page 5: Why Do We Break APIs? First Answers from Developers

5

What specific reasons motivate API breaking changes?

Page 6: Why Do We Break APIs? First Answers from Developers

6

RQ1: Why do developers break API contracts?

RQ2: Are developers aware of the impact of breaking changes on client applications?

Research Questions

Page 7: Why Do We Break APIs? First Answers from Developers

7

TOP-317GITHUB JAVA LIBRARIES

Page 8: Why Do We Break APIs? First Answers from Developers

8

TOP-317GITHUB JAVA LIBRARIES

90LIBRARIES WITH MORE

THAN 50 BREAKING CHANGES

Page 9: Why Do We Break APIs? First Answers from Developers

9

TOP-31790

49EMAILS FROM MAJOR

CONTRIBUTORS

GITHUB JAVA LIBRARIES

LIBRARIES WITH MORE THAN 50 BREAKING

CHANGES

Page 10: Why Do We Break APIs? First Answers from Developers

49EMAILS

SENT 10

Page 11: Why Do We Break APIs? First Answers from Developers

49EMAILS

SENT

14ANSWERSRECEIVED 11

Page 12: Why Do We Break APIs? First Answers from Developers

49EMAILS

SENT

14ANSWERSRECEIVED

28%RESPONSE

RATE 12

Page 13: Why Do We Break APIs? First Answers from Developers

13

49EMAILS

SENT

14ANSWERSRECEIVED

7EMAILS

SELECTED RESPONSE

RATE

28%

Page 14: Why Do We Break APIs? First Answers from Developers

14

Page 15: Why Do We Break APIs? First Answers from Developers

15

Page 16: Why Do We Break APIs? First Answers from Developers

16

Page 17: Why Do We Break APIs? First Answers from Developers

17

Page 18: Why Do We Break APIs? First Answers from Developers

18

Page 19: Why Do We Break APIs? First Answers from Developers

19

RQ1: Why do developers break API contracts?

RQ2: Are developers aware of the impact of breaking changes on client applications?

Research Questions

Page 20: Why Do We Break APIs? First Answers from Developers

20

Five main reasons

Page 21: Why Do We Break APIs? First Answers from Developers

21

“The change leads to better and more developer-friendly code (for example, to more fluent code).” [D2]

Page 22: Why Do We Break APIs? First Answers from Developers

22

“The classes/methods/fields are not removed all, they are just refactored to a better package signature.” [D6]

Page 23: Why Do We Break APIs? First Answers from Developers

23

“Bugfix. For example some of the items shouldn’t be accessible and were made private.” [D3]

Page 24: Why Do We Break APIs? First Answers from Developers

24

“We switched the assertion library on which the library was based.” [D4]

Page 25: Why Do We Break APIs? First Answers from Developers

25

“It’s a deliberate policy. bitcoinj has never done a 1.0 release that would have posted API stability.” [D7]

Page 26: Why Do We Break APIs? First Answers from Developers

26

RQ1: Why do developers break API contracts?

RQ2: Are developers aware of the impact of breaking changes on client applications?

Research Questions

Page 27: Why Do We Break APIs? First Answers from Developers

27

SEVENANSWERS

Page 28: Why Do We Break APIs? First Answers from Developers

28

FIVEAWARE

SEVENANSWERS

Page 29: Why Do We Break APIs? First Answers from Developers

29

FIVEAWARE

TWOUNCLEAR

SEVENANSWERS

Page 30: Why Do We Break APIs? First Answers from Developers

30

FIVEAWARE

TWOUNCLEAR

SEVENANSWERS

“Once one client asked to use @Deprecated on old methods, but we simply

don’t have enough resources to maintain all deprecated

methods.” [D2]

Page 31: Why Do We Break APIs? First Answers from Developers

31

FIVEAWARE

TWOUNCLEAR

SEVENANSWERS

“Yes. But we are not Spring yet. [...] Being a

small-to-middle library has it’s benefits.” [D2]

Page 32: Why Do We Break APIs? First Answers from Developers

32

Five main reasons why developers break APIs

Page 33: Why Do We Break APIs? First Answers from Developers

33

Five main reasons why developers break APIs

Most developers are aware of the impact

Page 34: Why Do We Break APIs? First Answers from Developers

34

Five main reasons why developers break APIs

Most developers are aware of the impact

In some cases, they adopt strategies to mitigate

Page 35: Why Do We Break APIs? First Answers from Developers

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

Page 36: Why Do We Break APIs? First Answers from Developers

Why do you break APIs?

36

Page 37: Why Do We Break APIs? First Answers from Developers

Why do you break APIs?

37

Are you aware about the impact?

Page 38: Why Do We Break APIs? First Answers from Developers

Why Do We Break APIs?First Answers from Developers

Laerte Xavier, André Hora, Marco Tulio ValenteFederal University of Minas Gerais, Brazil

SANER 2017 ERA Track


Top Related