What Attracts Devs To Open Source
Written by Janet Swift   
Monday, 02 April 2018

In an era in which we are becoming more an more reliant on open source software, it is important to know how to  recruit and retain core developers - the ones that are key to a project's survival, sustainability and success. An attempt to do this comes from Brazil to be presented in Sweden.

Jailton Coelho, Marco Tulio Valente, Luciana L. Silva, Andre Hora wanted to understand what motivates developers to assume a key role in Free/Libre Open source Software (FLOSS) projects. Their paper reporting the results of a survey of 52 developers who were core contributors of GitHub projects has been accepted for CHASE 2018: 11th International Workshop on Cooperative and Human Aspects of Software Engineering which is part of the 40th International Conference on Software Engineering taking place May 27 - 3 June 2018 in Gothenburg, Sweden.

The survey started from the premise, indicated by previous research, that the majority of GitHub projects depend on just one or two core developers - defining "core developers" as:

the ones responsible for the design, implementation, and maintenance of the most important features in a project [and] also responsible to manage the project and to plan and drive its evolution

For the study the team considered the top 5,000 GitHub projects ranked by popularity using their number of stars. They then discarded non-software projects such as books and lists (61 repositories), inactive projects without commits in the past 6 months (830 repositories); non-mature projects less than 3 years old (1,450 repositories). They also disregarded projects with no code in the top 100 most popular languages in the TIOBE index which  resulted in 397 projects in HTML. CSS and Markdown being removed. This left 2,262 projects, of which 1,256 repositories (55%) are owned by organizations and 1,006 (45%) by individual users. The projects are mainly implemented in JavaScript (696 projects, 31%), followed by Ruby (232 projects, 10%), and Python (230 projects, 10%).

The violin plots below show the distribution of age (in months), number of contributors, number of commits, and number of stars of the selected projects, without considering outliers. The median measures are 59 months, 50 contributors, 826 commits, and 3.1K stars, respectively.flossdist

In order to identify core developers, the researchers considered the proportion of commits made by each project contributor. Using their customized commit-based heuristic over half the projects only had one or two core developers and the median percentage of commits by the  core teams is 81% with median percentage of commits by the selected core developers being 19%.

flosscore

The study focuses on the motivation of those who have recently become core contributors and so the next step was to select developers who became core contributors in the last year of each project. This left them with a list of 380 developers. After removing those without a public email address on GitHub, were left with 151 potential survey participants.

An email was sent to these participants with two parts. First, it included the developer’s name and data on his/her percentage of commits in the project. The second part included three open-ended questions about his/her contributions to the project:

  1. What motivated you to contribute to this project?
  2. What project characteristics and practices helped you to contribute?
  3. What were the main barriers you faced to contribute?

A total of  52 answers (covering distinct projects) were received, i.e. a response rate of 34%

The questions were open ended so Thematic Analysis was used to interpret the survey answers. The results are summarized in three tables.

flosst1

The total number of Motivations in this table is 66 , 14 more than the number of survey respondents, as more than one theme could be extracted from an individual's response. The most prevalent reason for contribution to FLOSS projects was to add needed features to, or generally improve the performance of, a project they actually used. The next most cited reason was a commitment to the open source ideal as expressed in this response:

I’m also in love with the idea of people sharing tools for free in order to help build a better world and promote scientific development and improving people’s lives.

The analysis of the characteristics and practices that helped or hindered individuals in making contribution were divided into Technical and non-technical and it was the latter that predominated.

flosst2

 flosst3

Among these core contributors positive factors are cited more frequently than negative ones. The total number of responses in Table 2 is 77, 50 technical and 27 non-technical. There are only 60 responses in Table 3, again 27 are non-technical the other 22 technical.

The most common response across both tables is "Friendly community" mentioned by 13 people. In contrast there are only 4 comments about conflict or hostility. The top negative non-technical theme "Lack of time of the project leaders" cropped up 8 times whereas the converse positive aspect  "Availability of the project leasers" was mentioned 11 times. Among the technical hindrances the size and quality of the codebase or project design predominated followed by paucity of documentation, mentioned 3 times, on a par with Lack of tests and Programming language. On the other hand "Documentation" was found to be helpful by 8 people and Unit Tests by 9 people. Only  3 responses considered Programming language a helpful characteristic.

The problem of course with asking open-ended questions is that you are relying on people's imagination to come up with answers. Had there been specific questions about major technical and  non-technical aspects - perhaps Likert scales for Quality of Codebase, Programming Language, Documentation, Friendliness of Community, Availability of Project leaders - the picture painted might have been different.

On the other hand the strength of a survey like this is that the researchers don't pre-judge the answers. Their paper at Chase 2018 has the title How to Attract Core Developers to FLOSS? A distillation of their finding from this survey should provide some good, even if rather obvious, pointers including:

  • Create a friendly community
  • Ensure project leaders are responsive to contributors
  • Avoid project complexity
  • Keep code clear and clean
  • Incorporate unit testing
  • Provide complete documentation

Whether they will also be able to come up with a strategy for achieving all these simultaneously is another matter!

 

 

More Information

Why We Engage in FLOSS: Answers from Core Developers

Related Articles

Open Source Celebrates 20 Years

Programming For Love or Money

Open Source Friday

Open Source Valued Despite Poor Documentation and Bad Behavior

GitHub Octoverse Reveals The State Of Open Source

Microsoft Research Awards Demonstrate Commitment to Open Source

Mozilla Open Source Support Program

Keeping Open Source Safe

TODO - A New Group To Tell Open Source Programmers

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.

 

Banner


AI Breakthrough For Robot Surgery
17/11/2024

Using imitation learning, a robot has learned to perform surgical procedures as skillfully as human surgeons, bringing the field of robotic surgery closer to true autonomy.



Extend NGINX With The New JavaScript Module
28/10/2024

Inject middleware functionality into NGINX with the expressive power of Javascript. NGINX JavaScript or NJS for short is a dynamic module under which you can use scripting for hooking into the NGINX e [ ... ]


More News

espbook

 

Comments




or email your comment to: comments@i-programmer.info

Last Updated ( Wednesday, 14 August 2019 )