论文标题
实践中的公交因素
Bus Factor In Practice
论文作者
论文摘要
公交系数是一个指标,可以识别突然工程师营业额的项目的弹性。它指出,必须被公共汽车击中的工程师数量最少才能停滞。即使在社区中经常讨论该指标,很少有研究认为其一般意义。此外,即使存在其他知识生成和分发渠道,现有的公交因子估计工具仅关注版本控制系统的数据。通过对269名工程师的调查,我们发现公交因素被认为是集体开发中的重要问题,并确定了软件开发团队中知识生成和分布的最高影响渠道。我们还提出了一种多模式总线因子估计算法,该算法在代码审查和会议上以及VCS数据以及VCS数据中使用数据。我们测试了Jetbrains开发的13个项目的算法,并将其结果与Avelino等人的最先进工具的结果进行了比较。反对在从事这些项目的工程师的调查中收集的地面真相。与Avelino等人的结果相比,在预测总线因子和关键开发人员方面,我们的算法都稍好一些。最后,我们使用访谈和调查来得出一组最佳实践,以解决公交因素问题和可能的公交因素评估工具的建议。
Bus factor is a metric that identifies how resilient is the project to the sudden engineer turnover. It states the minimal number of engineers that have to be hit by a bus for a project to be stalled. Even though the metric is often discussed in the community, few studies consider its general relevance. Moreover, the existing tools for bus factor estimation focus solely on the data from version control systems, even though there exists other channels for knowledge generation and distribution. With a survey of 269 engineers, we find that the bus factor is perceived as an important problem in collective development, and determine the highest impact channels of knowledge generation and distribution in software development teams. We also propose a multimodal bus factor estimation algorithm that uses data on code reviews and meetings together with the VCS data. We test the algorithm on 13 projects developed at JetBrains and compared its results to the results of the state-of-the-art tool by Avelino et al. against the ground truth collected in a survey of the engineers working on these projects. Our algorithm is slightly better in terms of both predicting the bus factor as well as key developers compared to the results of Avelino et al. Finally, we use the interviews and the surveys to derive a set of best practices to address the bus factor issue and proposals for the possible bus factor assessment tool.