Skip to main content

社区服务与支撑

该模型用于评估开发者在贡献过程中,直接感知到的社区提供的服务和支撑做得如何。之所以强调直接感知,是因为社区提供的许多底层服务,例如开发涉及的Devops基础设施同样是构建社区服务的关键元素,但社区参与者很难有直观感受,同时缺乏通识性的评估手段。我们使用在社区式开发中,参与者所能感知到的指标维度,来间接性的评估社区整个“开源贡献马拉松的后勤保障系统”。需要注意的是,这并不意味着只做到模型中提及的指标就足够了,模型为了保证指标间的独立性,做了强相关性指标降维处理;所以如果想长期保持该项模型的长期积极发展,社区付出的努力要远远超过当前指标包含的内容。

评估模型中的指标

更新 Issue 数量

  • 定义:过去 90 天 Issue 更新的数量。
  • 权重:19.721%
  • 阈值:2000

有两个原因促使我们选择使用Issue更新的数量而不是统计关闭或者解决Issue的数量。首先,Issue有很多不同的类型,比如bug、功能需求、用户咨询和CVEs。只有特定类型的问题必须很快得到解决,比如CVEs。对于其余类型的问题, 并不追求Issue的快速解决,我们需要与问题创建者进行多次沟通,以更好地了解详细信息。如果是功能需求,从接受到解决,是按照发布计划进行的,这类场景可能也需要几个月的时间。其次,从Issue更新的数量来看,我们可以监控Issue处理的活跃度。问题更新还可以包括重开问题,表明对问题理解的变化的关注度。

关闭 PR 数量

  • 定义:过去 90 天内合并和拒绝的 PR 数量。
  • 权重:19.721%
  • 阈值:4500

代码贡献越多,需要关闭(接受或拒绝)的PR请求就越多。这表明社区正在积极地处理PR请求。我们将关闭 PR 数量更新 Issue 数量 作为该模型的结果性指标,用来总体观察社区服务与支撑力度。

Issue 首次响应时间

  • 定义:过去 90 天新建 Issue 首次响应时间的均值和中位数(天)。这不包括机器人响应、创建者自己的评论或 Issue 的分配动作(action)。如果 Issue 一直未被响应,该 Issue 不被算入统计。
  • 权重:-14.372%
  • 阈值:15 天

我们用这项指标来感知“社区温度”,对于加入社区的贡献者来说,他的提问如果能得到社区的及时回复,将会很大几率留存并持续贡献社区(依据Mozilla研究报告)。 同时我们发现近年来越来越多的机器人被用来辅助Issue处理,所以我们排除了机器人的干扰,专注人的回复。

Bug类Issue处理时间

  • 定义:过去 90 天新建的 Bug 类 Issue 处理时间的均值和中位数(天),包含已经关闭的 Issue 以及未解决的 Issue。
  • 权重:-12.88%
  • 阈值:60 天
  • 注:标记为 Bug 类的 Issue。

Bug类Issue代表了社区对需要快速解决的Issue的处理效率。我们选择使用Bug类型的Issue来代表这类Issue,当然也具有一定的局限性,因为并不是所有Bug都是高优先级处理的Bug,但相比于不区分issue类型, 该指标具备一定代表性。

PR 处理时间

  • 定义:过去 90 天新建 PR 的处理时间的均值和中位数(天),包含已经关闭的 PR 以及未解决的 PR
  • 权重:-12.88%
  • 阈值:30 天

我们追求PR的快速关闭,包括代码合并或拒绝。否则,解决PR请求所需的时间越长,发生合并冲突的风险就越大,而依赖于这个PR代码的其他代码提交请求也将堆积。

Issue 评论频率

  • 定义:过去 90 天内新建 Issue 的评论平均数(不包含机器人和 Issue 作者本人评论)。
  • 权重:10.217%
  • 阈值:5

我们希望看到社区鼓励参与者围绕具体的Bug或者需求,通过Issue的方式进行公开和透明的讨论。这样Issue的相应结论也可以做为知识储备积累下来,同时为更多人所能看到。

代码审查评论频率

  • 定义:过去 90 天内新建 PR 的评论平均数量(不包含机器人和 PR 作者本人评论)。
  • 权重:10.217%
  • 阈值:8

我们希望代码审查能够通过PR review的方式展示出来,让大家看到社区对于代码质量,安全方面管理的重视程度,同时为新人快速成长提供帮助。

评估模型算法

权重

我们使用 AHP 来计算每个指标的权重。

AHP 输入数据

指标名称更新 Issue 数量关闭 PR 数量Issue 首次响应时间Bug 类 Issue 处理时间PR 处理时间Issue 评论频率代码审查评论频率
更新 Issue 数量1.0001.0001.3331.5001.5002.0002.000
关闭 PR 数量1.0001.0001.3331.5001.5002.0002.000
Issue 首次响应时间0.7500.7501.0001.1431.1431.3331.333
Bug 类 Issue 处理时间0.6670.6670.8751.0001.0001.2501.250
PR 处理时间0.6670.6670.8751.0001.0001.2501.250
Issue 评论频率0.5000.5000.7500.8000.8001.0001.000
代码审查评论频率0.5000.5000.7500.8000.8001.0001.000

AHP 分析结果

指标名称特征向量权重
更新 Issue 数量1.38019.721%
关闭 PR 数量1.38019.721%
Issue 首次响应时间1.006-14.372%
Bug 类 Issue 处理时间0.901-12.876%
PR 处理时间0.901-12.876%
Issue 评论频率0.71510.217%
代码审查评论频率0.71510.217%

一致性检验结果

最大特征根CI 值RI 值CR 值一致性检验结果
7.0020.0001.3600.000PASS

阈值

我们选择的阈值是基于不同类型开源项目的大数据观测。

参考文献

贡献者

前端

  • Shengxiang Zhang
  • Feng Zhong
  • Chaoqun Huang
  • Huatian Qin
  • Xingyou Lai

后端

  • Yehui Wang
  • Chenqi Shan
  • Shengbao Li
  • Huatian Qin

评估模型

  • Yehui Wang
  • Liang Wang
  • Chenqi Shan
  • Shengbao Li
  • Matt Germonprez
  • Sean Goggins

Copyright © 2022 开源指南针。保留所有权利。