解密开源这门生意——商业角度看开源

作者:亚孟2019.08.07 18:50浏览量:2990

简介:前言 很多朋友都问过我,开源技术究竟好在哪里,一个公司拥抱开源是不是加分项,参与开源的人是不是很酷的技术大牛。本文抛开虚浮的情怀和热情,我们从

前言

 

很多朋友都问过我,开源技术究竟好在哪里,一个公司拥抱开源是不是加分项,参与开源的人是不是很酷的技术大牛。本文抛开虚浮的情怀和热情,我们从商业和管理的角度看一看软件开源。

 

1. 本质是对抗认知垄断

 

远古期的计算机没有版权概念,每一份代码都是一份全人类都可以学习借鉴的教学数据。

 

随着商业软件的兴起,商业软件公司倾向于将代码当做秘方保护,引入了版权的概念。闭源软件实操过程中有如下缺点:

 

  • IT技术无法跨软件跨公司进行交流,行业人才培养的很慢;

 

  • 一个软件只能在很小可控范围内迭代,软件的进步速度偏慢;

 

  • 公司的商业策略以盈利优先,可能会掐灭技术革新;

 

  • 一个黑盒化的交付物,交付质量只能靠商业信誉保障;

 

  • 商业软件总是试图建立垄断,黑客们警惕着垄断的恶行。

 

在版权限制下感到压抑的IT精英,自发推动开放源代码的交付方式,其中最出名的是GNU计划。GNU计划的重点是对抗IT技术认知垄断,更自由的传播IT知识;GNU等开源计划既不是为了开源公司的商业利益,也没要给参与者发高级技工证书,更不会因为开源而强行免费。

 

在上个世纪程序员人数很少但都是精英黑客,参与开源的目的是以码会友,不会发表太烂的代码,顺着开源社区容易找到技术大师,几个IT高手也容易蹭出商业火花。

 

2. 商业公司主导开源

 

现在越来越多的公司参与到开源项目中,甚至主导了很多商业开源项目;现在开源项目的精英理想主义色彩褪去,但打破认知垄断的初心没变。

 

开源软件是打破软件专利垄断,而且大部分都很便宜甚至免费,这就很适合做商业降维打击。这个篇幅太长我不展开细谈,只抛出三个案例:

 

  • IBM提供AIX技术帮助完善了Linux,SUN和微软的服务器操作系统都不太好卖了。

 

  • Java、Golang的开发者生态比 dot Net要友好热烈,这些程序员的待遇差距越来越大。

 

  • 硬件公司Intel支持开源云计算项目,这些软件可以促进自家CPU、主板、SSD和网卡的销售。

 

中国有句俗话叫“财散则人聚”,老外终于学会了“源码散则厂商聚”。对于以IT技术为核心竞争力的企业,降低门槛既可用于绝地反击,又可用于做大行业生态。

 

3. 开源生态如何盈利

 

在开源模式下,厂商仍然有很多盈利模式,甚至比闭源授权更赚钱:

 

  • 开源软件不是免费软件,仍然可以收取授权费;社区主导的项目有GPL等方法避免被厂商剽窃代码;厂商主导的开源协议可以禁止其他人用于商业竞争,开源专利也是专利。

 

  • 开源软件可以收取维护和技术咨询费用,Redhat起家是做Linux系统支持,也卖过JBOSS等软件的文档

 

  • 核心基础功能开源免费负责扩大客户群,管理平台和高级功能是闭源付费。比如Extmail邮件系统就有企业版,Zstack云计算平台也有企业版。

 

  • 个人开源软件都接受捐赠,最近几年他们可收了很多比特币,哈哈^_^。

 

总而言之,IT精英需要用开源自由交流思想,IT公司要用开源推进产业发展,但IT工程师不会给全世界做义工,实际上蛋糕越大我们吃的越饱。感谢开源赐予我们食物,赞美图灵和Stallman。

 

4. 开源也是部门福利

 

有一类拥抱开源的公司——比如LinkedIn开源了Kafka、爱奇艺开源了Andromeda和DPVS,他们的主营业务不可能从开源软件牟利,他们做开源更多是技术团队的内部福利。

 

这些部门需要高素质的技术人才,组织有挑战的开源项目就像种下了梧桐树,更方便吸引到金凤凰。员工参与这些项目验证和增强个人能力,没参与项目也是在个有实力有美誉的技术部上班,这对技术人员是比年终奖更好的奖励。

 

某些技术大牛承认把内部项目开源了就能带着源码跳槽,但不开源脑子一样有代码。而这套源码依赖的环境也容易招到新牛补位,招聘高级研发的JD是千篇一律,而最佳验证源码的环境是万一挑一。

 

这类公司肯开源的项目都不是核心竞争力项目,相当于零成本结了个善缘,比单纯靠高薪招人要灵活方便。

 

5. 开源只是善因不算善果

 

开源是个高热度的正向概念,自然也就少不了搭便车蹭热度的投机分子。

 

开源社区参与者的素质在变低,开源社区的代码质量在变差。菜鸟一样能参与开源项目刷履历,而主导开源项目的可能是个技术投机分子。老一代精英做的开源项目有顶层架构设计和全场景测试,而码农主导的低质量项目只看代码和功能。

 

开源社区的技术交流氛围也在发生变化,开源本意是以码会友,但现在提pr提issue的码农,有几个看过前人写下的代码的?大部分都是看一眼说明文档就来github上指点江山了。现在的码农只关注能出名能赚钱的热门项目,像OpenSSL这种核心项目,冷清到几乎没人关注。

 

对于一个公司来说,“拥抱开源”只是一种融入生态的策略,投入大量码农并不等于主导项目,主导项目不等于独裁式控制项目,独裁制控制项目是逼着Mysql变成MariaDB。大公司投入再多码农去做开源,本质上还是在开源协作场景里增加自己关注的功能,无关道德只有利益。

 

结束语

 

开源是一件好事,但只有对的人才能把这件事做好。希望本文让大家评估开源的商业价值、产品价值、管理价值时,能有一些新的认识。

 

附录:关于开源软件质量

 

一切软件都是人写的,设计和实现者的能力决定了软件的质量。

 

软件的质量并不能简单看开源还是闭源,软件的设计思路一样能被相互借鉴,但架构不同实现手段也不能抄袭;这就像做开源的猪肉饺子和闭源的肉沫狮子头,两者可以相互借鉴口味和风评,但你看透我的原材料也不能照搬抄袭。

 

开源软件的安全性在于大家都能看到软件源码并报告问题,但前提条件是大家都肯看源码,能发现有安全漏洞,还肯上报安全问题。OpenSSL的heartbleed漏洞存在了好几年时间,但骇客是静悄悄的利用该漏洞,而不做任何漏洞上报。而闭源软件的安全问题,和开源软件一样看写代码和查漏洞的人。

 

新接触开源软件的开发者经常带着皈依者狂热去鼓吹开源软件质量,但这种狂热没有实质性帮助,贡献更好的代码、观摩精妙的架构,才是开源精英应该做的事情。