写点什么

衡量开源社区的 5 大指标

2016 年 4 月 05 日

若你决定使用一些指标来跟踪一下你的自由/开源软件(FOSS)项目的话,那么最大的问题是:哪些指标是我需要跟踪的?

要回答这个问题,你必须对自己需要什么样的信息有所了解。举个例子来说,你想知道关于项目社区的可持续性。社区是如何快速的响应问题的?社区是如何吸引、留住或流失贡献者的?一旦你明白自己需要什么样的信息,你就可以找出社区的哪些活动能够提供这样的结论。好消息是,FOSS 的项目遵循开放发展的模式,这就是说在它们的软件仓库中留下了公共的数据,这样就可以用来分析有用的数据。

在本文中,作者将介绍能够提供多面视野的衡量开源社区的指标。

活跃度

对于所有的开源社区来说,整体的社区活跃度以及如何随时间而演变都是非常有用的衡量指标。活跃度为我们提供了社区做了多少的第一印象,当然具体来说活跃度也可细分下去。举例来说,提交的次数可以表明开发者们的努力指数;处于打开状态的传票 (ticket)数则可洞晓项目目前有多少 Bug 没有修复或者是新提出了多少特性需求;邮件列表中消息的数量或论坛的帖子数量让我们对所公开讨论的内容心里有个数。

上图所指是项目 OpenStack 的提交数以及代码审核之后的合并数,时间演进(周度数据),数据来源 OpenStack 活跃度面板

规模

社区的规模常常指的是参与到社区的人员的数量,但是,也要取决于参与的类型,规模的大小也可能有所不同。通常我们最为关注的是活跃贡献者,这当然是正确的关注点了。活跃的用户会在项目的代码仓库中留下轨迹的,这也就意味着我们可以统计到哪些撰写代码较多的贡献者,比如 git 仓库的话查看作者一项即可;又如可通过查看谁解决的问题最多来统计参与的活跃度。

活动最为基本的概念(某人做某事)可以有多种延伸。常见的跟踪活动的方法是查看有多少人所做的占了多大的份额。通常为项目的代码贡献,比如,在项目社区中占有很少的份额。了解此占有份额有助于知道核心小组的意见(比如某些人是社区的领导者)。

上图是 Xen 项目的邮件列表的作者数量和发信人的数量图示,时间演进(月度数据),数据来源 Xen 项目开发面板

表现

以上,我们聚焦于衡量活跃度和贡献者的数量。但是我们仍然可以分析社区成员是如何处理问题的,或者是他们的具体表现等。举例来说,我们可以评估下他们处理某个流程需要多长时间,解决或关闭一个传票的时间可以说明此项目对于新的请求活动是如何响应的,诸如修复一个报出的 bug 或者是实现了一个新提出的特性。代码审核时间的长短-从代码变动的时刻到代码被接受为止这段时间-则说明了多长时间的建议变更到社区所制定的质量标准。

其它衡量的如:如何处理项目的应对工作,诸如新的和已经关闭的传票比率,没有完成的代码审核的积压。这些因素告诉我们,所投入的资源是否足够能处理完问题。

关闭的传票和打开的传票的比例,建议接受变更和拒绝变更的比例。数据来之于项目 OpenStack, OpenStack 开发报告,2015 年第三季度

人员流动

贡献者的来来去去就可说明社区的变动。取决于随着时间的推移有多少人参与进来以及多少人离开,即所谓的社区的不同年龄(时间从成员参与到社区就算)。社区年龄图表很形象的讲清楚了随时间的成员变化。图表由一组横向的进度条所组成,一对进度条表示的是“一代”加入到社区人们,对于每一代来说,attracted 进度条表示的是在此时间段内有多少新加入到社区中的人数,retained 进度条表示的是有多少仍然活跃于社区的人数。

每一代的两条进度条的关系就是留存率:就是仍然在项目中的成员的分数。整体的 attracted 进度条展示了项目在过去有多大的魅力,而整体的 retention 进度条展示的是社区当前的年龄结构。

来自 Eclipse 社区的社区年龄图表,数据来源 eclipse 开发者面板,此表每隔半年生成。

多样性

多样性对于一个健壮的社区来说是非常重要的一个因素。一般来讲,一个社区具有更多的多样性--参与的人或公司的一个术语--那么说明这个社区就更加的健壮。举例来说,当一家公司要从一个 FOSS 项目中撤离时,那么就会考虑到它的离去所带来的潜在问题就是其员工所贡献的将会缩水,从 85% 变为 5%。

小马因子,这是由 Gruno 所定义的一个术语,意思是贡献了 50% 的开发者的最少数,以此类推,大象因子表示的就是贡献了 50% 的公司的最少数。此两个数字均提供了社区所依赖的开发者和公司的数量。

云计算领域的一些 FOSS 项目的小马和大象因子。数据来源: 2015 开放云的定量状态(演示文稿)。

对于量化社区还有很多的有用的指标,当决定收集哪些指标时,要明确社区的目标,然后在去寻找哪些指标可以帮助你实现它。

关于作者

Jesus M. Gonzalez-Barahona Bitergia 的联合创始人,Bitergia 是一家针对软件开发的分析公司,特别是对自由/开源软件项目。他同时还在 Rey Juan Carlos 大学(西班牙)进行 http://gsyc.es/~jgb "> 教学和研究,也隶属于 http://libresoft.es/ ">GSyC/LibreSoft 研究小组。他的兴趣包括有学习社区的软件开发,重点在于定量和实证的研究。他还非常乐意和大家分享他尝遍世界各地的咖啡的照片。大家可以关注他的Twitter:@ jbbarah

本文由作者 Jesus M. Gonzalez-Barahona 发表在 Opensource.com 上: Top 5 open source community metrics to track 。经授权,在 InfoQ 中文站翻译共享。本文在 Creative Commons BY-SA 4.0 许可证下发布。


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016 年 4 月 05 日 17:501558
用户头像

发布了 34 篇内容, 共 97724 次阅读, 收获喜欢 12 次。

关注

评论

发布
暂无评论
发现更多内容

01_Eureka源码初探

阿亮

源码 微服务 SpringCloud Eureka

“工业互联网+区块链”融合发展新图景

CECBC区块链专委会

区块链 互联网 信息安全

华为,与山河共舞这支芭蕾

脑极体

Flink 源码 | 自定义 Format 消费 Maxwell CDC 数据

Apache Flink

flink

你觉得Android又凉了?那带你看下2020年Android开发的前景如何?

Geek_211aa0

android 程序员 中年危机 移动开发 前景

从零开始的机器学习:免费在线教科书

计算机与AI

学习

中国消费者独享长达三个月的年终跨境网购狂欢季

爱极客侠

按自己的逻辑,避免千篇一律的呈现品牌官方商城

boshi

产品设计 页面展示 商城

北京自贸区总体方案公布:建设法定数字货币试验区

CECBC区块链专委会

金融 国内宏观

腾讯看点基于 Flink 的实时数仓及多维实时数据分析实践

Apache Flink

flink

Spring Cloud 微服务实践(6) - 资源服务器

xiaoboey

微服务 Spring Cloud OAuth2 JWT 权限控制

话题讨论 | 你的编程能力是如何突飞猛进的?

InfoQ写作平台官方

学习 写作平台 排行榜 代码

有感-人工智能学习

superman

散步罗浮山

空山

游记 旅行

为什么选择敏捷软件开发-考虑敏捷开发的主要优势

小隐乐乐

敏捷开发

第二周-框架设计-学习总结

刘希文

阿里3轮面试都问了RecyclerView

Geek_211aa0

android 面试题 阿里 移动开发 RecyclerView

甲方日常 21

句子

生活 工作 随笔杂谈 日常

Spring Cloud 微服务实践(4) - OAuth2

xiaoboey

微服务 Spring Cloud OAuth2 JWT

区块链行业简报

CECBC区块链专委会

区块链 金融 银行

磨刀不误砍柴工,搞定云网络系统性能测试

毛爷爷

IaaS 云网络 质量保障

Apache Pulsar 社区周报|09-12~09-18

Apache Pulsar

开源 云原生 pulsar Apache Pulsar 消息中间件

Spring Cloud 微服务实践(5) - 认证中心

xiaoboey

微服务 Spring Cloud OAuth2 JWT

机器学习笔记-概念

superman

Mac 系统 VS Code 设置向下复制粘贴当前行快捷键(Ctrl + D)

AlwaysBeta

ide vscode Mac

架构师训练营第 1 期第 2 周作业

好吃不贵

极客大学架构师训练营

架构师训练营第 1 期第 2 周学习总结

好吃不贵

极客大学架构师训练营

提高网站的吞吐量

架构师修行之路

Initialization failed for 'https://start.spring.io' Please check URL, network and proxy settings解决办法

Geek_416be1

机器学习如何推进现代医疗护理服务的变革

Geek_b33b8e

学习 开源 跨平台 行业资讯 医疗方案

学习笔记-人工智能概念(小白)

superman

InfoQ 极客传媒开发者生态共创计划线上发布会

InfoQ 极客传媒开发者生态共创计划线上发布会

衡量开源社区的5大指标-InfoQ