[论文解读] An Empirical Comparison of Developer Retention in the RubyGems and npm Software Ecosystems
本研究基于GitHub数据,运用生存分析方法比较RubyGems与npm生态中开发者的留存情况,分析了提交、评论等社会技术活动。主要发现表明,低沟通频率、活动不频繁以及缺乏持续参与会增加开发者流失风险,且在不同生态及核心与外围开发者之间存在显著差异。
Software ecosystems can be viewed as socio-technical networks consisting of technical components (software packages) and social components (communities of developers) that maintain the technical components. Ecosystems evolve over time through socio-technical changes that may greatly impact the ecosystem's sustainability. Social changes like developer turnover may lead to technical degradation. This motivates the need to identify those factors leading to developer abandonment, in order to automate the process of identifying developers with high abandonment risk. This paper compares such factors for two software package ecosystems, RubyGems and npm. We analyse the evolution of their packages hosted on GitHub, considering development activity in terms of commits, and social interaction with other developers in terms of comments associated to commits, issues or pull requests. We analyse this socio-technical activity for more than 30k and 60k developers for RubyGems and npm respectively. We use survival analysis to identify which factors coincide with a lower survival probability. Our results reveal that developers with a higher probability to abandon an ecosystem: do not engage in discussions with other developers; do not have strong social and technical activity intensity; communicate or commit less frequently; and do not participate to both technical and social activities for long periods of time. Such observations could be used to automate the identification of developers with a high probability of abandoning the ecosystem and, as such, reduce the risks associated to knowledge loss.
研究动机与目标
- 识别影响开源软件生态中开发者留存的社会技术因素。
- 比较RubyGems与npm两大生态中开发者留存模式的异同。
- 探究社交互动(如评论)与技术活动(如提交)对开发者留存时长的影响。
- 区分核心开发者与外围开发者在留存驱动因素上的差异。
- 实现对高风险流失开发者的自动化预测,以减轻知识流失。
提出的方法
- 从GitHub收集超过3万名为RubyGems和6万名为npm的开发者的社交技术活动数据。
- 通过随时间变化的提交频率与强度衡量技术活动。
- 通过在提交、问题和拉取请求中评论的频率与强度衡量社交活动。
- 应用生存分析模型,将开发者流失建模为时间至事件问题,协变量代表活动模式。
- 利用Cox比例风险模型中的风险率比对留存风险进行操作化定义。
- 根据贡献量与活动模式,区分核心开发者与外围开发者。
实验结果
研究问题
- RQ1在RubyGems与npm生态中,哪些社会技术因素最能预测开发者流失?
- RQ2在这些生态中,核心开发者的留存模式与外围开发者有何不同?
- RQ3沟通频率与提交频率在独立预测流失风险方面的作用有多大?
- RQ4RubyGems与npm在影响开发者留存的因素上是否存在生态特异性差异?
- RQ5活动强度与参与持续时间如何影响开发者留存概率?
主要发现
- 沟通频率低或未参与讨论的开发者,其流失概率显著更高。
- 在两个生态中,低强度的社交与技术活动,加上贡献频率低,均会增加流失风险。
- 长时间未同时参与技术与社交活动的开发者,更可能离开生态。
- 在RubyGems中,社交沟通频率并非流失的显著预测因子;而在npm中,提交频率则无预测能力。
- 两个生态中的核心开发者在留存方面对贡献频率的敏感度较低,表明其参与具有更强的稳定性。
- 本研究揭示了生态特异的留存特征,表明预测流失的模型应针对各生态量身定制。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。