谢伊·埃里森的博客 - 同事让我不要写的 GitHub 插件。

  • Posted on: 2024-11-11
  • Visualization: A picture of "holastafur" and a link to mclare's blog with coooool visualizations. Also a picture of "truck-factor" on mclare's blog.
  • What is Bus/Truck Factor: According to wikipedia, it's the minimum number of team members that have to suddenly disappear for a project to stall due to lack of knowledgeable or competent personnel.
  • Why: In 2015, the employer had layoffs and the only contributor to a money-making codebase left. The author read about "Truck Number" and wrote a github enterprise plugin to calculate who couldn't be fired. He also found a related research paper. But his coworkers thought it would hit "Goodhart's Law" as it could be used to easily calculate who could be fired.
  • What: The original authors calculated the number of people who had to be hit by a bus for popular GitHub projects to stall, including the Linux kernel. The authors' github repo is available and their visualization is backed by a CSV.
  • Reproducing Results: The Truck Factor research paper has a github repository with JSON data and a CSV. But the README instructions don't work. They spent an hour figuring it out and used gnu parallel to clone and process the repos. They got the list of github repos from the CSV and ran java code to ingest the commit data. It took 17.5 minutes to clone all the repos one at a time and about 18 minutes to process each repo.
  • Problems: The calculation neglects the review process. As developers move up the career ladder, they should do more review and less hands-on keyboard.
  • Further Work: Check if the truck factor calculation takes into account git's co-authored-by and reviewer headers. Compare the current truck factor of popular projects to their history. Look at the citations of the paper and find a better calculation. Figure out how to install Ruby Gems in NixOS.
  • Conclusion: The bus factor has gotten worse. The 2015 preprint gave the Linux kernel a truck factor of 90 and the full publication gave 57. Without the linguist plugin, the truck factor for the Linux kernel was 12. After installing the plugin, it was 8.
  • Visualize: For more visualizations and details, check out mclare's blog.
阅读 14
0 条评论