This week, Facebook, Google and a number of other big companies launched the TODO (Talk Openly, Develop Openly) project, whose aim is to encourage the use of open source software by organizations of all sizes by having companies and developers share knowledge on the use and implementation of open source. As GitHub, one of the participating organizations, put it on their blog, part of the goal is to “make sure that open source projects remain healthy and active.” As luck would have it, there’s new research on what makes open source projects successful that might help to inform TODO’s efforts.
Japanese researchers Yuya Yoshikawa, Tomoharu Iwata, Hiroshi Sawada have published a paper titled, “Collaboration on Social Media: Analyzing Successful Projects on Social Coding.” They looked at what factors made projects on “social coding sites” such as GitHub thrive. To do so, they gathered data on activity between February 2011 and May 2013 from the GitHub Archive on non-forked repositories with more than 30 commits. These data covered almost 42 million commits by 1.4 million developers to 317,000 projects.
In order to measure the success of an open source project, the researchers used three metrics: activity (the number of commits per day), popularity (the number of stars received per day) and “sociality” (the number of pull requests per day).
They considered the effect of three things on these measures of success: the team structure (e.g., how big and interanlly connected the project team was), interaction with external developers (e.g., responding to pull requests) and the type of project being developed (e.g., a web application).
Before getting into the key findings, there were a couple of interesting big picture stats from the data they looked at, such as:
Most projects receive no contributions from external developers. Specifically, 70% of projects in the study data had zero pull requests.
The majority of projects tend to be completed in short bursts of activity. Only 10% of projects saw a relatively uniform rate of code commits over time. The other 90% saw most of their commits take place within one or more short periods of time, and otherwise saw no commits in most months. Also, 60% of projects had 90% of their commits within three months of starting.
When looking at what affected open source project success, the authors had a number of interesting findings. Based on my reading of it, I saw three keys to open source success:
The larger the team the greater the chance of success. The size of the internal team (i.e., those who can commit code) was found to be positively correlated with all three success metrics.
Projects with team members who work together on other projects are more successful. For the internal team on each project, the researchers constructed a “collaboration network” which, essentially, looked at whether any two team members worked together on projects other than the one in question. Projects whose teams were more connected in this way had higher rates of success using all three metrics.
Responding to pull requests encourages contributions. The researchers found that the number of stars and pull requests a project received were positively correlated with the percentage of internal team members responding to pull requests and the rate of merging pull requests. Interestingly, the length of time to respond to a pull request didn’t affect the success rates; just responding, eventually, is what mattered.
There you have it. If you want your open source project to be successful, gather as many people for the internal team as you can, make sure they’ve worked together on other projects and be sure to respond regularly to pull requests. Simple, right?
Read more of Phil Johnson's #Tech blog and follow the latest IT news at ITworld. Follow Phil on Twitter at @itwphiljohnson. For the latest IT news, analysis and how-tos, follow ITworld on Twitter and Facebook.