开源是我们这个时代最重要的技术趋势之一。它是数字经济的命脉,也是当今软件创新发生的主要方式。事实上,据估计,今天发布的软件中有 90% 以上包含开源库。
毫无疑问,开源模式是有效且具有影响力的。但还有改进的空间吗?当将更广泛的软件行业的流程与开源社区的流程进行比较时,一个很大的差距显而易见:生产力管理。
总的来说,开源项目负责人和维护者在采用现代生产力和项目管理实践以及初创公司和企业普遍采用的工具来提高软件开发流程的效率和可预测性方面进展缓慢。现在是我们审视如何应用这些方法和能力来更好地改进开源项目管理的时候了。
理解开源软件开发中的生产力
开源模式的核心是社区驱动的。不同社区对成功的定义各不相同,因此不存在衡量成功的通用方法。而我们传统上认为的软件开发生产力衡量标准,如提交速度、批准和合并的拉取请求数量,甚至交付的代码行数,都只说明了部分情况。
开源项目是以人为本的。我们需要采取整体和人文主义的方法来衡量生产力,这种方法超越了传统的衡量标准。我认为这种新方法应侧重于这样一个事实:伟大的开源是关于贡献者多元化社区之间的沟通和协调。社区内的包容性、开放性和透明度水平会影响人们对其参与的感受,从而提高团队的生产力。
这些以及其他有助于开源团队生产力的维度可以使用 SPACE 框架来理解和衡量,该框架是基于专有世界的经验以及 GitHub、加拿大维多利亚大学和微软进行的研究而开发的。我相信 SPACE 框架有潜力提供开源项目正在发生的事情的平衡视图,这将有助于驱动和优化项目团队成员之间的协作和参与。
更准确的生产力框架
SPACE 框架的首字母缩略词代表
- Satisfaction 和幸福感
- Performance(绩效)
- Activity(活动)
- Communication 和协作
- Efficiency 和流程
满意度和幸福感是指开发人员对团队、他们的工具和环境的满意程度,以及他们的健康和快乐程度。幸福感作为团队成功的因素在某种程度上被低估了。然而,有强有力的证据表明,人们的感受与他们的生产力之间存在直接关联。在开源行业中,调查贡献者、提交者和维护者对正在做的事情以及如何做的态度、偏好和优先事项,对于理解态度和意见至关重要。
此处的绩效是指根据流程的结果而不是输出来评估生产力。团队层面的示例是代码审查速度(捕捉审查速度)和交付的故事点数。更全面的衡量标准侧重于质量和可靠性。例如,代码的编写方式是否能确保它可靠地完成其应完成的任务?软件中是否存在大量错误?该软件在行业中的采用率是否在增长?
开源活动侧重于衡量设计和开发以及 CI/CD 指标,如构建、测试、部署、发布和基础设施利用率。开源项目的示例指标是拉取请求数量、提交数量、完成的代码审查数量、构建版本和创建的项目文档。
沟通和协作捕捉了人员和团队如何协同工作、沟通以及在团队内部和团队之间以高度透明性和意识协调工作。该领域的指标侧重于论坛的活力,通过帖子数量、消息数量、提问和回答的问题数量以及召开的项目会议来衡量。
最后,效率和流程是指以最少的中断和延迟完成工作并朝着目标前进的能力。在个人开发人员层面,这完全是关于进入一种流程,使复杂的任务能够在最少的干扰、中断或上下文切换的情况下完成。在项目团队层面,这是关于优化流程以最大限度地减少将软件从想法或功能请求到编写成代码所需的步骤中发生的延迟和交接。指标围绕流程延迟、交接、任务时间和项目贡献和集成的简易性而构建。
将 SPACE 框架应用于开源团队
以下是一些示例指标,说明如何将 SPACE 框架用于开源项目。
满意度和幸福感
- 贡献者满意度
- 社区情绪
- 社区增长与多样性
绩效
- 代码审查速度
- 交付的故事点数
- 无错误
- 行业采用率
活动
- 拉取请求数量
- 提交数量
- 代码审查数量
- 构建数量
- 发布数量
- 创建的文档数量
沟通和协作
- 论坛帖子
- 消息
- 提问和回答的问题
- 会议
效率和流程
- 代码审查时间
- 流程延迟与交接
- 贡献/集成易用性
用于管理开源项目的工具必须适合用途
有机会利用初创公司和高增长组织使用的工具和方法来理解和提高开源开发效率。同时将开源的核心原则(如开放性和透明度)付诸实践。
开源团队使用的工具应使维护者和贡献者能够高效和成功,同时允许项目对所有人开放和欢迎,包括可能在多个组织甚至竞争公司工作的开发人员。为新贡献者提供出色的入门体验并加快他们理解和做出贡献的时间也至关重要。
用于管理开源项目的工具应透明地管理数据,并根据协作发生的位置(代码库和存储库中)准确反映项目进度。开源团队应该能够根据问题和拉取请求的更新查看实时更新。并且,项目负责人和维护者应该有灵活性来决定对项目的访问是完全公开的,还是应该仅限于受信任的个人,以处理更敏感性质的问题或信息。
理想情况下,工具应允许自治的项目团队简化协调、流程和工作流程,并通过自动化消除重复性任务。这减少了人为摩擦,并使维护者和贡献者能够专注于真正重要的事情:为生态系统或社区做出贡献,并更快、更可靠地交付版本。
团队使用的工具还应支持来自任何地方的人员的协作。由于开源团队在一个远程和异步的世界中工作,工具应该能够集成每个人的贡献,无论这些贡献何时何地发生。这些努力应通过存储在中央且易于访问的位置的出色文档来支持。最后,工具应支持基于上述生产力框架和衡量标准的持续改进。
允许提高透明度的功能对于开源项目尤为重要。工具应帮助社区成员保持一致并朝着共同目标努力,项目路线图应显示正在进行的工作、进度更新和预测的结束日期。
结论
开源项目对我们所有人都有好处,因此,使这些项目内部存在的流程尽可能高效对每个人都有利。
通过利用 SPACE 框架和现代工具等概念,我们可以抛弃电子表格和手动跟踪、衡量和提高生产力的方式。我们可以调整专有世界中驱动软件开发的方法,并利用现代工具来帮助提高开源软件版本的质量、可靠性和可预测性。开源太重要了,不能有丝毫懈怠。
2 条评论