RubyGems与npm软件生态系统中开发者留存率的实证比较
软件工程
2017-10-16 v1
摘要
软件生态系统可以被视为由维护技术组件的社会组件(开发者社区)和技术组件(软件包)组成的社会-技术网络。生态系统随着时间的推移通过社会-技术变化而演化,这些变化可能会对生态系统的可持续性产生重大影响。诸如开发者流失等社会变化可能导致技术退化。这促使我们需要识别导致开发者放弃的因素,以便自动化识别具有高放弃风险的开发者的过程。本文比较了两个软件包生态系统RubyGems和npm的这些因素。我们分析了它们托管在GitHub上的包的演化,考虑了以commits衡量的开发活动,以及以与commits、issues或pull requests相关的comments衡量的与其他开发者的社会互动。我们分别分析了RubyGems和npm中超过3万名和6万名开发者的这种社会-技术活动。我们使用生存分析来识别哪些因素与较低的生存概率相吻合。我们的结果显示,放弃生态系统概率较高的开发者:不与其他开发者进行讨论;没有强烈的社会和技术活动强度;沟通或提交频率较低;并且不长期参与技术和社会活动。这些观察结果可用于自动化识别具有高概率放弃生态系统的开发者,从而降低与知识流失相关的风险。
引用
@article{arxiv.1708.02618,
title = {An Empirical Comparison of Developer Retention in the RubyGems and npm Software Ecosystems},
author = {Eleni Constantinou and Tom Mens},
journal= {arXiv preprint arXiv:1708.02618},
year = {2017}
}
备注
This paper is a preprint of a paper that has been accepted for publication in the Springer's journal Innovations in Systems and Software Engineering