如何成为一名出色的贡献者(开源项目)

还没有读者喜欢这篇文章。
Participation text on a field

Opensource.com

纽约市的早晨很忙碌。我的电子邮件收件箱里充满了惊喜。第一个是我开源项目的一个补丁。第二个将在今天下午出现。第三个应该在深夜——或者可能明天——来自一位新的贡献者。

在我的日常工作之外,我还贡献和管理开源项目。我参与的项目数量在过去三年中从几个小型工具增长到十几个以上。开源已经成为学习新技术、尝试现代软件开发实践以及结识志同道合的工程师的好方法。我发现看到优秀的贡献者发送工作正常且经过测试的代码会产生一种独特的成就感,这种感觉与我的应用程序拥有许多满意的用户或为支付我账单的雇主带来强劲收入一样强大。

我询问了过去几个月发送补丁的三位工程师,想更多地了解他们的故事。首先,我想知道是什么激励他们做出贡献。

***

Nicolas GuillauminFunnelback 的研发团队工作,Funnelback 是一家位于澳大利亚迪克森的搜索引擎技术和服务公司。我与 Nicolas 的第一次联系始于对 WAFFLE 工作项 #8559 的评论

“请查收附件中的补丁。我已经完成了… [每个人都想要但没人愿意实现的这个东西] 的基本实现。”

我请 Nicolas 解释是什么促使他成为一名贡献者

“我们正在研究将我们的 Web 应用程序从 Perl 移植到 Java,我们需要一种方法来替换 IIS 提供的一些功能,例如 SSO 和模拟。我们遇到了各种可能的身份验证解决方案,例如 Spring Security 和 JAAS,但 WAFFLE 似乎是最简单、最干净的。此外,它是唯一一个具有模拟支持的,至少在底层 API 上是这样,并且将其扩展到在 Servlet 过滤器中实现模拟似乎很容易。贡献也很直接:该框架小巧、易于理解且文档齐全。”

Rami AbughazalehNovaStor 工作,NovaStor 是一家备份软件和数据保护公司,在加利福尼亚州阿古拉山设有办事处。如今,他为 Windows 部署领域的几个相关开源项目做出了贡献,包括 dotNetInstaller,一个流行的 Windows 引导程序。

“我们在生产环境中使用 dotNetInstaller,需要修复一些错误和增加一些功能。起初,我很高兴找到一个开源解决方案,它满足了我雇主的所有要求,这反过来也让我在工作中看起来不错。然后,我想贡献我的一些时间来感谢那些启动并继续改进项目的人和社区。我也有一个个人目标,即学习和获得更多使用各种新工具的经验。”

Neil Sleightholm 经营 X2 Systems Ltd.,该公司在英格兰西南部提供 IT 咨询服务。他尤其在 dotNetInstaller 中实现了安装时权限提升 (#7968)。

“该项目完成了我需要的 95%;商业应用程序要么不足,要么对于我想要的小部分来说太贵了。花时间添加我需要的功能似乎是划算的。代码的质量给我留下了深刻的印象,所以我知道值得投入精力来获得一个可靠的系统。特别是,我认为我从未遇到过一个项目(开源或商业开发)拥有如此复杂的单元测试程序。这意味着我有信心添加功能而不会破坏现有代码。此外,项目协调员愿意协助解决编程问题。”

***

这些都是很好的故事!但是,是什么让 Nicolas、Rami 和 Neil 成为优秀的贡献者?我思考了一会儿,并考虑了他们所说的话、我自己在贡献时的想法,以及我在这些社区中看到发生的事情。

我想出了一份清单,列出了我在贡献工程师中最看重的品质。展现这些品质将使您成为一名出色且可能受欢迎的开源开发人员。

  1. 有一个要解决的实际问题、业务需求或某种商业驱动的动机。
  2. 了解项目的目标,并确保您的贡献符合这些目标。
  3. 提交完整的补丁,以实现全部功能。包括任何测试信息和文档。
  4. 遵守您所贡献项目的规则。
  5. 保持谦虚。永远不要自己将自己的名字添加到贡献者列表中——项目负责人应该这样做,如果她或他重视您的工作。
  6. 放低期望。学会接受拒绝。
  7. 坚持不懈。改进评论并不断发送更新。
  8. 诚实且坦率地说明您可用的时间和技能。
  9. 做一个实干家,而不是空谈家或喷子。
  10. 完成您开始的事情,不要放弃。

这是我鼓励我的贡献者培养的核心价值观列表。如果您是一位开源项目负责人,您最看重您的贡献者的哪些方面?如果您是一位开源开发人员,您遵循哪些规则?我的清单符合您的世界观吗?我很想在评论中听到您的意见。

标签
User profile image.
@artsy 工程主管。关注我 @dblockdotorg。

4 条评论

很棒的文章。我唯一的评论是关于您的核心价值观列表中的第 6 项。在这种情况下,我认为也许它需要有一个 6a 和 6b。

6. 期望。
a. 对自己和您提供的工作抱有很高的期望。
如果您期望自己始终如一地提供高质量的工作,您就会做到。
b. 对您的工作被接受的频率抱有较低的期望
没有评论。学会接受拒绝。

再次感谢这篇很棒的文章。

非常好的观点,谢谢。

一篇有启发性的文章,尤其是对于我这个有抱负的贡献者来说。
我愿意分享这个 <a href="http://www.webchick.net/embrace-the-chaos">链接</a>,这是一篇很棒的文章,题为“核心维护者的日记:两位开发人员的故事”,来自 Drupal 核心贡献者 Angie Byron。它展示了一个新手贡献者如何通过谦虚、诚实和充满热情和毅力来获得其他“恐龙”贡献者的认可,这篇文章还展示了一个优秀的开发人员如果他投入到单人工作中并将自己与社区隔离开来,可能会不被社区接受。

这是一个非常诚实和有用的清单。感谢分享!

Creative Commons License本作品采用知识共享署名-相同方式共享 3.0 未本地化版本许可协议进行许可。
© . All rights reserved.