编辑推荐:
在团队合作对知识生产和创新至关重要的当下,多数研究将团队视为静态群体,难以揭示协作过程和组织变化如何影响团队成功。研究人员分析 Rust、JavaScript 和 Python 软件生态系统数据,发现团队工作量分布不均与成功相关,且领导变更与更快的成功增长有关。这有助于理解团队演化与成功的联系。
在当今时代,无论是科学研究领域,还是工业生产范畴,团队合作都扮演着极为关键的角色。在科学研究中,团队协作能助力实现突破性的发现;在工业界,团队合作是快速开发创新解决方案的必备要素。团队的有效性依赖于成员专业知识的持续整合,以及利用建设性冲突产生新见解的能力。然而,过往大多数研究在探讨团队时,都将其当作静态的个体集合,忽略了团队随时间的动态变化。由于获取和收集跟踪团队活动的时间序列数据存在困难,相关实证研究较少。比如在科学领域,虽然有研究利用大规模出版数据探索 “持久团队”,但出版数据仅记录了团队合作的结果,无法呈现合作过程中的具体细节。在组织理论中,通过多时期观察跟踪团队活动的方法,存在时间分辨率低、易干扰团队工作等问题。而开源软件开发为研究团队协作动态提供了理想契机,基于此,来自 Central European University 等机构的研究人员开展了一项关于开源软件开发团队中领导与成功动态关系的研究,该研究成果发表在《Nature Communications》上。这一研究对于深入理解团队协作过程中团队演化与成功之间的联系具有重要意义,为相关领域的进一步研究提供了新的视角和理论依据。
研究人员主要运用了以下关键技术方法:首先,收集并筛选了来自 Rust、JavaScript 和 Python 三个软件生态系统中 GitHub 存储库的开发者活动数据,包括提交记录、星星数量、下载量等。其次,通过定义相对有效团队规模等指标,量化工作量分布的异质性。最后,利用匹配程序,对比领导变更和未变更的存储库的成功轨迹。
主要研究结果
- 主导开发者的出现:通过分析开发者提交记录在团队成员间的分布,研究发现多数项目中存在 “主导开发者”,其承担了大部分工作量。例如,在 Rust 生态系统中,最活跃的开发者(排名第 1)提交的代码量超过总提交量的一半,而第二活跃的开发者通常仅占 10 - 20%。研究还发现,工作量分布的异质性与项目成功呈正相关,即相对有效团队规模越小(工作量分布越不均衡),项目越成功,这一关系在以星星数量和下载量作为成功指标时均得到验证。
- 主导开发者活动的特征:主导开发者不仅提交代码频繁,而且在项目中承担管理和协调角色。他们拥有直接写入权限,参与合并拉取请求(pull requests)的活动,在沟通网络中占据中心位置。此外,与非主导开发者相比,主导开发者提交代码的频率更高,连续提交的时间间隔更短,参与的存储库数量更多,且在多个项目间切换的时间更短。同时,有经验的主导开发者领导的项目,下载量相对更高。
- 存储库的主导开发者可能发生变更:研究发现,约 10% 的存储库会发生主导开发者的变更,且多数变更发生在存储库创建后的第二至第三年。变更发生时,原主导开发者的活动迅速下降,新主导开发者的贡献大幅增加。进一步分析表明,初始主导开发者缺乏经验时,存储库更有可能发生主导开发者的变更,而项目之前的成功与未来主导开发者变更的可能性并无关联。
- 变更主导开发者的存储库在变更后表现更好:通过匹配程序对比发现,变更主导开发者的存储库在变更后,无论是在软件的受欢迎程度(以星星数量衡量),还是在实用性和质量(以下载量衡量)方面,都呈现出更快的成功增长趋势。并且,低成功率的存储库在变更主导开发者后,星星数量的增长幅度更大;有经验的原主导开发者领导的项目,在变更后受益更多。
研究结论与讨论
本研究利用来自三种流行编程语言的软件开发团队的细粒度数据,描绘了在线协作项目的时间动态。研究揭示了主导开发者的活动模式,发现团队成员间工作量的不均衡分布与存储库的成功呈正相关,还确定了部分项目会发生主导开发者的变更,且这种变更与更快的成功增长相关。
从开源软件开发的角度来看,虽然集中式的工作量分布可能提高效率,但也可能使项目面临风险,即关键开发者离开可能导致项目发展受阻,这体现了开源软件开发中 “高风险,高回报” 的策略。在更广泛的团队科学领域,本研究有助于探讨团队组成变化对团队合作的影响。尽管以往研究表明团队变化可能有利有弊,但核心成员的变更无疑会深刻影响团队功能。本研究结果倾向于表明这种变更对团队成果有积极影响,特别是对于 Rust 项目中有经验的主导开发者,他们在为项目成功奠定基础方面可能发挥重要作用。然而,主导开发者变更与项目成功之间的因果关系仍不明确,是成功驱动领导变更,还是领导变更促进成功,需要进一步研究。此外,本研究主要聚焦于主导开发者,未来研究可以关注其他团队成员的工作量分布变化。尽管研究存在一些局限性,如不同编程语言的编码实践差异可能影响结果,且无法获取 JavaScript 和 Python 较旧项目的完整成功时间序列数据,但研究结果在三种主要编程语言中的一致性,表明其可能适用于一般的开源软件开发。总之,该研究为团队演化、领导动态及其与项目成功的关系提供了新的视角,有助于更深入地理解协作过程中的成功动态。