对于上面这两个问题,你是不是在心里已经有了自己的答案?如果有的话,你的答案的名单列表里分别有多少家软件公司和多少个软件工程师的名字呢?3个?5个?还是10个?尽管目前全世界有成千上万的软件公司和软件工程师都在做一些非常出色的软件开发工作,但当我让你列举出最优秀的软件公司和软件工程师的时候,我敢肯定你的脑海里只能浮现少数几家软件公司和几位软件工程师的名字。为什么在如此多优秀的软件公司和工程师里,你的脑海里只会浮现这些软件公司或工程师的名字,而不是其他的公司或工程师呢?
当然,利他主义是其中的一个原因,不过这只是能够解释这个问题的原因之一。在下面的内容里,我将深入分析优秀的软件公司和开发者愿意共享和开源自己的大部分工作成果的其它五个关键原因,同时探讨那部分不愿意共享与开源的人通常会给出的原因,最后,我希望能够说服你和你的公司在未来都能够更多地共享和开源自己的工作成果。
一、优秀的软件公司和开发者愿意共享和开源的五大原因
据统计,大概有三分之二的软件公司都曾为开源贡献过自己的力量。仅仅在GitHub平台上,就有超过140万的开发者在超过3500万个开源项目里共享过自己的工作成果。这个数字已经让人非常惊讶了,更重要的是,开源项目的规模正在呈指级增长,所以这个数字将会变得越来越大。
原因二:共享和开源共享有助于提高自己的项目质量
著名的计算机程序员、开源软件运动的旗手EricS.Raymond曾这样说过:
“只要经过足够多双眼睛的审查,所有的bug都将失去藏身之地。这就是Linus定律。”
原因三:开源和共享能够让你免费利用大家的智慧与劳动
原因四:开源与共享是推销自己的最好方式
如果你是一位软件开发者,让自己在一家公司面前看起来非常优秀的最好办法就是共享你的工作。你不妨将其视为一种让公司主动找上门的推销自我的策略。在找工作的时候,你不用通过盲目地满世界投递简历的方式让招聘公司注意到你,你通过共享很多公司认为有价值的内容的方式来吸引那些潜在的招聘公司的注意。如果你通过共享让其他公司的工程师曾读过你写的博客、看过你演讲访谈视频亦或是使用过你开源的项目,他们便会将你视为专家,也就会更想去招聘你。你共享过的内容将成为你的简历的一个永久的组成部分。事实上,共享对找工作的作用可能超出你的想象,正如jQuery的创始人JohnResig曾说过的那样:“不管在任何时候,只要涉及到招聘,相比普通的简历而言我更看重的是应聘者在GitHub上开源共享的东西。”
如果你是一家正在招人的公司,上面的道理反过来同样适用。给那些优秀的开发者留下一个好印象的最好的方法就是共享你的工作。如果一位开发者在过去几年里一直在使用你们公司的开源代码,那么他们想要加入你的公司并继续使用你的开源代码的可能性也就更高。开源项目是吸引优秀的开发者加入公司的最有效的方法之一,这种方法比传统的发招聘简章的方法不知要好多少倍。
原因五:开源和共享能够让你获得对项目的拥有权
换句话说,开源项目能让工作变得更加有趣,更有满足感。在这个大家甚至会为争抢优秀的开发者打烂头的年代,让工作变得更有趣可以成为你招聘的一个巨大优势。正如著名的计算机程序员、开源软件运动的旗手EricS.Raymond曾这样说过:
事实证明,开源带给我们的宝贵财富之一是它教会了我们这样一个道理:玩的心态是最经济也高效的创意工作模式。
二、一些人不愿意共享和开源的三大最常见的理由
虽然我在上面举出了很多开源和共享所带来的益处,我知道依然还有很多人不愿意共享和开源,下面我列出了一些人不愿意开源共享的三个主要原因。
下面我们就一条一条来看上面列出的不愿意开源共享的三个常见原因:
原因二:没人会看我共享的东西的
原因三:担心有人会剽窃自己的工作成果
不过也存在如果有人剽窃你的成果会对你造成危害的情况,那就是当剽窃你的工作成果会让你的竞争对手超过你的时候。当然,只有当你将自己最核心的技术成果共享出去才会出现这样的情况。例如,对于Google这家公司而言,它的核心技术成果就是它的搜索架构,即它的搜索算法和大规模分布式系统,这是Google的秘密武器。Google是不会将自己的秘密武器也共享出去的。