关于衡量开源的几个要点
关于衡量开源的几个要点
一、开源项目社区健康
大方向上盯三个指标:
- 社区大使人数。参考 CNCF 云原生大使的成功
- 回头客(参加了活动后还会再出现)
- 流失与会者的比率(流失:只参加一次活动/预约了但没出现)
活动是特指线下。大使和回访者的数量呈上升趋势,而流失的与会者率呈下降趋势,这是一个健康且以正确方式增长的社区。
https://opensource.com/article/20/3/community-metrics
具体可以盯一些具体指标(CHAOSS):
项目创始人
作为项目创始人,我最关心的是:
- 我的项目对其他人有用吗?:
- 随着时间的推移有多少分叉?
- 指标:存储库分叉。
- 随着时间的推移有多少贡献者?
- 指标:贡献者数量。
- 贡献的净质量。
- 指标:随着时间的推移提交的错误。
- 指标:随时间的回归。
- 我的项目的财务状况。
- 指标:随时间变化的捐款/收入。
- 指标:随时间推移而产生的费用。
- 随着时间的推移有多少分叉?
- 我的项目对其他人的可见度如何?
- 有人知道我的项目吗?别人觉得好看吗?
- 指标:社交媒体提及、分享、喜欢和订阅。
- 有影响力的人知道我的项目吗?
- 指标:贡献者的社会影响力。
- 人们对公共场所的这个项目有什么看法?它是积极的还是消极的?
- 指标:跨社交媒体渠道的情绪(关键字或 NLP)分析。
- 有人知道我的项目吗?别人觉得好看吗?
- 我的项目有多可行?
- 我们有足够的维护者吗?随着时间的推移,这个数字是上升还是下降?
- 指标:维护者的数量。
- 我们有足够的贡献者吗?随着时间的推移,这个数字是上升还是下降?
- 指标:贡献者的数量。
- 速度如何随时间变化?
- 指标:代码随时间变化的百分比。
- 指标:拉取请求、代码审查和合并之间的时间。
- 我们有足够的维护者吗?随着时间的推移,这个数字是上升还是下降?
- 我的项目有多多样化和包容性?
- 我们是否有有效的公开行为准则 (CoC)?
- 指标: CoC 存储库文件检查。
- 与我的项目相关的事件是否具有积极包容性?
- 指标:手动报告活动票务政策和活动包含活动。
- 我们的项目在可访问性方面做得很好吗?
- 指标:验证发布的打字会议纪要。
- 指标:验证会议期间使用的隐藏式字幕。
- 指标:在演示文稿和项目前端设计中验证色盲可访问材料。
- 我们是否有有效的公开行为准则 (CoC)?
- 我的项目代表了多少价值?
- 我如何帮助组织了解使用我们的项目可以节省多少时间和金钱(劳动力投资)
- 指标:问题、提交、拉取请求的回购计数和估计的劳动力率。
- 我如何了解我的项目创造的下游价值量,以及维护我的项目对更广泛的社区有多重要(或不重要)?
- 指标:有多少其他项目依赖我的项目的回购计数。
- 那些为我的项目做出贡献的人有多少机会利用他们在项目上学到的东西来找到好工作以及在哪些组织(也就是生活工资)?
- 指标:使用或贡献于此库的组织数量。
- 指标:从事此类项目的开发人员的平均工资。
- 指标:包含与该项目匹配的关键字的职位发布计数。
- 我如何帮助组织了解使用我们的项目可以节省多少时间和金钱(劳动力投资)
项目维护者
作为项目维护者,我最关心的是:
- 我是一个高效的维护者吗?
- 指标: PR 在代码审查之前的等待时间。
- 指标:代码审查和后续 PR 之间的时间。
- 指标:我的代码审查中有多少是批准?
- 指标:我的代码审查中有多少是拒绝/返工请求?
- 指标:代码审查评论的情绪分析。
- 如何让更多人帮助我维护这个东西?
- 指标:项目贡献者的社会影响力计数。
- 随着时间的推移,我们的代码质量会变好还是变坏?
- 指标:计算随着时间的推移引入了多少回归。
- 指标:计算随着时间的推移引入了多少错误。
- 指标:错误提交、拉取请求、审查、合并和发布之间的时间。
项目开发者和贡献者
作为项目开发者或贡献者,我最关心的是:
- 我可以从参与这个项目中获得什么有价值的东西,需要多长时间才能实现这个价值?
- 指标:下游价值。
- 指标:提交、代码审查和合并之间的时间。
- 通过贡献我所学的知识来增加我的工作机会是否有很好的前景?
- 指标:生活工资。
- 这个项目有多受欢迎?
- 指标:社交媒体帖子、分享和收藏的计数。
- 社区影响者知道我的项目吗?
- 指标:创始人、维护者和贡献者的社会影响力。
https://opensource.com/article/19/8/measure-project
二、开源组织成熟
盯三个关键方向:
- 开源软件政策和许可证合规性:每个组织都应该有一个明确的开源政策,为他们的开发社区提供指导,以审查风险和许可证合规性以使用开源组件。
- 开源资产的管理: 组织应该拥有其所有开源资产的完整资产清单。应该对此进行跟踪和管理,以确保在这些资产上更新最新版本,以避免旧版本的固有问题影响这些应用程序的安全状况。
- 对开源社区计划的贡献: 组织要么与同行合作,要么推动开源社区计划,重点是开发创新解决方案来解决常见的业务问题。这种参与对于推动更新的解决方案和实现对开源计划的企业支持至关重要。协作对于繁荣开源社区计划至关重要。企业在此类社区倡议中可以发挥重要作用。
在这三个方向上将组织的开源成熟度分为 5 级:
- 等级1:缺乏开源政策,专注于临时使用开源软件以满足当前或短期需求。
- 等级2:由于缺乏开源资产清单,并且无法及时对这些资产应用更改,组织面临着较高的安全风险。
- 等级3:为开源软件定义良好的组织策略,确保许可的遵从性,并在持续关注安全的情况下促进开源组件内部的协作。
- 等级4:具备管理所有开源资产的内部能力和能力,促进内部开源协作,并参与外部社区活动,坚持最佳实践以确保开源资产的安全。
- 等级5:组织拥有专业知识和成熟度,可以通过与同行的协作来推动开源社区活动。它有长期的开源战略,并注重通过安全的合作方式进行创新。
https://www.wipro.com/innovation/what-open-source-maturity-model-can-do-for-your-enterprise
三、开源项目社区可持续发展
以 Kong 和 Apache Pulsar 的对比为例,盯两个指标:
- PR审阅者指标
- 社区互动指标
https://opensource.com/article/20/11/open-source-community-sustainability