如何避免进入“另类”开源社区
开源社区是基础,但是没人想和一帮怪人一起工作。
开源社区对于很多软件领域如今都很常见。但是开源社区之间各有不同,对于新人会产生很多问题。有些人认为开源是指我可以随意下载软件,但是开源的意义远不止这些。
要想从开源社区收获到最大利益,公司和大的机构必须要积极地参加到对于他们很重要的项目。这是件棘手的事情,要看开源社区是否对于参与者友善。就像 Bert Hubert 指出的,社区是一个项目的未来的最好预言。(参考:How To Get Started In Open Source)
好的社区可以创建优秀的软件。但是找到如何融入到社区的方法,不仅需要你的热情参与,也要有其他的方法。
首先我们需要找到该项目背后的意义。不能仅仅通过判断社区规模的大小来决定是否参与其中。
举个 Linux 的例子,Linus Tovalds ——十几年前 Linux 第一个版本的发布者——承认那时候对于开源社区做了很多错事。比如,他指责开发人员的代码很烂,或者指责红帽公司的烂代码是为了更好地吸引蠢程序员。
不仅是 Tovalds,其他项目的负责人也会多多少少很苛刻,对于贡献者不友好。比如最新很火的Docker 社区中的很多成员做得事情并不能和社区管理者的思路一致。(参考:Want To Start An Open-Source Project? Here's How)
这些社区也许你很想加入,但是还有很多社区你可以在免费下载的同时做更多的贡献来帮助社区成长。
想要成功,你需要了解一个社区是如何运作的。比如 Linux,它不是一个社区而是很多社区。因此一个社区的运作方式并不代表其他社区。
比如 Linux 内核稳定版本的管理员 GregKroah-Hartman,当被问到是否允许新人进行删除空格这类操作的时候他是这么回答的:
其他社区的管理人员也许认为删除空格这类工作是没有用的。但其实只是因为他们不想对这类琐碎的工作做出反应。因此不要对这类社区做删除空格这类的工作,去找个鼓励这种工作的社区。比如核心中的驱动或者分层部分。我负责这部分,希望你可以通过修改空格的工作来加入社区。我很鼓励这么做。
Kroah-Hartman 想要鼓励新人,但是有些人不会。选择一个适合你兴趣同时你可以接收的工作的社区,这需要细心一些。
加入社区之前需要仔细观察社区。最友善的项目管理员也不会欢迎一个什么规矩都不懂就大放厥词的新人。
这样做好处多多,有些社区这些是必须的。比如 Howard Chu 在 OpenLDAP 社区公告中讲到:
如果你的信息对于社区无帮助你会被讽刺、嘲笑,比如一个愚蠢的问题。如果你不仔细阅读社区规则你会公开被所有社区的参与者所嘲笑,让你变得不受欢迎。
Huburt 对 Church 的公告接着总结道:进入一个社区之前最好看一下社区中已有的各种问题。比如特性问题,漏洞报告等。因为你从中学到的东西可以让你知道以后社区会怎么对你。
简而言之,进入一个社区不是光为了干活的,还要在你做贡献的社区中感觉很舒适才对。如果不是这样你需要换个项目试试,因为总的来看,开源社区给人的感觉要比代码给你带来的意义更多。