打造一个包容性的开源社区

多元化和包容性对开源社区的未来至关重要。当具有不同视角、经验和技能集的贡献者参与进来时,项目才会发展壮大,同时在技术和经济方面表现得更出色。开源社区力求开放;这意味着他们想要社区中任何想要做出贡献的人都受到欢迎,无论其性别、性别认同、性取向、残疾、种族、民族、年龄、宗教、阶级出身、地域出身、教育背景、政治派别或者经济地位。开源社区可以在其社区中采用最佳实践来促进包容性和多元化。解决这些关键问题需要整个社区的力量。齐心协力,我们可以提高认识,进而解决代表性不足的问题,让所有人从中受益。

该指南概述了为何以及如何构建一个由个人贡献者和项目领导层组成的多元化和包容性的。你将学习如何为项目制定包容性框架;如何设定目标并衡量进展;如何保护您的社区免受不良行为者的侵害;以及获得增加多元化的策略。

多元化和包容性非常重要

多元化和包容性与开源社区的精神相辅相成。开源邀请所有人受益以及参与代码创作。但是开源项目通常不包括多少人,尤其是女性和弱势群体。这与“开放性”不符,并使得开源社区效力降低。研究表明,拥有多元化成员,以及更具有包容性的团队表现得更好,更具创新性,以及产生更具收益的成果。

麦肯锡公司在 2017 年发布的一份报告中发现,执行团队中性别多样性最高的前 25% 的公司比后 25% 的公司,在获得平均水平之上的盈利方面高出 15% 的可能性,而种族和文化多元化高的比那些种族和文化多元化低的公司高出 33% 的可能性表现出色。报告还指出,情况相反的情况也成立:“在这两个指标缺乏多元化都会带来负面影响”。 在性别和种族多样性处于后 25% 的公司“更有可能在盈利能力方面逊色于业内同行”。麦肯锡分析师发现,他们在 2017 年的业绩低于行业平均水平 29%。

证据也表明更高的多元化水平能带来更高的创新水平。“我们想知道拥有鼓励提升和留住多元化员工(在性别、种族和性取向方面)政策的公司,是否在开发创新产品和服务方面也表现得更好?简而言之,答案是肯定的。”“北卡罗州立大学普尔管理学院工商管理系主任、研究报告合著者理查德·沃尔说”。沃尔说,“需要明确的是,我们发现这是一种因果关系,而不仅仅是相关性。”“这一发现还适用于广泛的行业领域。”这些发现与 2004 年密歇根大学的研究成果一致,该研究表明,多元化问题解决者组成的团队的表现要优于由高能力问题解决者组成的团队。

尽管大量证据表明多样性和包容性带来巨大优势,但是女性和其他代表性不足的群体在科技行业的代表性仍然落后。来自美国全国妇女与信息技术中心 (National Center for Women and Information Technology) 的研究表明,女性在 2018 年的计算机行业劳动力中仅占 26%。根据 ComputerScience.org 的一份报告,自 1990 年代以来,从事计算机相关职业的女性比例在稳步下降,在过去 15 年间从 35% 下降到 25%。”然而,女性在整体劳动力中的比例确恰恰相反:女性占当今劳动力的 47%,而 1970 年代为 38%。问题不仅限于招聘人才,还在于留住人才。

开源社区面临的独特挑战

女性在计算机行业劳动力占比较低(根据上述 2018 年的研究,占比为 26%),但在开源社区中,这一数字更令人担忧,女性贡献者仅占大约 10%-11%(根据 Bitergia 的数据)。乍一看,多元化和包容性的文化似乎与开源社区天然契合,但事实并非如此——偏见、刻板印象、欺凌、网络骚扰和领地保护等障碍仍然阻碍着“开放”的真正潜力。“许多受访者表示,驱使他们远离开源项目的原因之一是消极互动,例如粗鲁、辱骂、刻板印象,以及更极端的情况——跟踪和公然骚扰。开源项目以攻击性强而闻名”,领导了 2017 年关于拉取请求接受度中性别偏见研究项目的 GitHub 数据科学家弗兰妮·兹洛特尼克(Frannie Zlotnick)告诉连线杂志。

公司的产品和基础设施严重依赖于开源软件。在 2017 年,Linux 基金会报道在任何技术产品或者服务中使用的软件有超过 80% 是开源的。开源对技术产业是至关重要的,但是开源社区是否健康?开源产业正在寻求评估项目健康和稳定性的方法。例如,Linux 基金会于 2017 年 9 月宣布的 CHAOSS 项目,旨在建立标准且与具体实现无关的指标,来衡量开源社区的整体健康状况。他们关注的核心指标之一是多元化和包容性。他们研究过相关调查,认为多元化和包容性是项目整体健康的重要组成部分。

尽管在开源社区中多元化和包容性的商业价值很强大,但解决挑战并为个人贡献者、维护者和项目领导层建立一个更开放的文化确实困难重重。由于开源社区的创建、管理和长期维护方式独特,因此面临着独特的挑战。

与建立一支员工队伍不同,开源社区并不是通过招聘形式构建的。开源项目仅是向全世界发出邀请。它不挑选手,而是接纳所有人。正是通过这种非结构化和非计划化的方式,社区随着时间的推移而发展。与职场不同,开源社区没有想通的机制建立共享文化。社区成员可能与为竞争对手工作的人一起工作,可能来自不同的文化背景,并且可能有意愿一起合作。开源社区可能缺少领导机制来监管行为和解决冲突。正如威瑞森媒体的开源高级总监吉尔·耶胡达解释的那样,“开源项目往往更看重技术技能,而非领导或者管理技能。当项目出现冲突时,项目领导者们可能不知道如何有效地解决在线冲突”。康卡斯特的开源实践高级总监、Linux 基金会董事会成员尼提亚·拉夫也表示同意,“因此,期望他们成为优秀的领导者是不公平的。在某些情况下,可能需要将他们与知识和最佳实践相结合。在其他情况下,可能意味着需要确保项目既有技术领导,又有能够将这些技能带到项目中的社区领导。我们需要在讨论中提出问题选择,以便让维护者做出正确的选择”。

在开源社区中,互动通常以电子的方式发生,而且通常是英语,通过例如 GitHub 问题上的文本消息、Slack 对话和电子邮件等媒介,或者实在技术交流会上面对面交流。来自少数群体的个人可能面临语言障碍,在使用非母语交流时会感到不安,错过文化相关的惯用语,拥有不可靠的网络连接,缺乏参与开源会议的资源,因此错失了与其他社区成员以相同方式交流和联系的机会。另一方面,已经参与这些社区的人可能没有意识到这种交流包容性问题,甚至会因为使用术语和主观引用而加剧这种不良情况,新成员可能会因为公开要求澄清或者询问具体含义而感到不舒服。

技术领域总体人才比例较低表明人才总体不足,进而限制了新贡献者加入开源社区。人才短缺会缓慢创新,并且家具开源社区之间争夺可用人才的竞争。它也束缚了那些迫切寻求将开源人才加入他们名单的企业贡献者。

根据 Linux 基金会的开源工作报告,“87% 的招聘经理反映很难找到开源人才,将近一半(48%)反映他们的组织已经开始使用代码或者其他资源支持开源项目,其明确目的就是招募拥有这些软件技能的人才。”

如果贡献者和维护者的数量没有保持在健康的水平,开源社区将面临风险,这可能会导致开源倦怠

“我关心的是,我们的很多项目都将面临着资源不足的情况。我们很多人关心的许多项目都只有一个或者两个开发人员,而我们中的很多人正在逐渐老去。”康卡斯特开源实践高级总监、Linux 基金会董事会成员尼提亚·拉夫说道。“随着我们年龄的增长,我担心的是,在我们传播知识或扩大贡献者社区以及维持关键项目的可持续性方面会出现问题,而改变这种现状的唯一方法是敞开大门,开展学徒和导师制,真正的传播知识,教授他人,而不是停留在“啊哈,这只有我能做,我离开后他就会消亡””。但这不仅仅是人才梯队、继任计划以及开源社区的成功。“另一个担忧是,随着越来越多新兴行业参与到转型过程中并开始使用开源,这同样需要扩大开源规模并且欢迎新的行业加入开源,”拉夫表示。“开源需要不断演进、改变和拥抱新的产业和新人,并能够与他们指定和共享文化,而不是停滞不前。”

下面的建议和指南旨在帮助提升开源社区内的多元性和包容性水平,同时认识到每个社区的文化是独一无二的。我们深知这是一段共同前行的旅程,并且始终欢迎更多意见。

总之,开源社区中的挑战包括:

使用数据驱动的方法

正如管理顾问彼得·德鲁克所说:“如果你不能衡量它,你就不能提升它。”指标为我们提供了见解和最佳实践,帮助我们取得成功,以及必要时进行调整。当我们努力提升开源社区的多元化和包容性水平时,数据可以提供帮助指导。

您可能需要在一开始时,确定具体的社区多元性和包容性目标,然后再根据这些目标衡量社区的进展情况。

对于建议和最佳实践,CHAOSS 项目的多元化和包容性工作组(CHAOSS Project’s Diversity & Inclusion Working Group)是一个绝佳的起点,该组深深植根于 Mozilla 研究之上。该工作组旨在汇聚开源社区中一致衡量多元化和包容性的经验,正如在 OpenStack 性别多样性报告所做的那样,并推动最佳实践发展。该工作组已经汇编了多样性和包容性的维度,这些维度可以在七个指标的关键领域中应用,并使用目标-问题-指标方法来指导指标的发展。多元化和多样性关键领域包括:

你还可以从其他开源社区中寻求灵感。

尼提亚·拉夫表示,“TODO 小组的成员们在他们的项目中、开源项目办公室以及他们与社区的互动中,都在以令人惊叹的方式展示着对包容性的支持。”“也许将这些社区的最佳实践进行汇总和整理会是一个不错的方法。一个例子就是设定多元化奖学金赞助。我们中的很多人都在我们的项目中设定了健康的目标,并赞助与多样性相关的活动,因此,这会是一个值得采纳的方法。”

已经存在一些多元化数据报告的优秀样例,你可以以这些样例作为模板来了解需要查和衡量需要哪些数据。你可以从查阅开源多样性数据 列出的样例开始。

当心依赖于“虚荣指标”,它们会让社区看起来比实际更加多元化。虚荣指标通常通过将一个多元化较低的人群与一个多元化较高的人群进行比较来扭曲结果,从而人为地夸大第一个群体的多元化数字。企业领域的例子就是用整个工程部门的人数来衡量多样性,该部门既包含工程师也包含行政助理,而不是仅仅衡量工程师职位的内部多样性。

为避免出现意外的虚荣度量,并且获得真正的进展度量标准,可以参考以下列举在 ProjectInclude.org 网站的指南。

包容性:保留多元化的贡献者

尽管多元化注重于将代表性不足的人群吸纳进社区,包容性则是让人们在社区内感到受欢迎和得到支持。建立包容性的社区是确保所有贡献者能在社区内充分发挥潜力的良好第一步。如果没有包容性的社区,你将面临多元化的贡献者不会长期参与,以及离开你的社区,转而投向那些更欢迎和欣赏他们贡献的其他社区的风险。

可能的解决方案都源于 Node.js 包容性工作组在行为准则中简明扼要地提出的一个目标:“提高包容性意味着让项目成为来自不同背景的人们的安全友好之地。”

使社区变得安全和友好的最成功方法是持续的努力。从一开始就持续不断地努力的方法比偶尔且没有后续跟进的努力更有效果。还需要警惕在最初的热情消退后,承诺的减弱。

无论是开始建设一个包容性的社区,还是改善已有社区,其重要之处在于,其意图必须明显表现出真诚而非勉强和肤浅。虽然目标是建立包容性到成为根深蒂固的规范程度,但这并非偶然。要建立一个所有人都感到安全和开放无处不在的社区,需要付出大量的努力。

这里有一些关于建设和维持包容性的建议:

使贡献变得容易。 对新人来说,一些好的起点包括文献和教程——它们能帮助新人迅速提升能力,并以一种更平滑的方式参与小组。一些明确且较小规模的任务既可以明确项目的需求,又可以扩大参与满足这些需求的人数。这些任务可以标记为“适合初学者的好问题”,以便于发现,同时,经验丰富的社区成员应当准备好保持这些任务开放,同时准备好指导任何尝试它们的人。

承认所有贡献。 尽管代码是任何社区的中心,但并不是唯一必要的任务。Open@ADSK(Autodesk)的总监 盖·马丁 表示:“当你不仅统计代码方面的贡献时,你就可以吸引更多不同观点和意见的人。”“当你计算回答问题、贡献文档、进行对外联络、从事文档的设计和技术写作等工作的次数时,你就能扩大你眼中贡献的范畴。”挑战在于认可那些没有在协作工具(例如代码库、邮件列表、论坛)中记录的贡献,比如社区管理、活动组织、市场营销和对外联络等。

营造包容的文化氛围。 尽管在社区中拥有共同的目标很重要,但是思维上的一致性是创造力和创新性的反面。然而,对于任何人来说,发表观点,提出新想法都可能是令人紧张的。你可以通过以下原则来营造欢迎文化,让新想法和新的思维方式以及做事方法都能被接受,无论他们是资深社区成员还是新手。

欢迎新人。 让社区领导和成员引起重视,在新成员一到就主动与他们联系,表示欢迎。

设定期望。 明确成员们应当如何接待新成员。同时,也要设定期望,让之前因受打击而未积极参与的现有成员能够接受更多的贡献和想法。

**不接受不良行为,发生时要大胆说出。**在社区中,应当禁止欺凌,侮辱,刻板印象、羞辱和其他负面行为。当这些行为是不受欢迎的,人们将不得不更加周到和敏感的方式进行交流。事实上,这只是要求每个人像在其他任何地方一样,表现得有礼貌。以巧妙的方式指出不良行为也将有助于解决问题。

倾听。 接纳始于倾听,问题解决也是。有时误解会发生,尤其是语言和文化差异存在。在任何人对任何事做出回应前,整理这些非常重要。积极倾听也意味着以开放的心态倾听每个人的意见。不要轻易否定想法或投诉,也不要轻易接受借口。要正视问题并且搜寻解决方案。然后再次寻找方法,确保社区其他地方的环境下不会助长此类行为。

**要友善。**当友善成为主流时,即使是社区中的老成员也将感到更加轻松和受到尊重。新成员更是如此。然而,包容性不仅仅是礼貌问题。即使没有提高嗓门或者直接发出威胁,人们仍然可能会受到不公正对待。你可以通过持续强调友善和专业礼仪来应对这一问题。

**制定行为准则并且执行它。**事实上,不良行为确实在开源社区中发生,无论是否故意。情况可能会变得紧张,沟通可能达不到专业标准。在线社区中,轻微的不当行为很容易升级,并且伤害项目的参与者们或者项目本身。行为准则是社区中的一种社会契约,它鼓励良好的行为并阻止不良行为。行为准则有助于解决这些问题,并指出如何解决这些问题。尽管让社区的所有成员接受行为准则并不容易,但如果没有可以执行且确实执行的行为准则,几乎不可能采取措施建立和维护一个健康、多元化和包容性的社区。这里有一个好的模板可供使用,还有一篇精彩的博客描述了一个执行工作流程的例子。

行为准则解决以下几类问题:

威瑞森媒体的开源部门的高级主管吉尔·耶胡达表示:“有些人认为行为准则就是为了淘汰人或者监管在线行为,”。“我认为行为准则更多的是一种提醒所有人保持尊重的方法,即便是在社区压力重重的时候。项目负责人可以在事情演变成争吵之前引用该准则,这总比等着投诉来得更好。”

提前做好升级路径或者工作流程也很明智,这样你就能够为执行行为准则做好准备。此外,明确谁将参与该路径上的决策,将节省时间并减少复杂性。有了升级路径和决策框架到位,问题能够被迅速和一致性的解决,而不会产生破坏性的混乱。吉尔·耶胡达说道:“我们无法阻止骚扰或者虐待行为的发生,但是我们可以强制执行后果并保护社区免于走下坡路。”“预先准备好的工作流程意味着当收到举报时,我们能够快速做出反应。我们会在先线下开展审核流程,并且向社区报告存在问题,并请求不要再社区论坛上讨论这个问题。” Yehuda 解释道。

考虑如何让你的项目更易访问的方法。 在项目中注重国际化。具体而言,采取措施打破语言障碍,这将有助于改善多元化和包容性的贡献。让所有文档、工具以及官方通讯渠道可以让残障人士访问。这对你的社区的影响将类似于打破语言障碍。改善最困难案例的贡献体验也将改善所有人的体验。一些“从小处着手”的建议可能包括:如果你使用 Youtube 发布内容,可以提供文字转录和/或字幕,将文档翻译成多种语言,以及直播你的活动。为了关注这些包容性问题并使其地位正式化,社区可以采取包容性漏洞标记

吸引多元化贡献者

当你准备好将注意力转向为你的开源社区招募多元化贡献者时,以下是一些可供你入门的参考指南。

**1. 设定目标并加以衡量。**如果你想要实现目标,就必须知道自己的目标是什么。明确你的目标,并落实追踪和衡量标准,以便你可以管理你的进展。正如前面提到的,CHAOSS 项目的多元化和包容性工作组可以作为一个有用的资源。

2. 在项目文档中包含多元化的目标。但是不能止步于此。与社区成员沟通目标和行动,并且向他们寻求帮助。

3. 创建一个工作小组来积极主动的扩大项目的吸引力。 这样一个工作小组的优秀的例子是Node.js 包容性工作小组,它“存在是为了提升 Node.js 项目和周边社区的包容性和多元化。”另一额优秀的案例是 OpenStack 多元化工作小组。

4. 为活动设定多元化和包容性目标/倡议。 利用你的关系网络,找到并邀请符合你多元化目标的个人作为你活动的演讲者或者座谈小组成员。招募来自不同背景的顾问,以帮助你以最能吸引难以参加你活动的演讲者的方式进行沟通。从首次发布参与到活动闭幕,都要传达多元化和包容性的期盼。观看克里斯托弗·诺伊格鲍尔、乔希·西蒙斯和山姆·基塔吉马-金布雷尔的30分钟演讲,作为举办以包容性为首的活动的灵感来源。

5. 联系与其他社区管理者分享最佳实践/想法。 规模更大的开源社区也是你的社区。你可以联系其他社区的管理者,学习他们的成功做法,也可以分享自己在多元性和包容性方面的想法和经验

6. 积极主动的扩展你的关系网络。 你可能考虑继续支持现有的倡导工作,或者创建关系网之外的新小组,使来自其他网络的人也可以加入。

7. 要求项目负责人参加多元化的培训。多元化的培训不同于敏感性培训。敏感性培训以认识自己的偏见和他人的敏感性为中心。多元化和包容性训练“注重于为多样化团队提供知识、技能和生产工具来提升业绩和影响最终结果。这种类型的训练时多元化和包容性计划的关键组成部分,”根据 K.帕克斯咨询公司表示。这种类型的训练将更好地装备你探索未来。例如,云原生计算基金会要求所有社区活动演讲者参加包容性演讲者定向培训

其他推荐

有大量的研究和信息可以激发你的想法和指导你进步。而且你并不孤单——许多其他人也在努力改善他们的社区,并且乐于分享和交流想法。此外,你可以参与和支持的已成立的项目数量每天都在增长。这些努力的果实将在很大程度上有益于开源社区,以及你的社区。下面有一些你可能需要考虑的其他项目和步骤:

以上所述都是我至今为止所学到的经验和洞见。毫无疑问,未来还将更多。欢迎你也来分享你的想法、观点、清单和计划。

致谢

我们感谢 Amye Scaravada、Chris Aniszczyk、Daniel Izquierdo、Emma Irwin、Georg Link、Gil Yehuda、Leslie Hawthorn、Matt Germonprez、Nicole Huesman 和 Nithya Ruff 对本指南所做的贡献。