QUICK REVIEW
[论文解读] Code Review For and By Scientists
Marian Petre, Greg Wilson|arXiv (Cornell University)|Jul 21, 2014
Software Engineering Research参考文献 9被引用 15
一句话总结
本文通过两项试点研究调查了科学家的代码审查实践,发现即时、小规模的代码审查比项目结束后的审查更有效。科学家通过与导师协作、逐步进行的代码审查,能显著提升代码质量、可复现性和可重用性,尤其在定期对话和明确目标的配合下效果更佳。
ABSTRACT
We describe two pilot studies of code review by and for scientists. Our principal findings are that scientists are enthusiastic, but need to be shown code review in action, and that just-in-time review of small code changes is more likely to succeed than large-scale end-of-work reviews.
研究动机与目标
- 探索在通常缺乏正式软件工程实践的科学家中,实施代码审查的可行性和益处。
- 识别在科学软件开发中采用代码审查的主要障碍,包括文档缺失、工具支持不足以及沟通不畅等问题。
- 通过导师制和迭代实践,制定可实施、可扩展的策略,将代码审查融入科学工作流程。
- 理解开发者与科学家在代码审查认知上的差异,并探索弥合这些差异以实现有效协作的方法。
- 建立可持续、低负担的代码审查流程实施指南,适用于科研团队。
提出的方法
- 对来自《PLOS Computational Biology》的科学软件进行事后代码审查,由不熟悉科学领域的专业开发者执行。
- 对11名开发者和4名代码作者进行半结构化访谈,评估审查质量、可用性及感知价值。
- 启动第二项试点研究,将经验丰富的科学程序员与经验较少的科学家配对,通过导师制传授代码审查技能。
- 强调定期、同步的审查会议(每3–4周一次),明确目标、日程安排,并开展相互反馈,以建立信任与默契。
- 鼓励渐进式改进——例如每次代码变更时添加文档字符串和测试——而非大规模重构。
- 使用活跃研究项目中的真实代码库,聚焦于自包含、处于积极开发中的3–4页模块作为初始审查对象。
实验结果
研究问题
- RQ1缺乏领域专业知识的非科学家开发者能否有效审查科学软件?
- RQ2科学家与开发者在代码质量与文档标准、期望及实践方面存在哪些差异?
- RQ3在科学软件开发中,采用代码审查的主要障碍是什么?如何克服?
- RQ4与大规模、项目末期的审查相比,即时、小规模的代码审查在有效性与采纳度方面表现如何?
- RQ5人际沟通与导师制在科学家群体中成功采纳代码审查过程中起到何种作用?
主要发现
- 科学家对代码审查充满热情,但通常缺乏版本控制、测试和文档等软件工程实践的经验。
- 非科学家开发者进行的事后、异步代码审查被科学家视为‘匆匆一瞥’,原因包括缺乏上下文、代码访问受限以及缺乏对话交流。
- 由于缺少可运行示例或构建说明,审查者难以验证代码,且因文档质量差而不得不做出大量假设。
- 科学家通常不打包或文档化其代码以供重用,反映出一种文化倾向:代码质量的重要性低于科学成果。
- 开发者与科学家均希望在代码审查过程中有更多对话,因为这有助于增进理解、提升反馈质量并建立信任。
- 最有效的代码审查流程包括定期同步对话、明确目标,以及渐进式改进——例如每次变更时增加文档字符串和测试,而非进行大规模重构。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。