社区胜过代码:如何建设一个成功的软件项目(视频推荐)

在《The Art of Community》一书中,Jono Bacon详细的讨论了关于社区的一切,从经济学原理、人性、社会学基础、到激励、奖励、形式、约束,总而言之,是希望人们能够参与到开源的项目当中,代码与社区,一样都不可或缺。但是,有人过度的重视代码而忽略社区的存在,从而犯了很多的错误,走过很多的弯路。这下好了,听听自身社区经理论道——社区胜过代码!

注:本文整理自演讲,原视频见末尾。

时间稍稍过去的久了一点,是去年(2016年)冬天举行的北美LinuxCon上,来自红帽的Joe Brockmeier分享了关于社区建设的真知灼见。但是,现在重新回顾和解读丝毫没有过时的感觉,恰恰相反,有种恰逢其时。开源渐渐的被本土的人们所重视起来了,那么其中的奥秘:“社区胜过代码”,还有什么比这个更能振聋发聩了呢?

自问

那些高效的、健康的自由开源软件项目是凭空产生的吗?当然不是,而是用心打造出来的,其中的秘诀就是 社区胜于代码。细节为王:假如现在你好不容易建设了一个社区,那么你如何保证它的进一步增长?你又该如何制定方向?如何吸引和留住贡献者?当社区的人们之间发生了冲突又该如何处理?尤其是那些贡献较多且有价值的人们吵起来了怎么办?

你所理解的社区是什么?

在我们的日常生活中,我们几乎每天都能听到人们在谈论“社区”,比如有人把微信群也称之为社区,QQ群也有。但是这些真的就是社区吗?或者是和开源项目中所说的社区有什么区别吗?Brockmeier在演讲中是这么说的:“我曾经在多家公司待过,也见证过很多的项目,每个人在开始的时候都会问这样的问题“我们需要一个社区”,我一般是这么反问的:你需要一个什么样类型的社区?什么人对于你来说是最重要的?你希望你的用户关心什么?你希望你的开发者关心什么?你需要知道成功的社区是什么样子!正如你需要知道你项目的目标是什么 然而,这都视不同的情况而定。”

Brockmeier 举了一常见的例子:有些公司,是不在乎公司发起的项目有多少个非本公司的外部核心贡献者的,但是他们会非常在乎有多少用户。这很典型的说明了,如果你需要一个吸引用户的社区,就不能去按照吸引核心贡献者的思路去建设,二者完全是两回事。

秘诀就是:包容

任何一个软件项目,哪怕是规模很小的,都需要除编码以外的专门的角色担当。诸如代码审核、文档撰写、发现bug、修复bug、在IRC中活跃讨论的人、在论坛帮助其他人、打包者、系统管理员、市场人员、以及美工、搞音乐的等等。

吸引和留住贡献者,绝非是神奇而一蹴而就的事情,而是需要用心努力的去做很多工作的。

比如,要设置导师这样的角色,为新的贡献者提供指南,就是非常不错的良策!从所有的贡献者面前坦诚所有的贡献!确保所有的交流和决定都是公开的,而不是在某个小组中。

Brockmeier 特别推崇Apache软件基金会的原则:“凡事没有在邮件列表中讨论过的,就当没有发生过。” 人们不应该私下去做影响整体项目的决定,或者是悄悄的去实现它,都是不对的。

对贡献者的认可至关重要,作为社区的建设者,你需要能够从众人中有效的识别出那些真正的贡献者,这可能需要一点时间来决断,不是说某种市场活动,而是那些实打实的,如每天在IRC上帮助人们解决问题的热心贡献者,有的甚至是开发者们会忽略的部分。你必须掌握这种有效识别贡献者的能力。

更多内容,还请仔细观看视频:Brockmeier 还讲到了lazy共识、行为准则、设定衡量目标、有效治理、包容、多样性等等。以及如何处理那些找麻烦的贡献者(比如:没有离了谁,地球就不再转动这一说)。