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
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.
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%.
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:
- What motivated you to contribute to this project?
- What project characteristics and practices helped you to contribute?
- 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.
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.
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!
Have you had a suspicion that your GPS app is overestimating the distance traveled? If so you are probably correct but the reason isn't an algorithmic glitch. The answer lies in the statistics and it is a strange story.
DARPA's latest initiative to promote the development of robotic hardware and software, called Robotics Fast Track, is making awards up to $150,000. The proposals accepted so far favor universities and companies, but individuals and small teams are being encouraged to apply, with a preference for projects that are open source.
- Save Code Share - Urgent Action Needed
- John Nash Dies In Car Crash
- Google Launches Firestore
- No Glittering Prizes For Creative Robots
- Angular Jumps To Version 4
- Microsoft CodePlex Is Shutting Down
- AlphaGo Has Lost A Game - Score Stands At 3-1
- Amazon Glacier Select Analyzes Archived Data
- Google Presents --- Motion Stills
- //No Comment - TDD, C++ Lambdas & Agile Under Scrutiny
- Buddy Social Robot Is 500% Funded
- Linux On Windows - Microsoft On How It Works