点击上方“开源社”关注我们
本文为系列文章,分为个人、企业和国家三篇。
现附上第一篇《围绕开源的系列思考——个人篇》,与众位读者分享。
(Author: TeroVesalainen / photo on pixabay)
| 作者:庄表伟
| 编辑:Corrie
破题
在写到第二篇的时候,我已经大概想明白自己打算写些什么了。或者说:我打算表达些什么了。这是一个关于成长(发展)的话题,对于个人而言,更偏向成长;对企业、国家而言,更偏向于发展。在一个成长(发展)的过程中,开源——更宽泛的说是开放性的方式——能够起到什么作用?
就像所有复杂的问题一样,开放性的方式也不是一个简单的、一试就灵的答案。并非只要投入开源就好了,更不是越开放越好。
因此,这三篇文章都会是一个“Yes, But”的结构,并且会在文章结论的部分,提出一个关联要素的模型,以便得出一个更有价值的思考框架。
希望能够对相关话题的讨论,有所帮助。
1
开源是如何驯化企业的?
对于大多数企业而言,一开始都是无法理解开源的,因此产生的不解、担忧、怀疑、鄙视,甚至敌视,都是非常正常的。但是,随着使用开源的企业越来越多,一家一家的企业,终于有一天会开始问自己一个问题:我们要不要也尝试一下开源呢?——真香!
当然,事情往往都不是一帆风顺的,尤其是那些较早采用开源的企业,多半都有掉进坑里的机会。但是,至少有两类企业,会坚定的使用开源。一类是非常小,甚至尚未赢利的初创企业。对于他们来说,成本是首要因素。另一类是高速成长,越来越大的企业,传统的商业软件,已经无法满足他们的需求了,他们只能自己动手,基于开源软件做修改,来满足自身的需求。
第三类使用开源,是那些找到了基于开源的商业模式的企业。随着开源软件的不断成熟,这样的商业模式越来越具有可行性,也就有越来越多的企业投身其中。
从使用,到修改后使用,甚至修改后赚钱,总之是有很多企业,在内部维护了某个开源软件的自己的私有版本。这时,有两种新的“烦恼”产生了。首先是License,企业们开始意识到,有些License是强制他们要在修改商用之后,将修改的代码开源的。为了避免法律风险,他们只能将代码回馈社区。
其次是开源的发展速度太快了,当开源社区又推出新的版本,企业自己的私有版本,该何去何从呢?留之无用,弃之可惜。企业面临一个艰难的选择,要不要将自己的私有版本,回馈社区?也许,尽可能减少与上游社区的差异,才是成本更低,收益更高的方案。
从怀疑到采用,从私下使用到回馈社区,企业们也必须更加深入的理解并认同开源社区的理念和文化,这就是企业被开源驯化的过程了。
2
企业里的员工发生了什么变化?
这里所说的企业,自然是开始接受开源的企业,这些企业看待员工的方式,首先会发生变化,然后是员工的构成成分,以及他们的能力结构,都将发生缓慢,但却不可逆转的变化。
首先是招人,那些从不使用开源技术的企业,只会使用自己研发的技术,自然也不会将掌握某种开源技术,写入他们的招聘条件之中,只能要求考察各种基本能力。反之,他们就会想要寻找各种熟手,甚至高手。以致到了现在,候选人可以仅凭自己的开源经历与社区贡献,就足以证明自己的能力。
其次是人员组成,越来越多的开源高手进入企业,并且胜任愉快,这就使得“外来的和尚会念经”成为可能。企业内部的技术栈,系统架构,甚至开发模式,也会逐渐的变得越来越开源。企业内部,从用开源、到学开源,再到懂开源。这样的人也会越来越多。
最后是一个顺理成章的变化,在就业市场上,懂开源成为一个巨大的优势,开发者在职业生涯中,积累开源方面的经验将不会被浪费。更进一步说:由于开源技术的普及,开发者的横向比较变得更加容易了。于是会有越来越多的开发者,乐于在工作中使用开源技术(甚至是尚不成熟的开源技术),还会有不少比例的开发者,不仅在工作中使用,也愿意投入自己的业余时间,成为开源社区的贡献者。
(Author: Geralt / photo on pixabay)
3
更懂开源的企业们在做什么?
对于员工们发生的变化,有些企业是比较担忧的。随着开源技术大行其道,开发者群体的能力和经验积累变得更加容易了。一方面企业更加容易招到符合自己需要的人才,另一方面,企业自己的人才也更容易跳槽了。当然,那些不太懂开源的企业只是关注自己失去的人才,而那些更懂开源的企业,则看到了更大的机会。
一个企业,为啥要把自己的内部项目开源出来呢?我们可以思考一个数学模型,某一个市场,原本的规模是100,其中一个企业的市场占有率是20%。当他开源了一个项目,这个市场将变得更大、更成熟,市场规模从100变成了200。由于参与者众多,企业的市场占有率从20%,变成了15%。但是,他的整体收益,依然上涨了50%。当然还有一些企业,通过开源,不仅做大了市场,更提升了自己的市场份额,那就更厉害了!
举例:谷歌的安卓系统,就是成功典范!
(Author: Mammela / photo on pixabay)
再看另一个数学模型:假设全世界的程序员,每年能投入开发活动的时间总数,几乎是一个常量。他们的主要工作时间,用来完成公司的工作。其他的时间,他们会利用业余时间,看看其他的新技术,开源项目,参与社区活动之类。所以,既然一家公司,不可能招募全世界的开发者为他打工,那么搞一些有趣的开源项目,吸引开发者业余时间来参与,就是一个不错的办法。这个策略,本质上是一种阳谋:通过各自的开放平台,开源项目,吸引开发者的业余时间。这是一种此消彼长的企业间竞争。
举例:现在所有的大企业,都在推自己的开放平台和开源项目,本质上就是在争夺开发者的业余时间。
除了扩大市场,吸引外部贡献,还有第三种收益:企业技术形象的提升。这种形象的提升,带来的不是“XXXX”增加,而是各项成本的下降。比如,在招聘一名新员工时,所需的成本更低,原本需要谈4周,现在人家二话不说,1周内入职。再比如,在推出一项新技术的时候,市场上会有自发的粉丝、代言人出现。甚至在产品的各种细节都不清楚的情况下,就能够赢得信任,有人慕名申请试用、试玩。再比如:同样推出一个新产品,A公司的产品就能够上头条,B公司的产品就无人问津。
举例:微软公司现在的一系列拥抱开源的动作,极大的提升(扭转)了企业的技术形象。
4
思考题
行文至此,就该出现“但是”了。既然开源这么好,那么为啥不是所有的企业都义无反顾的投身开源?为啥一家企业不会把自己的所有技术都开源?为啥那些完全开源的企业(比如RedHat)不是全世界最赚钱的公司?一定有一些更加深层次的原因,我们还没有分析出来!
最近我有一个猜想,也许能够解释一二:
*示例图片
并非所有的产品,都应该开源,我们可以区分三种情况:
什么样的产品,开源之后,有百利而无一害?
有两种产品,符合这样的设定。一种是:市场上尚未有类似的产品,完全创新,全靠摸索。另一种是:市场上已经有完全成熟的产品,并且占据主导地位。如果不以开源的方式进入,则毫无机会。
这两种情况,如果不开源,几乎不会有成功的可能。开源之后,放手一搏,也许还能起死回生。前者可以用Docker作为案例,而后者可以用FireFox作为案例。
什么样的产品,开源之后,边际收益递减?
当一个市场逐步走向成熟,存在多个比较类似,且各有所长的产品。这时开源的选择,就会非常艰难。开源能够吸引一定的贡献者,但是同时也会给竞争对手带来机会。甚至,几个竞争对手还是基于同一个开源项目,进行各自的二次开发。
这时,哪些组件、模板应该开源?哪些版本可以开源?开源时选择的License是哪种?都是相当困难的问题。这样的现象,可以用OpenStack作为例子。
什么样的产品,一旦开源,就会养虎遗患?
作为市场上真正的王者,他们的产品即使闭源也有众多的拥趸,但是一旦开源,却可能让竞争对手迅速发展壮大,这些产品就是企业的核心竞争力所在。一般而言,企业都不会把这种产品开源。
站在食物链的顶端,赚取最高的利润。这样的现象,可以用iOS系统作为例子。
5
在企业内部,需要多少开放性?
这个问题的缺省答案,并不是:越开放越好!
*示例图片
事实上,一个企业如果有明确的目标,无需探索、创新,他们也不必追求任何的开放性。因为一切都很简单,目标可能是另一家企业的最新产品,只要能够以最快的速度,实现最逼真的模仿效果,然后再把成本控制到足够低的水平,则是一个非常简单、却非常有效的商业模式。——山寨模式!
当一个企业走出模仿的阶段,已经找不到模仿的对象时,只能靠摸索,尝试、创新。这时:在内部管理中,逐步松绑,逐步放开限制,成为企业家必须认真考虑,小心前行的方向。
如上图所示,我们假设创新的边际收益,会随着开放性而递减。另一方面,管理的难度,则会越来越大。企业家需要找到一个临界点:在这个临界点上,最终收益才会是最大的。
当然,困难之处在于:上图的模型无法预先估算。所以只能摸着石头慢慢增加开放性,甚至放一放、再收一收。逐步找到最佳的开放度。
而更加困难的一点在于:随着企业的不断发展,这个临界点也会不断飘移。是的,并不是“不断右移”!这就更难上加难了!
6
企业与开源的关系
*示例图片
从历史上来看,最初的企业都是看不懂开源的。随着愿意尝试的企业越来越多,愿意了解甚至学习开源的企业越来越多。到了现在,企业“号称”拥抱开源,已经成了一种政治正确的选择。但是,在我看来,只有斤斤计较的企业,才有可能在开源的领域越陷越深。
对于企业来说,使用开源能够省钱,参与开源甚至主动开源还能赚钱,这才是他们愿意持续投入开源的核心动力。
个人可以坚持理想主义,但是企业首先应该活下去。只有那些斤斤计较,然后不断尝试,再不断地从开源获得回报的企业,才会是开源领域坚定的支持者。
那些高唱理想主义的企业,标榜不求回报,一心奉献的企业。要么无法持久,要么就赚个眼球而已。
*本文图片来源网络,如有侵权请联系删除!
作者简介 AUTHOR
庄表伟
开源专家
开源社理事、执行长
目前是华为云高级产品经理
相关阅读 | Related Reading