[博客翻译]非代码贡献:开放源码生态的关键力量


原文地址:https://github.com/readme/featured/open-source-non-code-contributions


数学教师萨拉·雷恩斯伯格在重构合唱团网站时,并未打算成为一名开源贡献者。她只是出于兴趣想学习JavaScript和Web开发。她说:“我并非程序员,但经常发现自己是团队中唯一具备一定技术背景的人。这就是我最初构建合唱团网站的原因。”

1.png

她选择了当时全新的前端框架Astro。尽管其相比成熟框架的学习资源较少,但她认为跟随项目成长是一种良好的学习途径。不久后,她向项目贡献了一小段代码——一个配置文件。随着项目的扩展,雷恩斯伯格愈发深入社区,解答问题并支持新Astro用户。她说:“我不是最了解项目内部运作的人,但我懂得如何解释问题,引导人们学习过程。而且我知道当遇到不知道的问题时该问谁。”

如今,雷恩斯伯格已成为Astro核心维护团队的一员。即便深化了Web开发技能,她仍不专注于代码库。作为文档负责人,她的时间用于帮助他人掌握Astro的各个方面。

当我们谈论开源中的“贡献者”时,我们往往想到编写代码的人,无论是添加功能还是修复bug。但开源项目远不止于代码。正如萨拉·雷恩斯伯格所做的工作,许多工作同样重要。

开放源码社区经理戴恩·福斯特(现VMware开放源码社区策略总监)指出:“成功的开源项目与成功商业产品所需的东西有交集。”这包括文档、本地化、营销、平面设计、测试、社区管理及版本管理。

非代码贡献对于开源的重要性不容忽视。“即使你编写出惊人的程序,如果不解释它做什么和如何使用,没有人会使用它。”云原生计算基金会的开发者倡导者,设计背景的内特·沃丁顿说。简单项目可能只需要一个README,但复杂的项目需要更多文档、教程和支持以使代码变得有用。根据2021年《Octoverse报告》,易于获取的文档可以使开源和企业软件项目的生产力提高约50%。平面设计、品牌推广和外联则有助于展示项目的健康和严肃性,其他项目或公司可能会将其用作依赖项。

虽然非技术人员有很多机会为开源做贡献,但非代码贡献并不一定是非技术性的。某些测试、文档和支助任务可能需要深入了解代码库。随着越来越多的人希望通过开源贡献来提升职业发展,回馈社区或两者兼有,记住这些非代码贡献对开源至关重要,并提供了发展技术和非技术技能的机会。

“即使你编写了出色的程序,如果没有解释它的用途和使用方法,没人会使用它。”

为什么你应该做出非代码贡献

增加特性或修复bug听起来可能比本地化文档、提供支持或记录可复现的bug报告更吸引人,尤其是如果你的目标是将开源贡献作为求职之路。然而,像雷恩斯伯格的经历所示,非代码贡献同样有成就感。

如果你对技术沟通、图形设计、用户体验设计或其他不需要编程的角色感兴趣,开源为你提供了建立作品集的机会。不过,程序员也从磨练非代码技能中受益,特别是在写作和沟通方面。此外,撰写、支持或社区组织的经验可以帮助你转向开发者关系或产品经理等角色。

任何技能水平的人都有机会参与进来。“你不需要计算机科学学位,或者英语学位来编写文档。”沃丁顿说,“即使你的写作能力不强,你也总得从某个地方开始。”

此外,在你彻底理解一个项目之前,很难做出有意义的代码贡献。“功能请求从根本上来说是不同的贡献心态。”Winterbloom创始人西娅·弗劳尔斯在最近与The ReadME Project的贡献者关系问答中表示,“其他贡献就像修补墙壁或重新粉刷栅栏,而功能请求就像在后院建造新的棚屋。你需要真正思考一下。”即使是看似微不足道的bug修复也可能产生重大影响。

“实际编写代码以完成某事只占五分之一的努力。”Litestream维护者本·约翰逊在关于不同贡献程度的文章中说,“后续数年的维护、修复bug、编写文档、制作教程和其他所有事情才是难点。”今年4月,《ReadME Project》在社交媒体上进行的非正式调查中询问维护者如果只能选择一种类型,他们希望得到哪种类型的开源贡献。虽然代码是最受欢迎的答案,获得了62.2%的投票,但超过三分之一的受访者更倾向于文档、设计或测试。

Meta的AI工程师,PyTorch维护者马克·萨鲁菲姆建议阅读你可能想要参与的项目的文档,修复任何过时或错误的部分,作为入门的好起点。开源维护者乔丹·哈班德在问答中解释,新手往往更能发现现有文档的问题或缺少文档的领域,因为他们还不是特定项目的专家。“我写的任何文档不可避免地会被我对它如何工作的已知知识所影响。”他说。

同样,阅读和回应他人的疑问能加深你的理解,结识维护者,了解项目的构建流程。“这让你对项目有了透视般的洞察力。”萨鲁菲姆说。

即使你已经过渡到代码贡献,也有充分的理由继续从事非代码工作。“如果你不想永远从事非代码任务,那就别这样做。”萨鲁菲姆说,“但PyTorch许多最好、最高效的工程师也在支持工作中活跃。”提供支持帮助维护者了解用户在哪里遇到困难,以及用户真正想要和需要哪些功能,从而开发更好的软件。

持续的社区参与是比一次性代码贡献更好地在开源领域建立声誉的方式,而且通常有更多的长期机会通过非编码任务来帮助项目。雷恩斯伯格的经历就是证明。她的Chromebook贡献是有价值的,但让她成为核心贡献者的,是她在社区的积极参与。

“你建立的关系和信任对职业生涯很重要。”福斯特说,“你在社区Slack或Discord中始终乐于助人,或帮助组织社区聚会等活动,你会更加突出。”

提供支持有助于维护者了解用户面临的挑战以及用户真正想要和需要的功能,进而开发出更好的软件。

寻找和欣赏非代码贡献者

非代码贡献的重要性显而易见,那么维护者如何找到愿意帮忙的人呢?理想情况下,贡献者会遵循沃丁顿的建议,主动行动,而不等待别人告诉他们该做什么。但对于维护者来说,如果他们想要贡献,最好的办法就是请人们做具体的事情。“我会在Twitter上搜索,如果看到有人提到文档中缺失或错误的地方,我就问他们是否有兴趣修复。”雷恩斯伯格说,“这是一种简单的方法,可以修复文档并给人们参与的机会。”

弗劳尔斯建议在Discord、Gitter或Slack等聊天平台上建立社区,让人们更容易非正式地参与到项目中。“这让人们提问时感到不那么犹豫。”她说,“很多人在仓库中提问会感到害怕。”此外,项目核心团队之外的人可能更愿意发言。

维护者还应创建问题并标记为“需要帮助”和(适时)“好的第一个问题”。《Octoverse报告》发现,大约25%的问题标记为“需要帮助”的项目比没有这样做的项目多获得13%的贡献者,而40%的问题标记为“好的第一个问题”的项目比没有这样做的项目多获得21%的新贡献者。

项目也可以参加Summer of Code、Hacktoberfest和Season of Docs等计划。Astro在2022年的Hacktoberfest重点放在非代码贡献上。“效果非常好。我们活动很多;帮助这么多人首次向开源提交PR真是太棒了。”雷恩斯伯格说。

但是仅仅寻求帮助还不够。根据项目规模和复杂性,贡献者可能需要额外的入职和指导。导师制度可能是让贡献者取得成功最佳方式。2021年《Octoverse报告》发现,导师制度使开源项目生产力提高了46%,并将拥有健康文化的几率提高了三倍。“有一位专门与新社区成员互动的人,有助于他们克服障碍,保持与项目的参与。”开源健康指标组织CHAOSS的联合创始人乔治·林克在接受《ReadME Project》采访时表示。导师制度耗时且可能使维护者远离其他任务,但从长远来看,这种时间投入通常是值得的。新贡献者可以承担越来越重要的任务,甚至成为导师。

同样关键的是提升和欣赏非代码贡献者。这不仅有助于保持现有贡献者的积极性,也有助于吸引新贡献者。“我们试图给予许多人感受到被重视和公开认可的机会。”雷恩斯伯格说。早期,Astro项目要求成为“核心贡献者”需要“显著的代码贡献”。现在,这一语言已改变,考虑晋升为核心贡献者时也包括非代码贡献。

非代码贡献者也被纳入项目其他形式的认可中,如贡献者可以在GitHub个人资料上显示徽章,以突出他们在项目内的成就。为了确保每个人都得到应有的认可,Astro详细说明了在拉取请求上指定共同作者的方法。此外,每个贡献者的GitHub头像都出现在项目文档的首页。作为一种更具体的奖励,项目每季度一次将Open Collective筹集的资金分配给贡献者。

现在是时候认识到文档、支持和其他非代码贡献在使开源可行中所扮演的角色。无论何时,为最喜欢的项目做出自己的贡献都不晚也不早。你可以无需正式角色就在聊天或问题中回答问题。