开源不是大杀器,免费才是
原作者:老头头 · 微信公众号转载页
本人作为一个程序员,天生对开源有好感,之前是坚定的开源拥护者,但是上次波吉的一篇文章《开源商业模式是个伪命题》引发思考,然后在一个微信群里引发广泛讨论,导致我对开源商业化的态度发生大转弯。
本文讨论的开源项目是开源软件,而不是开源的基础类库;所说的开源商业公司指的是以开源项目为核心竞争力的商业公司。开源本身当然值得被尊敬,本文从商业层面分析软件开源对开源商业公司的利弊。
每个项目几乎都会用到开源软件,但绝大部分开发者并不关心开源软件的源码,另外从公司角度来说,除了软件功能之外,公司对用到的开源软件的关注层面是在开源协议和安全性,关注开源协议目的是避免陷入法律纠纷,关注点同样不在源码。
因为开源软件的免费属性,恰好跟互联网的先有流量后变现的思路相符,因此一些公司用先服务开源社区获得流量后再赚钱的打法,试图获得商业成功。这种打法的简要方法是“项目成功 -> 开发者成功 -> 商业成功”良性循环,通过帮助开发者成功来获得商业上的成功。心路历程|一份开源创业公司的Playbook[1]
开源项目本身的一枝独秀,是所有开源创业公司的基石;然后用这个开源项目去赢得开发者的喜爱,帮助开发者提高研发效率;最后因为运维成本、重要程度等,企业会来购买商业产品,完成从开源软件到商业采购的闭环。
可实际上会发现,这个打法与是否开放源码也并无关系,因为闭源软件同样可以通过免费分发可执行程序采用这个打法,正如前面所说的没人关注源代码,开源软件的流量来自于免费。
开源商业公司与生俱来的弊端
从商业公司的角度来说,商业免不了竞争,而开源意味着主动放弃本可以用来构建商业竞争壁垒的手段之一:核心技术。有人或许说技术不足以构成竞争壁垒,因为人才流动,技术迟早会到竞争对手那里,但是注意“迟早”意味着存在时间差,时间差也是竞争的一个方面,而人才流失也可通过一些激励或管理手段来优化。
另一方面,一些开源商业公司会提供云服务、安装部署的商业化变现方式,这种方式的卖点在于“我们是市场上该项目唯一的专家团队”。可从竞争的角度来讲,如果竞争对手奉行拿来主义跟开源公司建立直接竞争关系,虽然竞争对手不是“开源项目背后的公司”,但是正因为不用在开源社区上花费运营成本,所以竞争对手的成本在市场上是更有竞争力的。
第三点,对于上一个问题,有的公司会用开源协议来限制潜在竞争对手,但在我国开源协议的有效性也是一个值得商榷的问题。即使开源协议可以有效阻止竞争对手提供相同的商业服务,从技术角度来讲,由于开源源代码可得,闭源竞争对手出生就是站在开源项目的肩膀上的。
开源的特点
解除潜在客户关于厂商锁定的顾虑,一些以云服务为变现方式的开源商业公司对其云产品的卖点之一是,以开源产品构建的云服务,可以打消客户在与云厂商的采购谈判中处于不利地位的顾虑,而这个问题闭源软件厂商同样可以通过免费分发可执行程序来解决。另一方面,当开源项目背后的商业公司倒闭后,虽然开源项目有源码可得的特性,但依然不能保证存量用户有可靠的支持,并且闭源软件厂商可以采取卖产品送源码的免费策略达到与开源项目相同效果。
其次,通过开源保护企业现存业务。以微软开源.net core为例,开源可以防止内部业务代码成为技术外债。引用企业实践开源的动机[2]一段话:
相关技术被潮流所抛弃对采用这些技术的企业和团队带来的打击是非常严重的。不仅仅是押宝相应技术的团队被市场所否定,就业前景黯淡,对于公司来说,这意味着可能几十万行、上百万行乃至更多的业务代码都成了技术债务。站在今天的角度能够看到的例子,就是欧美国家银行当中海量的 COBOL 语言写成的业务系统,如今能找到的有维护能力的工程师最年轻的也有六十岁以上。如果这个世界上能够维护这些系统的工程师已经绝迹,那么企业的业务就暴露在巨大的风险之下。
第三点,开源带来的社区生态,来自全球的开发者和企业用户基于开源项目共同构建生态。以google开源安卓为例,全世界的厂商共同组成安卓阵营,对抗苹果公司,而google从开源生态中获利。但是值得注意的是,生态不是开源的专属,闭源的苹果公司同样构建了自己的生态。另外在这个例子中,良好的生态才是安卓获得成功的主要原因,而合作伙伴的信任是构建良好生态的其中一个原因,开源只是获得合作伙伴信任的其中一个手段。
第四点,开源社区给软件厂商带来的反馈,如软件bug、真实需求、开发者贡献。这其中只有开发者贡献是开源本身的优势,而开源社区反馈的bug、真实需求可以通过以开源的模式做闭源软件达到,即免费分发可执行程序但代码本身闭源。另外社区中开源商业公司外部的开发者占比可以在一定程度上反应外部开发者对开源软件的重要程度,根据《中国开源创业观察2022》[3]调查显示,“公司内部开源贡献者占社区贡献者多集中在 40 % -59 % 间,以及 80 % 以上,各占比 22.73 %。”
第五点,对于不开放源代码的闭源软件厂商来说,因为客户无法拿到源代码,导致在出现故障时,唯一的解决办法是联系软件厂商。这一点闭源软件厂商同样可以采用卖产品送源码的免费策略达到相同效果。
第六点,对行业的价值。不得不承认的是,程序员群体对开源这件事的极大热情,可以说对技术不感兴趣的程序员不是好程序员,而开源社区最能聚集一批热爱技术的程序员极客们。这导致的一个结果是,对于任何成功的商业化产品,一定会有一个开源平替版本出来,不管是来自个人开发者还是公司,这对行业来说确实是有益的,来自社区的开源版本会对已经在市场上有一定占有率的商业软件形成一定的竞争压力,有助于防止垄断局面。从市场角度来说,这样的开源软件并没有创造出新的市场,只是对已有市场的瓜分,从而让商业公司产生收购需求,这也是一种开源软件的变现方式。但值得注意的是,哪怕是这种变现方式也不是开源软件的特有优势,闭源软件同样可以采用免费策略实现这一目标。
第七点,通过将开源项目捐献给中立基金会,借助全行业的力量一起构建行业事实标准。一个典型的例子是google开源kubernetes,通过争夺行业标准与aws抗衡,而google则通过GCP(google cloud platform)从生态中获利,参考Kubernetes: The Documentary [PART 1][4]。但如果仅从k8s本身来说,aws同样可以通过提供k8s托管服务获利,正如前文提到的开源商业公司的弊端第二条一样。另外开源同样不是争夺行业标准的唯一手段,Windows在家庭娱乐方面、AutoCAD在绘图方面、Mac在生产力方面的例子说明,闭源软件厂商仍然可以获得行业事实标准。
第八点,tob商业中软件使用者在企业软件采购中扮演越来越重要的自下向上的决策影响力。假设这一点是成立的,那这个也同样是免费而不是开源带来的,正如前面所说的没人关注源代码,开源软件的流量来自于免费。
总结
以上对开源的特点的分析中,只有第二点、第四点中的外部开发者贡献可以作为开源项目的特有优势,其中只有第四点中的外部开发者贡献可以作为商业竞争的进攻手段,而第二点只能作为企业的防御手段,而获得这个进攻手段的代价是以上说的3点开源商业公司在商业竞争中与生俱来的弊端。
References
[1] 心路历程|一份开源创业公司的Playbook: https://mp.weixin.qq.com/s/2s-t-BIjGcT9hOPz3rZNeg[2] 企业实践开源的动机: https://mp.weixin.qq.com/s/NYC_beiBvsxCjkocA1FUZA[3] 《中国开源创业观察2022》: https://gitee.com/report/china-open-source-2022/startup-insight[4] Kubernetes: The Documentary [PART 1]: https://www.youtube.com/watch?v=BE77h7dmoQU
