如何为你的社区定义指标策略

衡量数据可以帮助开源社区提高效率,但设计和实施策略可能是一个挑战。本文将介绍如何分解它。
703 位读者喜欢这篇文章。
Green graph of measurements

Internet Archive Book Images。由 Opensource.com 修改。CC BY-SA 4.0

数据集无处不在,由于开源社区除了源代码外还产生大量信息,因此大多数社区基础设施都需要工具来支持软件开发过程。例如,包括诸如 JiraBugzilla 等错误报告系统,诸如 Git 等版本控制系统,以及诸如 Gerrit 等代码审查工具。尽管沟通也通过这些工具进行,但大多数沟通是通过邮件列表、IRC、诸如 Discourse 等支持系统,甚至 Twitter 和其他社交渠道(特别是用于营销和公告)完成的。实际上,大多数开源社区至少使用五到十个工具,甚至更多。

当涉及到监控数据时,我们倾向于选择“容易”的指标,或者我们感觉最舒适的指标。例如,如果您的背景是工程学,您可能更喜欢代码审查或源代码指标。如果您从事营销,那么“容易”的选择可能是潜在客户、网站访问量和其他此类数据点。

由于有如此多的数据,监控它似乎是一项艰巨的任务,因此使用正确的指标非常重要。

为什么你需要指标?

以我的经验,指标有三个主要功能:提高意识、引导变革和激励。

  • 意识帮助您了解自己相对于特定政策和目标所处的位置。例如,如果您不知道有多少项目贡献是由代表性不足的少数群体做出的,您就无法确定旨在创造更具包容性和多样性的工作环境的工作场所政策是否成功。
  • 引导变革侧重于确定路径。例如,如果实施了特定政策,指标将指示 KPI 是增加还是减少。
  • 激励行动有助于社区吸引开发人员并帮助成员实现目标。例如,许多社区奖励在 beta 产品中检测到 bug 的开发人员。这以两种方式使社区受益:bug 得到修复,寻找 bug 成为社区成员的首要任务。

你可以衡量什么?

开源社区包括五个可衡量的兴趣领域:活动、社区、流程、代码和许可证。

  • 活动:这是最基本的领域,专注于衡量趋势和事件。它采用最简单的方法,就像数土豆一样:您可以计算提交、代码审查流程、评论、fork 或 star——但要注意不要将活动受欢迎程度混淆。例如,仅衡量 GitHub 中的 fork 或 star 可能是衡量受欢迎程度的好指标,但不是衡量活动的好指标。
  • 社区:这是开源的核心,因为社区成员生产和审查代码、打开错误报告等。他们产生在活动领域衡量的事件。但是谁是主要的开发人员?成为主要开发人员意味着什么——他们是产生最多代码的成员,还是他们的代码构成了当前版本?他们是否担任导师?对此类人口统计数据的分析可以创建社交网络——例如,下图显示了 Python 解释器 CPython 的社交网络

此图像有助于显示在项目的不同领域工作的开发人员是谁,识别那些对架构有更广泛了解的人以及那些专注于特定存储库的人。点代表开发人员,而蓝色矩形是 CPython 中的存储库。只有当开发人员参与存储库时,才会出现图边(点和矩形之间的链接)。点越大,该开发人员提交的存储库越多——在本例中,CPython 似乎有六到七个主要开发人员。边越粗,开发人员在该存储库(蓝色矩形)中产生的提交越多。

  • 流程:流程侧重于分析软件开发活动。这有助于您了解每个人是否都遵循类似的流程,或者工具链的更改是否正在减慢开发速度或造成瓶颈。衡量流程可以帮助您确定总时间,因为一个想法被编写为功能请求或用户故事,直到它被合并到代码中。如果您知道该时间范围,并且它保持稳定,那么例如,您可以估计您可能需要部署给客户的总时间。
  • 代码:此分析领域可以通过从多个角度监控代码质量来提供有价值的见解。
  • 许可证:合规性是开源社区的基本原则。社区的所有成员都必须理解许可证的含义;当第三方使用该软件进行构建时,这一点甚至更重要。

你如何进行?

现在您已经有了为什么什么,您需要如何。首先,您需要遵循特定的方法。您可以考虑许多公司使用的 OKR(目标和关键结果)或 GQM(目标-问题-指标)方法;关键是使用一种支持社区治理和业务目标的方法。归根结底,我们都为了实现特定目标而获得报酬,而 GQM 帮助实现这一点。为了简化,开源社区有治理,而治理有特定的短期、中期和长期目标。GQM 方法可以帮助您将适当的指标应用于业务目标

治理 -> 目标 <- 问题 <- 指标

以下是它的工作原理

  • 详细说明一组项目业务目标。
  • 创建尽可能完整地定义这些目标的问题。
  • 通过指标回答这些问题,并根据初始目标跟踪流程和产品功能。
  • 文档编制是此级别的关键任务,因此始终记住原始目标、您提出的问题以及您用于回答这些问题的指标。这有助于将结果与以前的流程进行比较,并从失败中吸取教训。

接下来你需要一个策略。一个典型的策略是 计划-执行-检查-行动。首先定义短期目标;那是您未来几个月的计划。然后开始努力应用您定义的政策,并进行衡量以确定这些政策是否有效。然后继续迭代并定义新的业务目标——始终将指标和目标视为迭代过程:您今天定义的指标不太可能适合您明年的业务目标。这有助于回答这个问题:我应该使用此指标多长时间?

最后的想法

监控和指标是可以帮助您日常工作的工具。指标应该被视为盟友,而不是因为经常被引用的误用示例而避免的东西,并且它们独立于我们在社区中扮演的每个角色。开源社区生产的产品以及他们使用的流程都具有透明度,而指标是透明度的另一个分支。透明度应该影响社区的行为、工作和随着时间的推移的演变,这需要将每个成员都纳入日常监控流程。这也意味着在确定流程时应考虑每个社区成员的需求。

最后,我想提及 CHAOSS(开源软件的社区健康分析)项目,该项目最近在洛杉矶的开源峰会上推出,隶属于 Linux 基金会。我有机会自该项目启动以来就参与其中,如果有一个讨论开放和内部开源社区指标的最佳场所,那就是这里。

在 Daniel Izquierdo 的演讲 为您的社区定义指标策略 中了解更多关于指标的信息,该演讲在 欧洲开源峰会 上举行,将于 10 月 23 日至 26 日在布拉格举行。

Daniel Izquierdo
Daniel Izquierdo Cortazar 是一位研究员,也是 Bitergia 的创始人之一,Bitergia 是一家为开源生态系统提供软件分析的公司。目前担任 Bitergia 的首席数据官,他专注于数据质量、新指标的研究、分析以及通过数据挖掘和处理为 Bitergia 客户感兴趣的研究。

评论已关闭。

Creative Commons License本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.