The Truck Factor designates the minimal number of developers that have to be hit by a truck (or quit) before a project is incapacitated. The Wikipedia defines that it is a "measurement of the concentration of information in individual team members. A high truck factor means that many individuals know enough to carry on and the project could still succeed even in very adverse events." The term is also known by bus factor/number.
We calculate the Truck Factor for 133 popular GitHub applications, in six languages: JavaScript (22 systems), Python (22 systems), Ruby (33 systems) , C/C++ (18 systems), Java (21 systems), and PHP (17 systems).
We define an author as a developer able to command the implementation of a file. To infer the authors of a file we used the Degree-of-Authorship (DOA) metric, proposed by Thomas Fritz et al. in this paper.
To calculate the truck factor, we use a greedy heuristic: we consecutively remove the author with more authored files in a system, until more than 50% of the system's files are orphans (i.e., without author).
This list presents the Truck Factors (TF) we calculated:
TF = 1: alexreisner/geocoder, atom/atom-shell, bjorn/tiled, bumptech/glide, caskroom/homebrew-cask (TF inicial 56), celery/celery, celluloid/celluloid, dropwizard/dropwizard, dropwizard/metrics, erikhuda/thor, Eugeny/ajenti, getsentry/sentry, github/android, gruntjs/grunt, janl/mustache.js, jrburke/requirejs, justinfrench/formtastic, kivy/kivy, koush/ion, kriswallsmith/assetic, Leaflet/Leaflet, less/less.js, mailpile/Mailpile, mbostock/d3, mitchellh/vagrant, mitsuhiko/flask, mongoid/mongoid, nate-parrott/Flashlight, nicolasgramlich/AndEngine, paulasmuth/fnordmetric, phacility/phabricator, powerline/powerline, puphpet/puphpet, ratchetphp/Ratchet, ReactiveX/RxJava, sandstorm-io/capnproto, sass/sass, sebastianbergmann/phpunit, sferik/twitter, silexphp/Silex, sstephenson/sprockets, substack/node-browserify, thoughtbot/factory_girl, thoughtbot/paperclip, wp-cli/wp-cli
TF = 2: activeadmin/activeadmin, ajaxorg/ace, ansible/ansible, apache/cassandra, bup/bup, clojure/clojure, composer/composer, cucumber/cucumber, driftyco/ionic, drupal/drupal, elasticsearch/elasticsearch, elasticsearch/logstash, excilys/androidannotations, facebook/osquery, facebook/presto, FriendsOfPHP/PHP-CS-Fixer, github/linguist, Homebrew/homebrew, Itseez/opencv, jadejs/jade, jashkenas/backbone, JohnLangford/vowpal_wabbit, jquery/jquery-ui, libgdx/libgdx, meskyanichi/backup, mrdoob/three.js, netty/netty, omab/django-social-auth, openframeworks/openFrameworks, plataformatec/devise, prawnpdf/prawn, pydata/pandas, Respect/Validation, sampsyo/beets, SFTtech/openage, sparklemotion/nokogiri, spring-projects/spring-framework, strongloop/express, thinkaurelius/titan, ThinkUpLLC/ThinkUp, thumbor/thumbor, xetorthio/jedis
TF = 3: bbatsov/rubocop, bitcoin/bitcoin, bundler/bundler, divio/django-cms, haml/haml, jnicklas/capybara, mozilla/pdf.js, rg3/youtube-dl, yiisoft/yii2
TF = 4: boto/boto, BVLC/caffe, codemirror/CodeMirror, gradle/gradle, ipython/ipython, jekyll/jekyll, jquery/jquery
TF = 5: iojs/io.js, meteor/meteor, ruby/ruby, WordPress/WordPress
TF = 6: chef/chef, cocos2d/cocos2d-x, diaspora/diaspora, emberjs/ember.js, resque/resque, Shopify/active_merchant, spotify/luigi, TryGhost/Ghost
TF = 7: django/django, joomla/joomla-cms, scikit-learn/scikit-learn
TF = 9: JetBrains/intellij-community, puppetlabs/puppet, rails/rails
TF = 11: saltstack/salt, Seldaek/monolog, v8/v8, webscalesql/webscalesql-5.6
TF = 12: fog/fog, git/git
TF = 14: odoo/odoo
TF = 18: php/php-src
TF = 19: android/platform_frameworks_base, moment/moment
TF = 23: fzaninotto/Faker
TF = 57: torvalds/linux
Our results are summarized as follows:
-
Most systems have a small truck factor:
- 45 systems have TF=1 (34%), including systems like mbostock/d3, and less/less.js.
- 42 systems have TF=2 (32%), including systems like clojure/clojure, cucumber/cucumber, ashkenas/ backbone and elasticsearch/elasticsearch.
The two systems with the highest Truck Factor are fzaninotto/Faker (TF = 23) and torvalds/linux (TF = 57).
More Info
Avelino G, Valente MT, Hora A. What is the Truck Factor of popular GitHub applications? A first assessment. PeerJ PrePrints, 2015.