Beyond the Grave: An Empirical Study of Dormancy and Revival in Scientific Open-Source Software
这项针对科学开源软件的实证研究表明,固定的不活跃阈值不足以识别弃置行为,而是揭示了休眠通常是暂时的,且是由功能冻结而非项目完成所驱动的,而长期可持续性更多地取决于生命周期原型和贡献者连续性,而非具体的复苏机制。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
大背景:“僵尸”软件问题
想象你正在观察一片巨大的软件项目墓地。在科学计算领域,研究人员构建工具来解决特定问题,但许多这些工具最终都会停止更新。
长期以来,科学界一直使用一个简单的规则来判断一个项目是否“死亡”(被遗弃):如果六个月内没有人触碰过代码,它就是死的。
本文的作者认为,这个规则就像一个糟糕的医生,仅仅因为病人几分钟没呼吸就宣布其死亡。有时候,病人只是在睡觉(处于休眠状态),稍后可能会醒来。而其他时候,他们是真的离开了。问题在于,“六个月规则”无法区分这两者。
实验:挖掘坟墓
为了了解项目在进入沉寂状态后会发生什么,研究人员对 18,000 个科学软件项目的大规模列表进行了研究。他们发现大约有 3,000 个项目曾被标记为“死亡”,但随后突然又开始活跃起来(有了新的代码更新)。他们称这些项目为**“休眠-复苏型”(Dormant-Revived)**项目。
他们不仅查看了代码,还雇佣了 75 名学生(充当侦探)手动阅读了 750 个这类“僵尸”项目的历史记录。他们通过查看提交信息(commit messages)、讨论板和 README 文件,来回答五个核心问题。
五大发现
以下是他们的发现,已转化为日常用语:
1. “为什么”往往是个谜 (RQ1)
类比: 想象你看到一辆车在车道里停了一年,然后突然又开走了。你可能会猜车主去度假了,或者车被卖了,由新主人买下了。但通常情况下,并没有线索。
发现: 对于 52.5% 的项目,研究人员仅通过查看代码无法查明项目最初为何陷入沉寂。相关的“线索”缺失了。
意外之处: 当他们确实找到了原因时,原因通常并不是因为研究论文已经发表完成(这是人们之前的假设),而是因为开发者决定:“这个版本已经足够好了,我们先把它冻结起来吧。”
2. 醒来 vs. 保持清醒 (RQ2 & RQ3)
类比: 想想一个从午睡中醒来的人。有时他们会起床、冲杯咖啡,然后开始一天的活动(持续性复苏)。有时他们醒来,伸个懒腰,说句“我好累”,然后又睡了过去(复苏后再次衰退)。有时,他们只是抽动了一下手指,然后立刻又睡着了(单次脉冲)。
发现:
- 假警报: 约 11.5% 的“苏醒”是虚假的。那只是自动化机器人进行的微小更改,或者是瞬间爆发后立即停止的活动。
- 最常见的结局: 最常见的结局并不是完全的复苏。而是**“复苏后再次衰退”**的情景。项目醒来了,做了一些工作,然后又睡了过去。
- 真正的复苏: 只有大约 28% 的项目真正醒来并保持了活跃。
3. “如何做”不如“模式”重要 (RQ2 & RQ5)
类比: 如果你看到一辆车开始移动,那么是谁启动了引擎(是新司机还是老司机)或者他们先做了什么(是检查机油还是加油)重要吗?作者发现,这些细节并不能预测这辆车是否会继续行驶。重要的是驾驶模式。
发现:
- 无论是新成员接手还是原作者回归,影响并不大。
- 无论是新工作是在修复 Bug 还是增加新功能,影响也不大。
- 真正起作用的是: 生活方式原型(Lifestyle Archetype)。这是一种高级说法,指的是“活动模式”。
- 如果一个项目经历了短时间的小睡(3 个月)并醒来,它通常会保持清醒。
- 如果一个项目经历了长期的昏迷(超过一年)并醒来,它更有可能再次陷入沉睡。
- 有些项目是“经典僵尸”——它们睡了数年,醒来,并且保持了活跃。这类项目虽然罕见,但确实存在。
4. “六个月规则”失效了 (结论)
类比: 使用单一的计时器来决定一个项目是否死亡,就像使用单一的体温计来诊断复杂的疾病一样。这太简单了。
发现: 作者得出结论,我们不能依赖简单的“无活动 X 个月”规则来宣布科学软件被遗弃。
- 短间隔(少于 3 个月)通常意味着项目运行正常。
- 长间隔(超过一年)是有风险的,但并非总是致命的。
- 唤醒时的模式比沉默的时长更重要。
给每个人的启示
如果你是一名科学家、资助者或工具开发者:
- 不要惊慌,如果一个项目沉寂了几个月。它可能只是在小睡。
- 不要过早庆祝,如果它醒来了。请检查它是“真正的”苏醒,还是仅仅是一个“抽搐”。
- 看完整的故事。 不要只计算沉默的天数,要观察是谁在工作、他们是如何工作的,以及项目的历史。
本文提供了一个新的“清单”(分类法),帮助我们将这些处于睡眠状态的项目归类为“经典僵尸”、“短睡者”和“单次脉冲者”等类别,这样我们就能停止在它们可能只是在休息时,错误地将它们贴上“死亡”的标签。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。