10 个技巧助你引导开源贡献者

让新的贡献者在你的社区中感到受欢迎对于你项目的未来至关重要,因此投入时间和精力来引导他们非常重要。
98 位读者喜欢这篇文章。
women programming

WOCinTech Chat。Opensource.com 修改。CC BY-SA 4.0

贡献者是许多开源项目的生命线,因为他们使较小的项目能够在没有大量资金支持的情况下成长和改进,并且他们为项目带来了新的视角。 Ushahidi 就是这种情况,这是一个非营利组织,致力于构建和使用软件来帮助提高服务欠缺的边缘化社区的声音。 我们的产品使当地观察员能够使用他们的手机或互联网提交有关当地人道主义危机(例如政治动荡和自然灾害)的报告,同时创建事件的时间和地理空间档案。

Ushahidi 始终力求开放,但 **从内部评估你的组织运作有多开放非常困难**。 员工和长期贡献者知道得太多了:他们受困于知识和访问那些了解事物运作方式的人。 虽然危机激发了想要帮助的人们的善良,但在危机期间参与开源项目是很复杂的。 维护者通常正经历一段压力很大的时期。 每天都有新的功能请求涌入。 新的错误不断被报告。

永远没有足够的人来修复所有问题,这就是为什么项目拥有一个良好的流程来引导新的贡献者如此重要。

为什么 Ushahidi 需要重新与社区互动

最初,Ushahidi 拥有一个非常庞大的社区,并进行了大量的社区互动。 我们有社区开发电话会议,核心开发人员和社区开发人员在会上讨论他们正在进行的工作。 我们有 T 恤和赠品; 我们有社区徽章和博客文章来庆祝本月最佳贡献者。 我们赞助技术活动,并确保有一个展位或演示来展示该平台。

我们的文档编写良好且内容广泛,包含针对不同用例的工具包和示例,我们的论坛活跃,我们也很活跃!

但后来发生了一些事情。 该软件变得过时,核心团队开始开发新版本。 与此同时,我们采纳了围绕可持续发展的新策略,并启动了软件即服务模式,范围从免费的基层部署到更复杂的企业计划,以努力带来急需的财务稳定性和可持续性,并服务于新的用例和需求。

所有这些都比预期的时间要长,我们不想“现在就”引入新的贡献者。 从一开始就没有让我们的贡献者参与进来,导致我们的文档不清晰、未完成且结构混乱。 我们没有调整软件使其易于我们的开源用户安装或使用。 **没有任何事情是故意的,但我们没有像我们希望的那样为我们的开源社区提供良好的服务。** 现在,我们的主要重点是重新与我们的社区互动。

以下是我们已经学习和完成的 10 件事,如果你的情况类似,这些事情可能会帮助你改进你的贡献者引导流程。

1. 评估你的流程

为了评估你的组织的流程有多开放,以及它们对新的贡献者来说运作得如何,请寻找可以尝试回答以下问题的新人,例如:“如何将新代码投入生产?” 以及“谁可以触发生产发布?” 或“测试是如何进行的?”

一些需要注意的事项

  • 对于新的贡献者来说,如何入门是否清晰? 入门指南是否难以找到、过于复杂或组织混乱?
  • 沟通和协调是否在公开场合进行? 还是它们隐藏在 Slack 房间中,让人难以知道发生了什么?
  • 代码审查和合并的流程是否清晰? 代码贡献的安全网和 QA 流程又如何呢?

当你与你的社区深入参与一个项目时,很难知道它对新的贡献者来说是什么样的。 我们了解到 **从内部感觉开放的流程,从新的贡献者的角度来看,可能会感觉非常封闭**。

2. 奠定基础

多元化和包容性是 Ushahidi 的核心; 大约 80% 的项目工作人员是女性和非二元性别者,我们团队的大部分成员是有色人种,我们居住在四大洲。 这反映了我们许多用户的现实情况。 他们并非都来自美国,他们来自不同的背景,他们有不同的目标。 将他们团结在一起的是,他们都在以自己的方式努力改善他们的社区。

对我们来说,**拥有一个代表我们的用户和利益相关者的多元化团队是良好基础的开始**。 但这还不是全部; 我们还通过以下方式改进了我们的贡献者资源

  • 新的开发者中心
  • 新的和更新的文档
  • 新的贡献途径
  • 视频
  • 常见问题解答

我们还通过以下方式重启我们的社区互动

  • 举办网络研讨会
  • 举办黑客马拉松
  • 积极组织和分类问题
  • 宣布每个版本的发布和贡献者

3. 使“入门”清晰明了

当有人想要开始贡献时,需要明确如何开始。 我们将好的入门贡献标记为初学者问题; 这些问题详细描述了需要做什么、如何找到代码以及你需要做什么。 编写这些问题比我们自己修复实际问题花费的时间更长,但这并不是目标。 目标是 **给可能不熟悉开源的人一个贡献的机会,并了解我们所做的工作**。

找到障碍

了解入门的障碍在哪里也很重要。 Ushahidi 最大的障碍之一是在开发环境中安装软件。 我们假设,因为我们的工程师可以完成设置,其他人也能够做到。 但其他人可能没有相同的环境,而且他们绝对没有我们的核心工程团队获得的支持量。

为了解决这个问题,我们创建了关于安装过程的视频,并且我们还创建了一个 **安装助手** 功能,该功能检查人们在配置和安装期间经常忘记的常见事项,并提供有关如何解决问题的提示。

Ushahidi's installation-helper

4. 从不同的角度学习

请其他人评估和复核我们为贡献者提供的文档非常重要。 我们非常幸运,我们的团队中有项目、社区和设计角色的人员真正关心开源,他们的投入通常有助于我们弄清楚如何 **接触那些编码经验较少或可能希望以不同于编写代码或进行 QA 的方式做出贡献的人**。

当我们为新的开发者中心创建视频时,我们的社区互动专员帮了大忙。 她不是开发人员,而且是一位优秀的作家,因此她通过观看我们浏览文档、做笔记,然后为我们的视频编写初始脚本来提供帮助。 她确保我们在日常工作中遇到并且知道如何用心处理的事情在文档中得到解决。

像这样的投入非常有价值,因为它提醒我们,我们知道并认为理所当然的事情可能会让新的贡献者感到困惑和退却。

5. 尽可能进行简短通话

在需要时以及当你的日程允许时,尝试投入通话。 **有时与新的贡献者进行 5 分钟的通话会比 30 分钟的文字聊天带来更好的回报。** 如果你在聊天中发现你的指示对对方不起作用,请让他们接听电话,向你展示他们正在做什么。 重要的是要设定时间限制(例如,“我现在有 10 分钟,所以让我们看看我们是否可以立即解决它”); 否则,你最终可能会花费一整天的时间来修复不相关的事情,这不是扩展自己的好方法。

确保利用你从这些互动中学到的知识来改进你的文档。 否则,你会发现自己进行了太多 10 分钟的通话,以至于永远无法完成任何事情。

6. 永远说谢谢

**即使感觉你得到的所有都是要求做更多工作的请求,也要感谢人们。** 我们对一切都说谢谢。 我们感谢错误报告、功能请求、代码贡献。 我们感谢伸出援手并寻求帮助。

对于某些人来说,伸出援手很困难,感谢他们证实这样做是可以的。 这种肯定不仅可能对当前情况有所帮助,也可能对未来的其他项目和情况有所帮助。

7. 在代码审查中友善

有人找到了你,完成了设置,修复了一个错误,并最终发送了一个拉取请求。 现在是审查代码的时候了。 抛开你个人对事物应该如何的看法。 现在不是吹毛求疵和粗鲁的时候。

在执行代码审查时,**确保你正在帮助人们改进代码**,而不仅仅是遵循你的个人偏好。 至少找到一个关于拉取请求的好评,并且 *始终感谢贡献者*。

如果你收到一个你没有计划合并的拉取请求,可能是因为它范围或方向错误,或者仅仅是你不想添加的东西,那么重要的是立即处理它,而不是忽略它。 忽略拉取请求对任何人都没有帮助,只会使你的存储库变得混乱。 感谢贡献者,解释你为什么不计划合并更改,并关闭拉取请求。

如果你合并了更改,请确保在发布时标记贡献者,以便他们知道它产生了影响。

8. 保持响应

在整个过程中,**保持响应并且不要让人久等非常重要**。 给某人某种回应——即使你现在无法帮助他们——并设定你何时能够跟进的期望,这非常重要。

有时一条评论会被忽略——你错过了一个通知,三个月后才发现它。 在这些情况下做出回应很棘手,但仍然最好承认该消息,为延迟道歉,并询问他们是否仍然需要帮助(关于这件事或其他事情),而不是永远忽略他们。 这奠定了你关心你的工作和社区的基调,即使你犯了错误。

9. 帮助贡献者茁壮成长

有时一位贡献者进来,发送他们的贡献,然后在没有太多互动的情况下离开。 但是,在某些情况下,你会有机会与人们长期合作。 与新的贡献者合作数周或数月非常有价值,因为你将深入了解人们——尤其是那些不熟悉你的项目或技术的人——如何看待你的工作以及他们面临的挑战。 这也是一个帮助人们成长和学习的机会。 这对每个人来说都是双赢的。

2019 年,我们参与了 Google 暑期编程活动Outreachy,这些经历帮助实习生和我们的团队都学到了新东西。 通过与实习生合作,我们了解到加入我们的项目是什么感觉,对于一位非常初级的工程师来说,引导是什么样的,以及他们为我们的项目做出贡献可能存在哪些障碍。

预防冒名顶替综合症

与此相关的是,帮助预防 冒名顶替综合症 非常重要。 不属于这里的感觉或“我怎么会来到这里”的感觉非常普遍,尤其是在技术领域中代表性不足的群体中。 它被大量书写和谈论,尤其是在过去时,但很少有正在积极经历它的人谈论它。

你如何发现它? 你如何知道有人感觉他们没有取得足够的成就,或者感觉自己是骗子?

**展示资深人士的失败并从他们的错误中吸取教训有助于创造一个包容性的环境。** 结对编程、分享你的过去经验、讨论你的职业道路以及告诉人们你何时犯错等事情都是帮助弥合资深工程师和新人之间差距的方法。 它有助于新人们感到他们属于技术领域,因为他们面前聪明的资深人士也曾有过担忧和犯过错误,但他们振作起来并继续前进。

10. 避免沟通障碍

这可能是显而易见的,但并非所有你的贡献者都以英语为母语。 对于许多人来说,这将是他们的第二语言,甚至可能是第三或第四语言。 你的许多贡献者可能不会说英语,其水平不足以让他们无缝协作,重要的是要记住,在全球项目中,不流利的英语是可以接受的,甚至是预期的。 要有同情心,要友善,并支持这些人。 不要因为某人的英语语法不好就认为他们“笨”。 仅仅因为某人不会说完美的英语,并不意味着他们没有才华。 字面意思只是他们不会说完美的英语。

另一个潜在的沟通障碍是使用其他人可能以不同于我们预期的方式看待的举止。 例如,在电子邮件末尾署名“谢谢,Romina”或说“好的,再见!” 对我来说听起来非常合适,但它们可能会向其他人发出你不尊重他们的信号。 因为这个原因给某人贴上“粗鲁”的标签……相当粗鲁?

当你与多元文化、全球化的贡献者网络打交道时,尽量不要担心语言障碍或并非意在冒犯的举止。

这并不意味着你应该原谅不良行为。 辱骂他人、贬低他人或故意错误称呼他人的性别是不可原谅的,维护者有义务根据行为准则采取行动并解决问题。

总结

让新的贡献者在你的社区中感到受欢迎对于你项目的未来至关重要,因此投入时间和精力来引导他们非常重要。

  • 确保从贡献者的角度看待你的社区。
  • 使代表性不足的少数群体能够茁壮成长,为每个人创造一个更受欢迎的社区。
  • 了解你所服务的社区,并问问自己他们的具体需求是什么。
  • 允许私下和公开提问。
  • 友善一点,定下基调。
  • 说谢谢。
  • 保持响应。
  • 保持一致。

其他资源

接下来阅读什么

我成为开源维护者的旅程

Hacktoberfest 让我开始思考。 我对开源的第一次贡献是具有挑战性的,但从那时起我学到的一切都使我成为了一名更好的开发人员。

标签
User profile image.
一位拥有环境科学和可持续发展背景的软件开发人员。
User profile image.
Romina Suarez 是 Ushahidi 的 CTO,她在那里帮助支持他们的技术团队并构建下一代 Ushahidi 应用程序。 她热衷于开源软件,并寻找更好的团队合作方式,为用户交付价值。

评论已关闭。

知识共享许可协议本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.