构建入门体验#

贡献者是任何开源项目的命脉所在。一个不持续接纳新参与者的项目,可能会陷入停滞——甚至更糟,走向分崩离析。

因此,任何希望实现长期可持续发展的开源项目,都应认真考虑如何与新人建立联系、表示欢迎并使其融入——简言之,如何做好"新人引导"。精心设计的引导流程能让参与者更轻松地为项目贡献力量,并使贡献者能尽快对项目产生积极影响。

本章我们将探讨社区新人引导体验的重要性,并研究一些常见的引导资源和实践方法,这些都可能帮助你的项目更具可持续性。

论新人引导体验的重要性#

在许多方面,加入新开源社区的体验与开始一份新工作非常相似。

例如,当你开始一个新职位(或加入一个全新组织)时,你需要熟悉新同事、新工具、新流程、新规范、新规定等等。你往往会迫切希望快速完成这些适应过程,因为你渴望向组织证明自己的价值,并在这个新环境中感到自在,从而发挥最佳工作状态。你越早感受到自己正在产生影响,就越可能长期留在这个社区,同时也会获得更高的满意度。

但你也可能加入一个拥有深厚历史的团队——这里存在着共同的规范习俗、内部笑话、专业术语、心照不宣的约定、紧密纽带以及集体认同感。简而言之,你的新团队或组织在你加入前就已形成独特的文化。这种文化虽然大多是无形的,但会深刻影响你与他人的协作能力。有效的入门引导能帮助你理解这种文化。

开源社区的入门体验同样面临这些挑战。具体而言,开源社区的入门存在以下难点:

异步远程的工作环境 传统办公环境的最大优势在于,你能与同事和管理者面对面交流,随时快速请教问题。而加入新的开源社区时,你往往需要与身处不同地域、时区的成员协作。因此,除非社区提供完善的入门材料——包括文档、视频教程、维基页面等资源——否则即便是经验丰富的自主学习者,在开源社区起步也会面临更大挑战。

冒充者综合征 当难以获得实时帮助或反馈时,人们很容易因简单的工具问题而陷入困境,并对自己的工作失去信心。因此,开源社区中良好的入门体验对于新成员至关重要,能避免他们在社区初期就感到气馁。

显著差异性 每个开源社区都独一无二。即便是经验丰富的开源贡献者,加入新社区时也需要熟悉新的工具、流程甚至术语。在不同社区中,看似简单的词汇如"贡献"、"社区成员"、"项目"、"上游"等可能具有细微差异,极易引发新成员的困惑。

入门基础#

在优化项目入门流程与体验时,请思考以下问题:

  • 参与者能为项目做出哪些贡献?

  • 参与者应在何处为项目做贡献?

  • 参与者如何为项目做贡献?

回答关于项目入门流程的第一个问题需要做大量工作。潜在贡献者需要了解自己能提供哪些最有价值的贡献。许多项目在源代码库中设置了"首次贡献者"之类的标签,这是引导新人为项目解决问题和漏洞的绝佳方式,同时也能帮助新人熟悉项目的原始资料。

第二个问题——"在哪里贡献"——出人意料的是,项目组提出这个问题的频率并不高。项目老手可能会轻描淡写地说:"论坛上都有"或"详情看维基"。但这些资料具体存放在哪个代码库?属于哪个组织?那些名称相似的其他项目又该如何区分?请确保项目网站上清晰地展示新人可以产生影响的具体链接。这些链接也不应被深藏,最好能直接显示在主页上。

第三个问题是“如何贡献”。很多时候,项目方发布了源代码,顶多让其易于被发现……然后就止步于此。你可能听别人把这种做法称为“抛过墙”(throw it over the wall),而这可不是什么好话。太多项目将代码或内容推送到公共空间,宣称向所有人开放,随后却纳闷贡献者都去哪儿了。这可能是因为确实存在准入门槛——缺乏如何向项目贡献的文档和流程说明。

接下来,我们将探讨你的项目可以用来消除这些障碍、简化入门流程的一些资源和实践方法。

入门资源#

在异步协作环境中取得成功的关键工具(与实践)是优质的文档。由于贡献者通常无法随时获得社区成员的即时指导,因此必须将重要的社区规范、决策和流程以比传统工作环境更为详尽的方式记录下来。无论是着陆页、项目文档还是维基页面,一套完善的参考资料对新成员熟悉社区并快速入门至关重要。同时需确保入门文档保持更新,实时反映社区活动的最新动态,因此应简化内容更新流程,便于任何人参与维护。易用的文档工具固然有助于此,但更重要的是培养一种社区文化,让每位成员都深刻理解可靠且持续更新的文档的必要性。。

这听起来或许显而易见,但新人融入的另一关键资源是社区其他成员。即便大家不在同一办公室工作,让新成员能接触到经验丰富的社区成员来答疑解惑,也能有效缓解初期可能产生的孤立感。对于规模较小、相对新兴的社区,简单的"迎新伙伴"制度——比如安排欢迎电话沟通——可能就已足够。而在规模更大、更成熟的社区中,人们可能会看到专门负责新人引导的工作组,甚至设有教练或指导者等正式头衔的社区成员。

当人员配备到位后,这些信息(特别是关于联系谁寻求帮助的内容)需要发布在多个地方,让人们感到可以放心联系他们的入职资源,并受到鼓励提出问题。如果获得帮助很困难,新人会感到气馁,不愿参与社区活动,甚至可能认为这个社区终究不适合他们。

无论是入职伙伴、指导者还是工作组,都需要确保志愿者队伍足够庞大,以免他们在引导新人时感到力不从心——这在社区发展壮大时尤为重要。关键在于营造一种社区文化,让每位成员都意识到自己有责任欢迎新成员。理想状态下,我们希望看到许多人主动伸出援手,无论他们是否拥有教练或指导者的正式头衔。若设立正式的新人引导工作组或指导者计划,不应为社区成员设置过高门槛。最重要的资质应当是助人之心,而非社区资历或技术专长等次要因素。引导者无需通晓所有答案,他们的核心价值在于帮助新人更快找到解决方案,并确保新人不会孤立无援。

入门实践#

当人们加入一个新社区时,他们可能会发现跟进通讯渠道(如邮件列表或 Slack)上的讨论令人应接不暇。为缓解他们的困惑或压力,可以考虑在这些渠道中专门开辟供新成员使用的空间,帮助他们顺利起步和适应。例如,"新手入门"或"自我介绍"等专属频道,能让新成员安心提出初级问题。这些频道也让经验丰富的社区成员能通过解答新人问题或简单给予鼓励来协助引导工作。所有这些举措都能大大帮助新成员在起步阶段感受到欢迎的氛围。

当新社区成员适应环境并感到足够自在,准备开始为开源项目做贡献时,他们接下来会问:"我可以在哪里贡献?"

因此,为帮助新人快速入门,你可以整理一份适合新成员处理的工作清单。许多社区会在问题追踪系统中为任务标注"适合首次贡献者"、"新手友好"或"需要帮助"等标签,让新人能轻松识别可立即参与的任务。这类标注的任务可能涉及文档纠错、简单漏洞修复等基础工作,帮助新贡献者获得早期成就感,从而建立信心。在这些任务中指定联系人(担任指导者或指导者角色)以便提供起步协助也很有裨益。请始终谨记:对资深成员看似简单的任务,对新晋者而言未必容易。

许多开源社区会组织旨在连接成员的活动。无论是线下聚会还是线上会议,这些活动都为社区成员提供了绝佳的同步协作机会——并在此过程中增进彼此了解。活动形式可以是峰会、黑客马拉松、用户大会等。在这些场合中,建议专门为新成员设计特别议程或开辟专属空间。若预算允许,可安排正式的迎新环节作为"零日"活动;或举办午餐交流会,让新成员结识其他社区伙伴,便于后续咨询请教。

贡献者成长路径#

当新贡献者为你的项目完成初次贡献后,他们会开始寻求产生更大影响的途径。为此,他们通常会寻找能将自身特定技能与才华应用于项目的方法。

志愿者将其独特才能贡献给开源项目的机会被称为该项目的"贡献者路径"。项目中设置的贡献者路径越多,就越有可能招募到具备项目成功所需各类技能的参与者。

你的项目可能包含多种特定的贡献者路径,但这些路径通常可分为两大类:以社区导向的路径和技术导向的路径。

社区导向的贡献路径为参与者提供了无需专业技术知识即可参与的机遇。这些路径专注于帮助新成员完成项目文档编写、提升项目知名度与推广、策划社区会议及活动等工作——这些都是项目最终取得成功至关重要的环节。具体示例如下:

  1. 记录工作流程与治理流程

  2. 新成员入职与指导

  3. 将内容本地化为多种语言

  4. 文案撰写(适用于网站、新闻通讯、博客)

  5. 管理社交媒体

  6. 组织活动

另一方面,技术导向的贡献者路径,指的是那些需要软件开发专业知识(通常涉及特定计算机语言)的贡献类型。这类路径主要致力于完善和优化社区维护的软件体系。具体示例如下:

  1. 新增功能与文档

  2. 修复现有漏洞并分类处理问题

  3. 重构现有工作以提升质量

  4. 实施质量保证

  5. 优化用户界面与用户体验

  6. 发布项目

  7. 制定和维护项目路线图

  8. 代码和用户界面本地化

在评估项目的贡献者参与路径时,请自问:你的项目目前是否为新(及现有)贡献者提供了在这些领域做出有价值贡献(甚至主导工作)的机会?若尚未完善,一个通用的项目扩展方法是:通过协同努力将这些贡献路径规范化、精细化、文档化并进行宣传推广。

我们将这些称为"成长路径",因为它们能让参与者逐步加深对社区的投入,既不会感到无所适从,又能在参与过程中逐渐适应项目的流程与文化。理想情况下,随着社区发展成熟,这些路径会循序渐进地赋予贡献者更多责任与权限。以活动相关的贡献路径为例,新贡献者通常不会一开始就独自负责社区年度旗舰活动,而是会与资深成员合作策划,逐步承担场地筹备、宣传推广、报名管理等具体工作。

资源:开源社区的入职示例#

  1. OpenStack上游学院

  2. Kubernetes贡献者体验特别兴趣小组

  3. GitLab合并请求教练