The triumph of online collaboration
For a research paper I am working on, we wanted to analyze the top 30 “most collaborative” projects on Github. Defining a quantitative metric of collaboration and sorting projects according to it is not an easy task, as collaboration is in many cases implicit and not recorded, while not all actions of collaboration are equal. As a proxy, we chose to measure the number of people that perform changes that mutate the state of a repository. On Github, we could identify the following:
- A: Create a commit to a repository
- B: Perform a code review on an individual commit
- C: Create/Update/Merge/Close a pull request
- D: Perform a code review on a pull request
- E: Comment on a pull request
- F: Create/Close an issue
- G: Comment on an issue
Using GHTorrent as a data source, I wrote a script to measure the individual persons that performed the actions above for all non-forked repositories and then sorted the repos according to the total number of individual contributors. The results can be seen in the table below:
repo | A | B | C | D | E | F | G | all |
isaacs/npm | 100 | 21 | 167 | 23 | 247 | 2568 | 3302 | 6147 |
torvalds/linux | 5968 | 14 | 67 | 3 | 161 | 0 | 0 | 6212 |
symfony/symfony | 1021 | 52 | 1261 | 395 | 1305 | 1844 | 2160 | 6215 |
jquery/jquery-mobile | 212 | 13 | 431 | 21 | 350 | 2888 | 3008 | 6391 |
joyent/node | 657 | 52 | 833 | 132 | 943 | 2304 | 2805 | 6653 |
CocoaPods/Specs | 2658 | 90 | 2584 | 39 | 1235 | 515 | 268 | 6674 |
gitlabhq/gitlabhq | 605 | 89 | 871 | 138 | 915 | 2251 | 3608 | 7344 |
angular/angular.js | 875 | 92 | 1306 | 139 | 1520 | 1540 | 3778 | 7919 |
rails/rails | 2699 | 309 | 2315 | 607 | 3174 | 4746 | 4890 | 15339 |
mxcl/homebrew | 3426 | 76 | 3125 | 528 | 3888 | 5157 | 7301 | 20510 |
The numbers are staggering. A project (Homebrew) that is just 5 years old has attracted 20.5k — 20,500, the size of a small city! — people to contribute to it. Ruby on Rails has been collaboratively developed by a community of 15k people and still works! To compare these numbers with other software engineering projects is futile: most projects, even ones with a very long lifeline are very small in comparison. Perhaps a more fair comparison is with other online collaborative initiatives: The English Wikipedia is being maintained by 130,800 people, while the effort of decoding the human genome has been carried out by thousands of people.
If nothing else, the above are an example of the power of commons and certainly the usefulness of Github as a collaboration platform.