-
Notifications
You must be signed in to change notification settings - Fork 9
1270.3 Community governance
本文件确立了开源社区治理框架。规定了社区治理的干系人、治理原则、框架与组成要素、成熟度模型和成熟度评估。
本文件适用于指导与规范开源社区发展中的治理与运营需求。
下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文件,仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。
T/CESA 1269-2023 信息技术 开源 术语与综述
T/CESA 1269-2023 界定的以及下列术语和定义适用于本文件。
以开源社区为依托,专注于社区活动体系及其绩效和风险管理的治理规则。
从开源社区视角出发,为实现社区的价值而进行的一系列活动。
下列缩略语适用于本文件。
- OSPO:开源项目办公室(Open Source Program Office)
- TOC:技术监督委员会(Technical Oversight Committee)
- PMC:项目管理委员会(Project Management Committee)
- CLA:贡献者许可协议(Contributor License Agreement)
- DCO:开发者原创证书(Developer Certificate of Origin)
- OSPM:开源成熟度模型(Open Source Program Maturity Model)
- OI:新开议题(Open Issues)
- IC:议题评论(Issue Comments)
- OP:新开合并请求(Open Pull Request)
- PRR:合并请求评审(Pull Request Reviews)
- MP:合并请求被接纳(Merge Pull Request)
开源社区的治理与运营工作基于共识、信任、透明、开放和合作等特点,旨在营造良好的社区氛围并实现社区的价值。此过程中,开源社区的干系人扮演着共同体和主要责任人的角色。见图1。
图中:
- 个体开发者:追求个人兴趣和实现个人价值。
- 商业组织:追求长期价值创造和业务利润,通过贡献获得回报,并推动开源生态的发展。
- 基金会:追求开源生态的健康和可持续发展。
- 政府:在特定地区或领域拥有法定权力,追求公平和繁荣。
- 事业组织:如教育科研机构、行业学会等,追求各自组织的宗旨和使命。
- 国际组织:如国际协会、区域组织等,致力于促进公平、安全和稳定的可持续发展。
- 用户:作为开源项目的使用者,追求长期、可持续和稳定可靠的开源组件。
开源社区的责任人建立社区治理与运营体系,制定文件以实施、持续改进和优化,确保社区治理与运营的有效性和符合性。根据开源社区的核心价值,形成以下原则:
- 开放(Openness):任何社区和项目都应保持代码开放的状态。
- 透明(Transparency):通过提高社区透明度,促进干系人之间信任,并激发积极性和创新性。
- 共识(Consensus):所有问题都应通过社区共识来解决,使社区干系人共同承担责任。
- 平等(Equality):对待社区贡献者及其贡献应当平等对待,平等是社区健康的基础。
- 协作(Collaboration):通过合作实现社区目标,并鼓励开放式的协作。
- 无歧视(Non-Discrimination):反对因地域、种族、政治立场等原因对社区贡献者进行歧视,阻止其参与社区贡献。
开源社区的治理与运营框架包括政策法规、社区机制与架构、社区治理流程、社区运营流程、社区基础设施以及社区评估。
商业组织作为开源社区的参与主体之一,通过建立开源项目办公室(OSPO)等机构与开源社区建立联系。基金会作为另一个重要的参与主体,通过技术监督委员会(TOC)、项目管理委员会(PMC)等机构进行连接,充当开源项目的中立载体,并在其价值生命周期中提供各种支持。
开源社区作为一个自由开放的组织群体,在合法合规的前提下,通过社区共识的方式进行运作。开源社区治理与运营的基础事项见附录 A。
社区治理与运营活动应符合国家政策、法律条款和行业规范等要求。这也包括社区所拥有的行为准则,所有参与方都应遵守并履行这些准则。
社区机制和组织架构确保社区中的不同角色能够发挥各自的作用和职责,并相互协作以保持社区的健康和持续运行。
社区机制包括成员管理、组织架构、社区制度、流程规范、指标管理以及文档模板等事务。
社区架构涵盖了三个核心角色:开发者角色、运营者角色和组织者角色。
- 开发者角色根据参与程度的不同可分为使用者、贡献者和维护者等,形成了一个开发者的成长路径。
- 运营者角色包括社区经理、社区志愿者等。
- 组织者角色是社区议事规则的制定者、决策者和审核者,他们组成了社区的最高决策机构。
开源社区的治理流程涵盖项目治理、人文治理和风险治理等方面。
- 项目治理提供了法律保障,涉及开源项目的许可模式、知识产权保护等事项。制定项目的治理流程和合规规范是确保项目健康发展的基础。
- 人文治理从人文的角度保障社区的稳定性和健康性。社区文化、社区领导力等因素是维护社区可持续发展的基石。
- 风险治理从开源社区的内外部风险角度考虑,为社区提供风险控制的机制。
这些治理流程共同确保社区的有效运作、参与者的权益保护,并为社区的可持续发展提供支持。
开源社区是一个分布式组织架构,通过开放式协作的模式进行项目开发和运营。社区的运营流程包括以下方面:
- 项目开发管理:包括确定开发目标、架构设计、功能定义和开发计划等工作。它定义了代码发布和维护的具体流程,以及持续集成和持续开发的规则等。
- 社区运营管理:以开发者为中心进行管理,旨在吸引新的开发者,激励他们做出贡献,并帮助他们成长。这包括内容运营、活动运营、品牌运营和文化建设等方面。对于一些进入开源基金会进行孵化的项目,还涉及基金会项目管理,包括从开源项目孵化到毕业的整个过程。
这些运营流程旨在促进社区的活跃度、吸引更多的参与者,并确保项目的持续发展和健康运行。
社区基础设施是指支持开源社区运作和项目开发的各种工具和平台。这些基础设施的例子包括但不限于:代码托管平台、门户网站、开发门禁、开发流水线、发布平台、安全工具、会议系统、邮件列表、知识管理工具、通讯工具、扫描工具、CLA 工具、DCO 工具、度量统计与分析工具等。这些基础设施的使用可以提高社区的协作效率、代码质量和安全性,促进社区成员的参与和贡献。
社区治理与运营的成效可以通过开源成熟度模型(Open Source Program Maturity Model,OSPM)进行定性或定量的评估,以衡量开源社区的健康发展程度,并为管理者和运营者提供参考和指导。
OSPM 是一种评估和衡量开源社区成熟度和可持续性的框架。它可以帮助管理者和运营者了解社区在不同方面的表现,并制定相应的策略和计划来促进社区的健康发展。
开源社区的成熟度可以通过一个五层模型来描述,代表着五个发展阶段。这个模型描绘了一个社区向上成长发展的过程,不同阶段社区所关注的重点事项和行动不同。
图中:
- 初始阶段(社区共识):社区成员建立共同的价值观和目标,明确社区使命和愿景。社区成员关注项目的基本架构和功能的开发,通过讨论和协作,以促进共识的形成。
- 发展阶段(社区信赖):社区吸引更多贡献者和用户,建立开放和透明的协作模式。社区成员关注代码质量和文档完善,确保社区的可靠性和可信度。
- 成熟阶段(社区归属):社区拥有稳定的开发和贡献生态系统,成员形成归属感。社区成员形成对社区的归属感,并积极参与社区活动和决策,同时注重社区治理和社区的品牌建设。
- 高级阶段(社区连接):社区与其他开源社区和组织建立联系和合作。社区成员注重更加成熟和专业化的社区治理和运营,并主动与其他社区形成合作互利的关系,共同推动开源生态发展。
- 卓越阶段(社区引领):社区成为业界领导者,具有广泛影响力。社区成员注重可持续性、领导力和影响力的持续增长。
通过本模型,社区管理者和运营者可以更好理解社区的发展阶段和关注事项,从而制定相应的策略和计划促进社区成长,同时社区成员也能够通过本模型了解其在社区中的角色和贡献的重点。
开源社区的成熟度评估体系包括三个方面:评估等级、达成要求、以及评价指标,如下表所示。
评估等级由低到高分为健康、成熟和卓越三个层次,其中:
- 健康等级:要求社区达到社区共识和社区信赖的状态,可以通过评价指标如活跃度、质量和风险等来进行评估。
- 成熟等级:要求社区达到社区归属和社区连接的状态,可以进一步通过评价指标如效能和影响力等来进行评估。
- 卓越等级:要求社区达到社区引领的状态,可以进一步通过价值网络等评价指标进行评估。
评估体系能够帮助社区管理者和运营者全面了解社区的成熟度,并制定相应的策略和计划,以推动社区向更高的成熟度水平发展。同时,评价指标也能够为社区成员提供明确的目标和方向,帮助他们更好地理解自己在社区中的角色和贡献的重点。
评价指标能够提供量化的评估结果、指导决策、定义目标和监控进展,从而促进社区的发展与成熟:
- 活跃度(A):衡量社区成员的参与程度和活动频率。活跃度评估了社区的活跃程度、讨论参与度以及贡献者的数量和质量。
- 质量(Q):评估社区中项目、代码和文档的质量水平。质量指标关注软件的稳定性、安全性以及代码和文档的可读性、可维护性。
- 风险(R):评估社区面临的潜在风险和挑战。风险指标考虑社区的法律合规性、安全漏洞、社区治理和社区成员之间的冲突等因素。
- 效能(P):衡量社区开发和协作的效率和成果。效能指标关注社区成员之间的协作效率、开发速度、问题解决能力以及项目的发布频率。
- 影响力(I):评估社区在行业和社会中的影响力和知名度。影响力指标考虑社区项目的用户数、社区的声誉、参与的合作伙伴以及在行业中的地位。
- 价值网络(V):评估社区与其他社区和组织之间的合作和互动。价值网络指标关注社区与其他开源社区、商业伙伴和用户之间的合作关系、互利共赢的价值交换。
根据评估体系,给出几种典型的评估方法,包括:
- 事项清单法:通过工具或专业人员对事项清单中列出的事项进行定性或定量评估;
- 专家调研法:通过与专家进行深入调研和访谈的方式进行评估;
- 数据评价法:通过数据测量和分析的方式进行评估;
- 标杆社区法:通过建立具有参考价值的标杆社区集合,作为对比和参照的依据。
本章旨在规范基于代码托管平台的数据评价法及指标实现。代码托管平台作为开源社区的主要场所之一,在全球范围内已经成为主流选择。本章的实施对象为基于 Git 类型的代码托管平台。
关注开源社区的五类主要活动,并为其制定相应的评价指标和方法,以确保评价的准确性和一致性。这五类活动包括:
- OI:涉及新任务的创建,用于日常开发事务的展开。
- IC:在特定任务中进行日常讨论和交流。
- OP:提出将新代码合并到代码仓库的请求。
- PRR:对代码合并过程进行评审和讨论。
- MP:将代码最终合并到代码仓库中。
根据对开源社区活动类型和活动主体关系的分析,设计并实现了三种评价指标:活跃度指标、影响力指标和价值网络指标。
活跃度指标用于评估开源社区的整体活动强度,衡量开发者参与的频度,并从宏观上描述社区的健康情况,进而评价开源社区的成熟度。该指标在评估体系的健康等级(H)中起到关键作用。
活跃度指标通过加权求和的方式,根据某一时间段内五类事项的数量进行计算,从而对开源社区的活动进行量化。具体计算公式如下:
S = a*OI + b*IC + c*OP + d*PRR + e*MP
式中:S —— 社区活跃度指标计算结果;a、b、c、d、e —— 每类事项的权重,可由用户通过专家共识或技术手段确定。具体计算示例见附录 B。
影响力指标是活跃度指标的延伸,综合考虑活动情况和开发者与项目之间的差异性和网络特征,更全面准确地评估开源社区的成熟度。该指标在评估体系的卓越等级(E)中起到关键作用。
影响力指标利用五类事项的全部信息,在某一时间段内构建开发者协作关系网络,从而得到包含开源全域开发者和项目开源社区协作关系的网络。通过图算法分析该网络,可以计算出开发者参与开源项目的协作影响力结果。具体计算示例见附录 C。
价值网络指标是对影响力指标的进一步扩展和细化。它考虑了不同开发者在不同协作单元中的协作关系,帮助项目了解社区开发者的贡献价值和贡献分布情况,对社区的治理、运营和激励具有重要的指导价值。该指标在评估体系的引领等级(L)中起到关键作用。
价值网络指标利用开发者在不同协作单元中的活动,在某一时间段内构建开发者协作关系网络,并得到包含开发者、项目、任务和合并请求的社区协作价值网络。通过图算法分析该协作价值网络,可以计算出开发者参与开源项目贡献的价值,并累加得出整个开源社区的价值。具体计算示例见附录 D。
开源社区的治理与运营基础事项是指在特定的治理与运营目标下,解决特定问题或主题的行动事项。本附录列举了六个主要领域下的十三类基础事项。不同类型的开源社区可以根据其具体目标进行有针对性的选择和组合使用,见下表。
活跃度指标计算具体权重和计分规则示例见下表。其中木兰开源社区在孵化项目 OpenDigger 采用此活跃度计算方法,即 Activity 指标。该指标可以根据需求进行自定义调节,或使用技术方法(如层次分析法)来确定每个事项的权重。
在全域开源协作网络中,可以构建一个异质协作网络,其中以项目和开发者为节点,以活动频度为边。通过对该异质协作网络进行降维(将开发者与项目合并为社区),然后利用图分析算法(如加权 PageRank 算法)来分析整个协作网络,可以得到每个开源社区的全域影响力排名和影响力值,后者即为影响力指标的计算结果。
木兰开源社区在孵化项目 OpenDigger 采用此影响力指标计算方式,即全域 OpenRank 指标(Global OpenRank,GOR)。在该指标中,所有参数都可以根据需求进行自定义调节。
构建价值网络即当多个贡献者同时在开源项目的同一个协作单元(例如Issue、PR等)中活跃时,这些贡献者之间存在协作关联。
在某个开源社区的价值网络中,以开发者和项目协作单元为节点,以活动频度为边,构建社区内部价值网络,见下图。通过应用图分析算法(例如加权PageRank算法)分析该社区内部的价值网络,可得到该社区开发者和协作单元的价值排名和价值数值。该社区的所有价值单元的价值数值相加,为价值网络指标的计算结果。为了使价值网络指标的结果符合社区的实际价值,可以加入更多的关联数据,例如项目之间的依赖关系和开发者之间的社交关系等。
木兰开源社区在孵化项目 OpenDigger 采用了此价值网络计算规则,即社区 OpenRank 指标(Community OpenRank,COR)。在该指标中,所有的参数都可以根据需求进行自定义调节。