加入开源社区的 4 个技巧

目前还没有读者喜欢这篇文章。
Open here.

Opensource.com

我从小最大的两个梦想是成为一名消防员或太空探险家。虽然我没有实现这两个梦想,但我通过在加州消防局 Cal Fire 担任预防志愿者来满足前者,并通过阅读所有关于太空的书籍(包括小说和非小说)来满足后者。

最近,我拿起克里斯·哈德菲尔德上校关于宇航员生活的书,《宇航员地球生活指南》,并在一次亚洲国际旅行中开始阅读。

除了这是一本引人入胜的书(我强烈推荐)之外,它也启发了我思考如何更好地完成我的工作,并就如何在开源领域做得更好向内部开发人员和整个三星提供建议。

目标是成为零

在本书的第 9 章中,哈德菲尔德写道:

“在任何新的环境中……你几乎肯定会被视为以下三种人之一。负一:具有积极危害性,制造问题的人。或者零:你的影响是中性的,不会向任何一方倾斜。或者你会被视为正一:积极增加价值的人。当然,每个人都想成为正一。但是,一开始就宣称自己是正一,几乎肯定会让你被视为负一,无论你带来了什么技能[或价值],或者你实际表现如何。”

虽然这听起来可能有些消极,但它实际上与个人或公司应如何对待开源工作息息相关。

当我思考我写的其他关于社区互动的文章时,我对此产生了共鸣,包括我最近一篇博客文章的最后一句:“保持谦逊,但要大胆。”

当我思考哈德菲尔德的话时,我非常清楚他在说同一件事。虽然你当然应该希望在你参与的任何开源社区中成为“正一”,但你需要在开始互动时尽最大努力成为零——不要向任何一方倾斜。

这适用于个人开源开发人员,但对于代表公司工作的人来说尤其如此。没有什么比一开始就立即试图成为“正一”更能让社区充其量无视你,或者最坏的情况是积极反对你。

这是否意味着你应该退居幕后,永远不说话?绝对不是,但是你可以遵循一些通用指南来帮助你达到“正一”的状态。

做好功课

在试图对开源项目产生影响之前,做好功课/研究是绝对不可替代或没有捷径可走的。

除其他事项外,你需要了解社区如何沟通(邮件列表、论坛或互联网中继聊天 (IRC))。你还应该知道想法是如何被提出(错误跟踪器或邮件列表)和讨论的。

此外,了解社区是如何管理的也很有帮助——是像 Linux 内核那样具有维护者/子维护者的层级结构,还是像 Debian 项目那样主要是扁平结构?了解这一点有助于你识别项目中的关键领导者和影响者,这将有助于你稍后开始提出更改或新想法。

最后,了解开发流程至关重要——一个错误或新功能在被接受到主线之前要经历多少个阶段?有些领域是否比其他领域更具争议性?所有这些研究都将在你修复错误或提出和实施新功能时对你有所帮助。

主动承担脏活累活

在解释如何首次进入国际空间站时,哈德菲尔德写道:

“为全新环境做出贡献的最佳方式不是试图证明你是一个多么出色的补充。而是努力保持中性影响,观察和学习那些已经在那里的人,并在任何可能的地方承担繁重的工作。”

在开源项目中,就像在空间站中一样,有无数的任务需要完成。是的,荣耀可能在于编写代码,但我见过的几乎所有项目都在以下一个(或所有)领域存在迫切需求:

  • 文档
  • 测试/质量保证
  • 错误修复/分类
  • 用户界面/用户体验
  • 社区引导/布道

通常,通过在这些领域之一做出贡献,你将获得在你开始之前对项目没有的专业知识和理解。你还将向你的社区成员表明,随着时间的推移,你可以被信任承担越来越多的责任。

尊重每一个人

在过去的几年里,有很多关于一些开源项目由于邮件列表、IRC 等上的尖酸刻薄而成为“危险工作环境”的评论。但是,正如我告诉三星内部员工(以及我咨询或工作过的其他公司)的那样,“专业精神永远不会让你失分。”

学会优雅地接受反馈(即使反馈的方式不好),并修改你的代码、建议或只是在邮件列表上的评论,这对于学习如何在环境中有效工作非常重要。虽然大多数项目的沟通透明性在一定程度上加强了这一点,但请记住,你与项目成员的任何私人沟通也很重要。

哈德菲尔德讲述了一个故事,讲述了准宇航员基本上因为“不能与他人好好相处”,或者对待医疗或其他支持人员态度恶劣而被取消太空任务资格。你可能是地球上最杰出的开发人员,但除非你能优雅地互动并尊重每一个人,否则你不太可能在开源领域取得长期成功。

整合所有内容

所有这些要点实际上都与一件事有关:了解你的环境。哈德菲尔德精美地总结了这一点:

“当你有一定的技能,但没有完全了解你的环境时,你不可能成为正一。充其量,你可以成为零。但零并不是一件坏事。你足够称职,不会制造问题或为其他人增加更多工作。你必须称职,并向他人证明你是称职的,然后你才能变得非凡。”

重要的是要记住,他在书中分享的经验教训源于艰苦卓绝(有时甚至是生死攸关)的境况。虽然在开源项目中有效工作与此不在同一级别,但他分享的关于在地球上方 255 英里的国际合作中生活和工作的经验教训,同样适用于成为开源社区中值得信赖的成员。

最初发布于 Open Source Delivers。经许可转载并根据知识共享协议发布。

开源新手
开源

关于如何开始参与开源的文章合集。

标签
User profile image.
Guy Martin 是 NVIDIA 的开源与标准总监,他在那里与 Omniverse 产品团队合作,帮助他们驾驭开放领域,参与 Universal Scene Description、MaterialX 和许多其他项目。他还就开源最佳实践为组织的其他部门提供咨询。

5 条评论

精彩的文章!这在很多方面都很有帮助!

有趣。

首先做好功课。善待彼此。对于加入任何新社区来说,始终是不错的建议。

大多数开源社区的关键因素是治理和关系。

- 大多数参与者都是出于自愿,或者如果他们是为了工作而参与,那么这与项目是间接关系。因此,你需要比大多数其他组织(尤其是典型的公司,在公司里,老板只是告诉你该做什么)更尊重开源社区的时间和利益。

- 长期项目贡献者经常对他们最喜欢的项目有个人认同感。因此,他们对新来者的回应——尤其是那些不尊重或不礼貌的新来者——通常可能显得很苛刻。对于一些贡献者来说,你发邮件进入的不仅仅是“办公室”空间,它也是他们家的一部分,以及他们的个人朋友圈。

祝大家好运,并感谢您推荐这本精彩绝伦的书。

感谢分享宝贵的信息!我将在目前的工作中尝试您的建议。

很棒的建议。感谢 Guy Martin 的分享。非常感谢。

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