Slide 1

Slide 1 text

Why Modern Open Source Projects Fail Jailton Coelho, Marco Tulio Valente {jailtoncoelho, mtov}@dcc.ufmg.br ESEC/FSE 2017

Slide 2

Slide 2 text

“Software is eating the world and open source is eating software.” 2

Slide 3

Slide 3 text

Introduction ● Most software produced nowadays depend on OSS ● OSS are being created at speeds never seen before 64M repositories 3 19M users

Slide 4

Slide 4 text

Why do open source projects fail? 4

Slide 5

Slide 5 text

Research Questions ● RQ1: Why do open source projects fail? ● RQ2: What is the importance of open source maintenance practices? ● RQ3: What is the impact of project failures? ● RQ4: How do developers try to overcome projects failure? 5

Slide 6

Slide 6 text

Dataset ● Top-5,000 GitHub projects by stars ● 618 projects: ○ 542 projects without commits in the last year ○ 76 projects declared as unmaintained in their READMEs 6

Slide 7

Slide 7 text

Results 7

Slide 8

Slide 8 text

RQ1: Why do open source projects fail? 8

Slide 9

Slide 9 text

Survey Participants ● Individual accounts: project owners ● Organization accounts: principal contributor 9

Slide 10

Slide 10 text

Survey Questionnaire ● Do you agree that the project is unmaintained? ● If Yes: a. Why did you stop maintaining the project? b. Did you receive any funding to maintain the project? c. Do you have plans to reactivate the project? 10

Slide 11

Slide 11 text

Participation Data ● 408 emails sent ● 118 answers (response rate of 29%) ● 36 answers from the READMEs 11

Slide 12

Slide 12 text

Survey Answers ● Do you agree that the project is unmaintained? ○ Yes: 86% No: 14% ● Do you have plans to reactivate the project? ○ Yes: 15% No: 85% 12

Slide 13

Slide 13 text

Why did you stop maintaining the project? ● The project was usurped by competitor (30 answers) 13 “The project no longer makes sense. Apple has built technical and legal alternatives which I believe are satisfactory”.

Slide 14

Slide 14 text

Why did you stop maintaining the project? ● Lack of time of the main contributor (27 answers) 14 “I was the only maintainer and there was a lot of feature requests and I didn't have enough time”.

Slide 15

Slide 15 text

Why did you stop maintaining the project? ● The projects is completed (17 answers): ○ It is stable and works as expected ○ Do not need changes 15 “Sometimes, you build something, and sometimes, it's completed. Like if you built a building, at some point in time it is finished, it achieved its goals...”.

Slide 16

Slide 16 text

Combining the Survey Answers ● A project has failed when: ○ It is unmaintained ○ It is not considered completed ○ Maintainers do not have plans to reactivate ● 104 projects that have failed 16

Slide 17

Slide 17 text

Our Definition of Failure ● The project has been abandoned (or deprecated) ● The project may have been important to developers and users before being deprecated 17

Slide 18

Slide 18 text

Reason Projects Usurped by competitor 27 Obsolete 20 Lack of time 18 Lack of interest 18 Outdated technologies 14 Low maintainability 7 Conflicts among developers 3 Legal problems 2 Acquisition 1 Why do open source projects fail? 18

Slide 19

Slide 19 text

RQ2: What is the importance of following best open source maintenance practices? 19

Slide 20

Slide 20 text

Design ● We selected four groups of 104 projects (among top-5k): ○ Failed ○ Top ○ Bottom ○ Random 20 by stars

Slide 21

Slide 21 text

Open source maintenance practices 1. README 2. License 3. Home Page 4. Continuous Integration 5. Contributing Guidelines 6. Issue Template 7. Code of Conduct 8. Pull Request Template 21

Slide 22

Slide 22 text

22 Maintenance Practice Failed(%) Top(%) Bottom(%) Random(%) README 99 100 100 100 License 61 88 60 73 Home Page 58 87 52 60 Continuous Integration 27 68 41 45 Contributing Guidelines 16 72 13 32 Issue Template 0 15 2 5 Code of Conduct 0 13 0 2 Pull Request Template 0 3 0 0 Fail vs (Top, Bottom, and Random)

Slide 23

Slide 23 text

23 Maintenance Practice Failed(%) Top(%) Bottom(%) Random(%) README 99 100 100 100 License 61 88 60 73 Home Page 58 87 52 60 Continuous Integration 27 68 41 45 Contributing Guidelines 16 72 13 32 Issue Template 0 15 2 5 Code of Conduct 0 13 0 2 Pull Request Template 0 3 0 0 Fail vs (Top, Bottom, and Random)

Slide 24

Slide 24 text

24 Maintenance Practice Failed(%) Top(%) Bottom(%) Random(%) README 99 100 100 100 License 61 88 60 73 Home Page 58 87 52 60 Continuous Integration 27 68 41 45 Contributing Guidelines 16 72 13 32 Issue Template 0 15 2 5 Code of Conduct 0 13 0 2 Pull Request Template 0 3 0 0 Fail vs (Top, Bottom, and Random)

Slide 25

Slide 25 text

RQ3: What is the impact of the project failures? 25

Slide 26

Slide 26 text

Design ● Opened Issues and Pull Requests (104 failed projects) ● Over 4,700 opened issues ● Around 300 opened pull requests 26

Slide 27

Slide 27 text

Assumption ● Negative impact of an abandoned project includes: ○ bugs and enhancements that will not be considered ○ pull request that will not be implemented 27

Slide 28

Slide 28 text

Impact of the project failures 28

Slide 29

Slide 29 text

RQ4: How do developers try to overcome the projects failure? 29

Slide 30

Slide 30 text

Design ● We manually analyzed over 1,600 issues ● In 32 issues developers discuss about the project’s status ● Examples: ○ Is this project dead? ○ Is this project maintained? ○ Is development of this ongoing? 30

Slide 31

Slide 31 text

How do developers try to overcome the projects failure? ● Moving to an organization account (5 projects) ● Include new core developers (5 projects) ● Transfer the project to new maintainers (3 projects) ● Owners suggested migrate to another project (19 projects) 31

Slide 32

Slide 32 text

Take-Away Message ● Top-5 most common reasons for the failure of OSS: ○ project was usurped by competitor ○ project became functionally obsolete ○ lack of time of the main contributor ○ lack of interest of the main contributor ○ project is based on outdated technologies 32

Slide 33

Slide 33 text

Take-Away Message ● Failed vs Top projects ○ Contributing guidelines (16% vs 72%) ○ Continuous integration (27% vs 68%) ○ License (61% vs 88%) 33

Slide 34

Slide 34 text

Thank you! 34 Jailton Coelho, Marco Tulio Valente {jailtoncoelho, mtov}@dcc.ufmg.br