论“回馈社区”的荒诞

常听一些使用开源软件的公司说“回馈社区”,这究竟是一种什么样的心态?知恩图报?还是别的什么?且看作者是如何论证这种荒唐的说法的。

在2008年的Google中国大会上,我参加了一个关于GFS的演讲,在末尾的提问环节,有人问什么时候开源?演讲嘉宾的回答是:“Google还是一家非常年轻的公司,面的很残酷的竞争对手,我们会在未来适当的时候开源的,因为Google本身的构建就使用了很多开源的成果。” 大致是这样,后来在豆瓣等场合也听到类似的回答。这是互联网公司回答利用开源的最为主流的方式。我也一直认同这样的回答,但是近来遇到的几件事,使我再次思考这样的回答在何种情况下是成立的?以及“回馈社区”这个词如何的被滥用?

首先得从项目本身说起,是否是基于开源项目的改进或二次开发,亦或是像Google那样投入科学家和工程师先从理论入手,然后原创实现。这完全是两种不同的方式。但是无论哪种方式,以“回馈社区”这样的方式称都是不妥当的,前者荒唐,后者牵强。

我们通常在什么场合下会看到“回馈社区”

其实,我写这篇文章和本土的文化有关,我是能够感觉到本土的错位而有所感慨的

笔者遇到的情况是:

  1. 某大型国企老总,在某大会上做“报告”,言称其为社区回馈了多少个补丁。
  2. 某基于开源项目的二次发行版本的公司,在其产品宣传上以“回馈社区”的名义称自己的技术实力。如这样的
  3. 某民族品牌,国产的骄傲,在被问到开源时,会以本文的开头搪塞。完成偷换概念的华丽转身。
  4. 某位程序员,对开源有情结,称自己一直受益于开源社区良多,想有机会“回馈社区”。
  5. ……

相信大家也经常的听到这个词汇。

笔者在此申明一下,我论及此四个字的本意是想告诉大家,去融入开源社区,将开发、测试、文档、运维、设计等软件项目的开发是一种正常的参与,不需要过分的强调自己的”付出”——“回馈”!

这里给大家举个例子,国内著名厂商华为的开源总结:企业视角看到的开源 ——华为开源5年实践经验,有没有觉得不对劲的地方?它为什么也在使用“回馈”这个词汇?

这么说的背后是何种文化和心理?

这是一种很正常的心理反应,或者说文化现象。尤其是儒家文化造就的孝顺。知恩图报是本土的一个极为习惯的思维方式。但是,这中间有参合了其它的因素。即民间文化的“秘方”、上世纪8、90年代盗版的泛滥引起的恶果、乃至于面对强大的意识形态灌输的反感等。

由于开源项目的特殊性,超越国家、地理位置等。但是还是有本土文化、时区、技术水平差异、市场环境等不同而有所偏颇。导致等结果就是,本土基本上就是在使用,没有话语权,提出的需求或反馈不被重视等等。导致有下面几个心理状态:

  1. 知恩图报
  2. 希望得到承认
  3. 夺取话语权,以权力斗争思维渗透进入开源社区
  4. 赚取市场口碑
  5. 拿到更高的Offer

开源项目本身就是一个良好的生态系统

先来看张图:

这是一个健康的、良性循环的系统。想象一下你的回馈该放在哪里?俨然是在这个圈子的外部意图硬生生的插入你的反馈?回馈?

你的回馈对于社区是多余的,对于你自己是浪费时间

如果你没有想过进入到这个生态系统的话,就回馈吧!开源,尤其是现在的开放基金会模式治理下的开源项目,均有自己的开发流程、决策议程,比如OpenStack、Apache的孵化项目。简单的回馈会遇到很多的困难,你的代码该如何提交?项目在设计阶段给如何提出需求?又该如何审核通过?你的测试结果该如何展示?撰写的文档是否一致?等等,

开源发展到今天已经不是上世纪90年代初,以Ftp、邮件列表提交补丁就可以是贡献者到时代了。现在开源软件吞噬世界的时代,你的回馈会被淹没,你必须想办法去融入。

何种“回馈社区”是为自己的商业模式争取亮点

本土总是非常的奇葩,所以一些开源软件或自由软件的原教旨主义者非常的痛苦和不理解。拿OpenStack为例,OpenStack基金会会以Git的代码提交做一些排名,而本土有些公司的做法,为了争取到某个项目的core,将一整个小组的人的代码都以某个人的名义提交。仅仅在一些开源的研讨会或用户开发峰会上夸夸其词的。