第 3 小节:企业为什么要参与开源
企业参与开源并不是为了公益
企业都以追逐利益为目标。
当代码是企业的核心资产时,企业必须想清楚为什么要回馈大众,降低自己产品竞争力,才有可能投入资源到开源社区活跃。这类逻辑以靠销售软件或硬件的产品制造商为主。
当代码不是企业核心资产时,企业多以最求影响力、构建开放氛围提升人才获取效率。这类逻辑以互联网公司为主。
企业选择回馈其实是理性选择
不考虑公益的情况,纯粹从利益角度算一笔账:
最初并不认为使用开源软件有什么成本,但经过两三个版本的迭代以后,成本会急剧上升。一般公司经历了多次实践后才认可这种模型,这是付出了惨痛代价以后才意识到的。如果从一开始就选择与社区合作,就可以与社区一起讨论产品的特性,然后再进行修改。最初的维护成本并不高,研发的成本会很高,但由于所要求的团队能力并不一样,维护成本会逐渐降低。
基于开源软件修改,社区下一步准备做什么、怎么做,然后就都清楚,与社区有很好的互动沟通。虽然在前期投入了很大的成本,但最终取得了相应的成果。
企业参与开源的概念
目前,包括阿里巴巴、腾讯、华为在内的一大批巨型企业都在为争夺这片市场而努力。那么,怎么才能在这场争夺中迅速获得优势呢?
一个最简单的思路,就是让本企业的标准成为整个行业的标准。而要达到这一点,企业就首先要让自己的标准有足够的使用者。显然,为了达到这一目的,开放自己的底层技术,吸引更多的研发者在此基础上进行建设,就是一个非常好的市场争夺策略——一方面可以争取直接的用户,另一方面还可以通过产品的丰富来吸引更多的间接用户。
最终,借助网络外部性的力量,它们就可以迅速夺取市场。
企业参与开源的回报
企业开源可以得到两方面回报:短期回报、长期回报。
短期回报
短期回报是指通过开源短期内获取既得利益的行为。企业能够通过开源占领市场份额,获得更大的市场利益,比如:对外发放品牌授权、对外提供咨询和服务费用。此外,企业还可以通过吸引开源项目参与者,集思广益,反哺到自己闭源版本的项目,降低技术升级的成本。
项目质量提升、加快项目进度:
谷歌首席科学家杰夫·迪恩(Jeff Dean)指出,传统的软件研发实在是太慢了,通常是一个程序员花上几个月写完代码,然后上会讨论,再根据其他人的意见进行相应的修改。
相比之下,如果采用开源的协作开发形式,谷歌开发人员能够实时与科学界进行协作,谷歌之外的人才也能够参与 TensorFlow 源代码的编写,而机器学习技术的共享能够广泛吸引更多的技术人才完善 TensorFlow 系统。这样, TensorFlow 的开发进度就大大加快了。
收取咨询和服务费用:
JBoss、Spring 通过提供技术支持、培训、二次开发支持等技术服务而获得收入。
长期回报
长期回报是指通过长期持续的开源,获得更多利益和荣誉的行为。企业可以通过长期开源项目,打造核心团队的技术影响力和竞争力,提升企业项目的质量。技术影响力的提升会进一步带来更多技术人员的认同,保持「影响力-人才」的良性循环,吸引更多优质人才加入企业。
此外,企业的影响力也能够提升员工归属感和认同感,为企业推行工程师文化提供支持。
吸引更多的人才:
将产品开源,如果能建立良好的声誉,会让开源开发者对公司产生兴趣,而公司则可以从开源贡献者中选取人才,这提供了一种互相发现对方的机会,招聘到这种人才是非常划算的,因为该程序员的能力早已在项目的贡献中得到检验,而且入职后无需磨合就能够直接上手工作。
技术影响力提升:
公司将代码开源,使更多的开发者参与进来,参与进来的开发者可以凭借自身渠道为项目做一定的宣传,从而带动更多的人参与开源项目,形成良性循环,为公司带来一定程度上的声誉从而进一步提高公司在技术方面的影响力。