您已决定使用指标来跟踪您的自由开源软件 (FOSS) 社区。 现在出现了一个大问题:我应该跟踪哪些指标?
要回答这个问题,您必须了解您需要什么信息。 例如,您可能想了解项目社区的可持续性。 社区对问题的反应速度有多快? 社区是如何吸引、保留或失去贡献者的? 一旦您确定需要哪些信息,您就可以确定哪些社区活动轨迹可用于提供这些信息。 幸运的是,遵循开放开发模型的 FOSS 项目往往会在其软件开发存储库中留下大量公共数据,这些数据可以进行分析以收集有用的数据。
在本文中,我将介绍一些指标,这些指标有助于提供项目社区的多方面视图。
1. 活动
社区的总体活动以及它随时间推移的演变是所有开源社区的有用指标。 活动提供了有多少社区正在做的初步视图,并且可以用来跟踪不同类型的活动。 例如,提交的数量初步说明了开发工作量。 打开的票证数量提供了对报告的错误数量或提出的新功能的洞察。 邮件列表中的消息数量或论坛中的帖子数量说明了公开进行的讨论有多少。
OpenStack 项目中代码审查后提交的数量和合并的更改数量,如 OpenStack 活动仪表板 中所示。 随时间推移的演变(每周数据)。
2. 规模
社区的规模是参与其中的人数,但是,根据参与的类型,规模数字可能会有所不同。 通常您对活跃贡献者感兴趣,这真是个好消息。 活跃的人可能会在项目的存储库中留下痕迹,这意味着您可以通过查看 git 存储库中的 Author 字段来计算活跃于生产代码的贡献者,或者通过查看谁在为他们做出贡献来计算参与解决问题的人。
活动"(有人做了某事)这个基本概念可以以多种方式扩展。 跟踪活动的一种常见方法是查看有多少人完成了相当数量的活动。 通常,例如,项目的大部分代码贡献来自项目社区中的一小部分人。 了解这一部分有助于了解核心小组(即,帮助领导社区的人)。
Xen 项目中邮件列表中的作者数量和发帖者数量,如 Xen 项目开发仪表板 中所示。 随时间推移的演变(每月数据)。
3. 性能
到目前为止,我一直专注于衡量活动和贡献者的数量。 您还可以分析流程和人员的表现。 例如,您可以衡量流程完成所需的时间。 解决或关闭票证的时间显示了项目对需要采取行动的新信息的反应方式,例如修复报告的错误或实施请求的新功能。 代码审查中花费的时间(从建议对代码进行更改的那一刻到被接受的那一刻)显示了将建议的更改升级到社区期望的质量标准需要多长时间。
其他指标涉及项目如何应对待处理的工作,例如新票证与已关闭票证的比率,或仍未完成的代码审查的积压。 这些参数告诉我们,例如,投入解决问题的资源是否足够。
每季度关闭的票证与打开的票证的比率,以及接受或放弃的更改提案与新更改提案的比率。 OpenStack 项目,如 OpenStack 开发报告,2015 年第三季度 (PDF) 所示。
4. 人口统计
随着贡献者进出,社区也在发生变化。 根据人们随时间进出社区的方式,社区的年龄(成员加入社区以来的时间)有所不同。 社区老化图 很好地说明了这些随时间推移的交流。 该图表结构为一组水平条,每个“代”加入社区的人有两个。 对于每一代人,吸引的条显示了在相应时间段内有多少新人加入了社区。 保留的条显示了有多少人仍然活跃在社区中。
每一代人的两个条之间的关系是保留率:该代人中仍在项目中的人的比例。 完整的吸引的条集显示了该项目过去有多吸引人。 完整的保留条集显示了社区的当前年龄结构。
Eclipse 社区的社区老化图,如 Eclipse 开发仪表板 中所示。 每六个月定义一代人。
5. 多样性
多样性是社区韧性的一个重要因素。 一般来说,社区越多样化(就参与的人员或组织而言),它们就越有弹性。 例如,当一家公司决定离开 FOSS 社区时,如果其员工贡献了 5% 的工作而不是 85% 的工作,那么离开可能导致的潜在问题要小得多。
小马因子,这是 Daniel Gruno 定义的一个术语,用于执行 50% 提交的开发人员的最小数量。 基于小马因子,大象因子是其员工执行 50% 提交的公司的最小数量。 这两个数字都表明了社区依赖多少人或公司。
在云计算领域中几个 FOSS 项目的小马因子和大象因子,如 开放云的定量状态 2015 (slides) 中所示。
还有许多其他指标可以帮助衡量社区。 在确定要收集哪些指标时,请考虑您社区的目标,以及哪些指标将帮助您实现这些目标。
评论已关闭。