正值开源吞噬世界的当下,据 GitHub 2021 年度报告显示,目前 GitHub 用户数已超 7300 万,越来越多的开发者参与开源,积极与社区里全球开发者共同学习和创造。
开源社区作为资源集聚的平台,全球开发者与使用者、合作伙伴在这进行思想碰撞、技术建设,还承担开源项目孵化、商业运作等职能,在推动开源软件发展的过程中起着巨大的作用。
尽管开源社区可称为“开放源代码社区”,但如果仅仅只是开放源码,忽视开源社区建设,将引发众多不良后果:没有充足的贡献者与维护者来支撑项目发展;用户需要的服务支持力度与日俱增;没有成熟的商业模式,缺乏行业认可与持续投资;开源社区贡献门槛过高;没有完善的项目文档、贡献者引导指南与培训认证等支持……
长此以往,如大树失去养分,整个开源社区将会失去生命力,更无需谈开源项目的持续发展。因此丰富开源社区的多样性和包容性,需要我们积极从开发者的需求出发来运营社区,让其快速成长。
在具体运营的社区的过程中,有哪些维度的指标可以作为参考标准?有哪些举措可以不断激发社区生命力?
衡量开源社区健康度,CHAOSS 有妙招
为推动社区健康度的建设工作,CHAOSS 应运而生。CHAOSS是专注于开源社区度量标准与软件开发的开源项目,分了不同的工作组来完善社区的相关指标,帮助大家更好地衡量和管理社区,具体从以下几大方面入手:
通用指标:定义多个工作组使用的指标或对社区健康关键的指标。
多样性、平等性、包容性:多样性、公平和包容性是开源社区健康的核心,该工作组旨在定义指标和方法,来帮助他人衡量和集中多样性、公平性和包容性,并将其纳入自己的开源项目。
Evolution 指标:目标是制定指标来评估开源项目的生命周期。
风险评估:关注与开源风险相关问题的指标。
价值:制定指标,推进大家理解和衡量开源项目的价值,提高社区的影响和透明度。
度量软件平台:提供基于CHAOSS指标的度量软件平台,评估社区健康度
今年 10 月 CHAOSS 发布最新的度量指标,在近百个指标中,有从委员会/理事会多元化、导师制等宏观方面来衡量社区的健康度,还有从微观角度,如开发者 clone 代码、fork、议题解决等方面来衡量开发者的参与度。
指标传送门:https://chaoss.community/wp-content/uploads/2021/10/Chinese-Release-2021-10-21.pdf
建设社区生命力:点滴积累,聚木成林
据红帽公司的调查报告显示,有 95% 的企业 IT 领导者认为开源软件“具有重要的战略意义”。
尽管如此,在具体建设社区生命力并非一朝一夕的事,中国信通院云计算与大数据研究所云计算部副主任郭雪表示,需规范社区治理、社区运营、社区开发、基础设施这四方面相关指标,方能助力社区生态发展。
在社区治理上,需规范好行为准则、贡献者协议、贡献者类型等成员管理;做好用户文档、开发者指南、变更日志等文档管理;建立项目管理、代码审查、法律合规审查、安全管理等组织结构;制定决策机制、投票机制、反馈机制、辅导机制、发布机制等流程规范。
在社区运营上,进行活动分级、多样化门票设置等会议活动;积极开展外部合作;开展培训认证,以降低开发者门槛、利益驱动为目标,构建良好开发者生态;关注用户生态发展,拓展用户最佳实践,提高产品易用性、降低使用门槛;进行社区活跃度监测。
在社区开发上,做好开源软件选型、依赖软件使用、开源软件维护(漏洞修复)等依赖管理;建立合入管理、编码管理等编码规范;做好构建环境、构建执行过程、构建结果、构建数据源等构建管理;漏洞修复方案管理、漏洞感知、漏洞可追溯、漏洞验证等漏洞管理;还有分支版本与工作流管理等需求管理。
在基础设施上,关注网站、代码仓库、构建平台、发布平台、开源代码扫描工具、CLA签署工具、测试平台等的运行。
在实际落地中,有哪些注意点呢?对此,拥有近 10 年开源社区建设经验,CHAOSS 社区董事会成员王晔晖老师分享了他的洞察:
Q:什么是社区生命力?
王晔晖:社区生命力可以从生态角度出发,构建一个社区,就是构建一个生态,生态可以是亚马逊雨林生态,也可以是沙漠生态。一个健康的生态是一个可持续发展的有活力的生态,面临内外干扰后,可以通过自我调节恢复。所以为了保证社区的持续活力,需要构建一整套生态治理架构,建立规则,确保一切有序演进。
Q:活跃的社区生命力给开发者带来哪些帮助?
王晔晖:要根据开发者背后的贡献属性(CHAOSS contribution attribution)来看待,他代表个人开发者,还是代表组织、公司来参与贡献。个人而言,是构建个人开源社交明信片的过程,对于代表公司而言,不仅是个人明信片,公司的参与一定带有商业目的的。
Q:如何评判开源圈提出的众多度量指标的差异?
王晔晖:大致可分为以下四种维度进行对比:
一、定性指标 VS 量化指标:
定性指标:吸纳主观因素,非结构化,经验性,难以归类,如开发者满意度。
量化指标:提供可靠的量化结果,排斥主观因素,缺乏直观的洞察,如 issue的首次响应时间。
目前存在过度依赖量化指标的情况,另外假如调查方通过激励等手段来收集问卷,可能存在利益导向,这将导致用户对定性指标的质量不信任。
二、虚荣指标 VS 可付诸实践指标:
虚荣指标:点击量、页面浏览量、访问量、独立访客数、Star 数、网站停留时间、用户邮件地址数量、下载量。
可付诸实践指标:有比较性的、简单易懂的、有比率的,如开发者留存率。
虚荣指标有个共性特点:只会单向递增,不会下降。从另一方面来看,这些指标由于简单易懂,方便宣传提升知名度。但是假如将它作为社区的北极星指标,可能存在较大的误导性,将有可能造成社区运营南辕北辙。
三、探索性(先见性)指标 VS 报告性(后见性)指标:
探索性(先见性)指标:推测性,用于预见未来,如下一个月开发者流失率预测。
报告性(后见性)指标:解释过去,如上一个月开发者流失率。
当前基本为报告性指标,而缺少探索性指标,前者只能用于解释过去,无法直接指导社区后续改进措施,例如无法使用大数据的方式进行数据分析。目前华为正在通过大数据方式引入机器学习和深度学习,建立探索性指标度量模型。
四、相关性指标 VS 因果性指标:
当前现状指标与指标间割裂,缺乏相关性探索,和因果性分析可以通过建立度量模型,分析模型内指标间的相关性或因果性关系。通过分析结果,可指导社区从哪些方面着手,如开发者留存率与社区活跃度、开发者多样性之间的相关性和因果性关系等,未来在这些方面将是华为社区度量探索的重点方向。
Q:在具体实践中,我们如何激活社区生命力以提升开发者体验?是否有应用到一些前沿技术?
王晔晖:以华为为例,通过在社区度量模型建立反馈机制,及时了解开发者的反馈,便于精进和改善社区治理机制;利用前沿 AI 技术来辅助社区的运营,通过对基础设施的技术优化和智能化来提升用户体验;引入开发工具链外溢机制,将华为技术优秀的编码规范机制、研发流程、技术工具等外溢到社区里。华为联合合作伙伴组建社区治理委员会和技术委员会,凝心聚力督进社区建设,源源不断为社区注入活力。
另外,在大力发展华为开源社区之余,华为与 CHAOSS 社区共享开源治理、社区运营、基础设施经验,共同探讨开源项目和社区的度量标准。华为通过十多年在开源的点滴积累,不断促进中国以及全球开源产业的发展,实践聚木成林愿景。
持续激发社区活力:凝心聚力
树木要想茁壮繁茂,森林要想葱郁成林,离不开整个生态环境的发展。激发社区生命力,不能仅靠某一家企业突飞猛进式的努力,只有产业各方基于开源协作的创新模式推动产业生态构建,共建多样性、包容性的开源生态。华为推出“开源雨林”计划、高校人才培育等计划,携手合作伙伴、高校、社区等共同推动我国和全球开源业态的发展。
为了让中国从开源使用大国发展为贡献大国,持续建设有生命力的开源社区,华为希望凝心聚力与所有相关方一起团结合作,只争朝夕、不负韶华,致力打造中国基础软件根社区,做中国和全球技术进步的创新推动者,加速行业数字化进程。