一种商业模式的发展初期一定是野蛮生长的,你可以想象最初的农民从游猎和采摘转向农业生产的过程,他们没有方法没有工具,没有人能帮助他们,甚至会有人嘲笑他们。于是他们探索方法论,并自己制造工具,正如现在互联网商业模式下的先驱们所做的事情是一样的,为了实现商业目标,他们利用一切能利用的现有技术手段(比如开源),大量的堆砌人力资源,最终开创了互联网商业模式。
正如农业与狩猎的对比一样,新的商业模式对传统模式拥有巨大的优势,于是大量的人逐利而来不惜代价的投入互联网模式。但是,可以预见的是后来者大多会失败,因为只有巨大的财力才能支撑这种野蛮生长,当农民把大量的资源用于制造农具的时候,他就没有更多的资源用于农业的生产了,所以社会分工这种可能是源于蛮荒时代就存在的自然现象就会再次发生,专业的农具工匠把农民从自己不擅长的领域解放出来,这样农业这种崭新的商业模式才得以高速稳定的发展起来。同样的,可以预见的未来,野蛮生长的互联网模式一定会消亡,专业厂商会提供更加高效和低廉的工具,帮助任何一个希望采用崭新商业模式的人轻松跨越技术门槛,聚焦到自己熟悉的业务领域。
创新颠覆的是传统,那么哪些传统会被颠覆呢?我认为,科学的方法论支撑的传统是不会被颠覆的,比如社会化分工合作是基于人性基础上的符合逻辑的推论,只要这个世界的物理规律不变那么人性就不会变,人性不变那么社会化分工合作就是人类社会的必然趋势。
那么传统的应用软件开发模式已经从作坊式进化到了大团队协同模式,从需求、设计到开发、测试再到部署、运维都是由专业化很强的团队来分工协作的。但是互联网模式却颠覆了这个模式,他们强调一体化即软件的全生命周期由一个团队独立完成。我们先不说这种模式的好坏,先来分析为什么会出现这样模式,其实原因就是他们做的业务没有任何现成的技术或产品能满足需求。这就像当初从猎人转变为农民的过程一样所有工具和方法都要自己去探索,那么虽然分工还是需要的,但是比分工更重要的是更强的执行力和更快的反应速度。同时,由于新的商业模式吸引了大量的资本,所以互联网巨头们可以利用资源优势随意的“任性”。
基于以上原因,那么互联网模式的一切行为都是可以有合理的逻辑解释的:
1、 大量使用开源
由于人的逐利行为,任何非主营业务的投入都是希望越少越好,互联网模式也是如此,他们清楚的知道技术并不是他们的主营,所以并不会真的野蛮到所有技术都自己开发,能有现成的就用,更关键的是这些技术都可以根据自己的需要进行修改。所以,互联网模式下,利用开源搭建自己的业务应用是合情合理的。
但是,开源带来了另外一些问题,比如对开发人员的能力要求很高、后期维护成本居高不下、出现问题难以解决等等。所以,采用互联网模式的企业需要技术“牛人”来支撑。
2、 采用DevOps开发运维一体化模式
DevOps运动是在这些“牛人”驱动下发展的,其实这个运动更像是系统软件开发而非应用软件开发。当我们去开发一个生命周期长达几十年的底层或中间件产品的时候,会采用类似的模式。我们知道,架构是一种平衡和取舍,底层产品和应用产品的差异在于平衡性能、功能、可靠性和成本等等诸多因素。
显然,互联网模式有大量的资源,他们可以不考虑这种平衡,可以任性的使用大量的“牛人”和海量的技术人员来完成他们的业务应用系统。
我认为,互联网模式是无法大规模复制的,只有前期的几个巨头能够支撑上万人的研发团队来满足业务的需求,任何其他企业妄图复制互联网模式只可能赔掉底裤。其实,互联网模式不需要复制,因为他最终会走下神坛回归科学的方法论,科学告诉我们唯一的出路就是更精细化的分工,任何打破规律的东西都是暂时的不可持续发展的。
我们讨论互联网模式的前景,其实是在讨论开源产品的前景,因为大多数互联网模式都是建立在开源软件基础上的,这两者相辅相成相互推动。我本人是一直从事商业软件开发的,从这个角度看如果我说开源存在这样那样的问题,就显得有点酸,所以这一段我不会举任何例子来证明什么。而且首先,我对开源项目致以最大的敬意,从推动社会进步和改变世界的角度看,开源做出了巨大的贡献。
1、 从人性看
我们都知道人性是自私的,我们每个人都会为自己的利益而奋斗,希望获得社会的承认。我也不否认可能会有真正的大公无私的人,去把自己劳动和创造完全不求回报的贡献出来。但是,如果说每个开源项目都是由如此伟大的人组成的,我相信这已经颠覆了人性了。我更愿意相信参与开源项目的人,都是抱着某种利益需求的,这样开源反而能走的更远些。
我斗胆来一点点的搜寻开源项目的利益链条和前进动力。
2、 为什么要开源?
我们知道任何事情都有其内在的逻辑因果,开源这件事也不会例外。传统的商业模式都是闭源的,这里面的因果非常简单:你通过大量的投入,获得了一种非常核心的关键技术,这种技术足以遏制和超越对手(甚至改变世界)。那么,你难道不想收回投资吗?难道不希望自己的技术得到社会的认可,并让所有为这个技术做出贡献的人获得更好的生活嘛?显然,直接公开这个核心技术不但是对自己劳动的不尊重,也是对整个团队的不尊重。我觉得像知识共享这样的说法我是不认同的,知识分为两种:一种是对自然的发现,一种是从无到有的创造发明。前者我们知道确实是被共享的,究其原因是你没有办法阻止其他人去发现相同的自然规律,而且现行的社会规则会给予第一个发现者非常好的回报;而后者则不同,对于一种从无到有的创造,社会能给予的唯一回报就是商业回报,如果这种发明被迅速模仿甚至公开,那么任何回报都没有,也可以变相的认为毫无价值。如果是一种毫无价值的知识,还有必要分享吗?
所以,我们知道为什么有闭源,就可以分析出为什么会有开源了。一种可能是某个伟大的个体靠个人的力量掌握了一种核心技术,并无私的公开出来;还有一种可能就是无法在商业竞争中打败竞争对手,又不甘于自己的努力和劳动完全被埋没,于是将核心技术公开出来;当然,还有一种是出于人性对商业垄断的厌恶,自发的组织起来进行的“抵抗运动”。
3、 开源是如何被推动的?
任何一件事情要被推动其背后必然有商业利益存在,开源也不会例外。在共产主义实现之前,我们找不到任何符合因果逻辑的公益行为来推动理想的开源,而开源本身的用户群也都是商业群体,我不太能理解一个组织无偿的投入资金和人力其目的仅仅是为了其他商业机构能够更低成本的去获利。
所以,开源的第一推手显然还是商业机构,商业机构推动开源无非有几种目的:第一种为打击竞争对手,这从商业上讲是非常划算的买卖,其效果我们也是有目共睹,比如高端产品用我的低端产品用开源的,从而遏制竞争对手从低端做起;第二种依然是打击竞争对手,大家知道世界上所有的事情都已经有人在做了,任何一个行业都是有准入门槛的,这包括行业知识的壁垒、技术的壁垒、资金的壁垒、客户群的壁垒等等,那么任何一个可以打破某种壁垒的方法都是会受到无孔不入的资本的青睐的,开源就是一个打破技术壁垒和知识壁垒的好手段;第三种依然是竞争需要,开源的出现为原来壁垒森严的闭源生态带来的不仅仅是商业上的冲击,更多的带来的是对人性的诱惑,传统的程序员可能做一辈子码农都没有机会接触一个商业软件的核心引擎,那么现在机会来了任何人只要愿意都可以随意的浏览和使用开源大牛们构造的核心。从程序员的角度讲,掌握了开源就拥有了更好的职业生涯和竞争力。
4、 开源和闭源之争
只要有合乎逻辑的利益存在,那么就会继续存在。无论开源还是闭源,显然都是具有社会商业价值的,闭源产品为创新者和客户带来价值,开源项目同样为客户和众多二次创新者带来价值。选用开源还是闭源,完全是一个企业基于自身现状的一种考虑,无关乎开源闭源的优劣。其实任何优劣都会因需求与资源的不同而变化,现在舆论过多的强调了开源的优势,从某种意义上任何开源都会转化为闭源,比如你还能认为现在还在使用Tomcat2.0的企业是基于开源的吗?
一个企业做出选择一定是在平衡各种不同的风险和收益,如果盲目的跟风那么只会自食苦果。
5、 我对开源的看法
从我个人观点来说,我觉得拥有第一创新的开源项目是最具生命力的,那些竞争失败而开源的、为打击竞争对手开源的以及对成功商业产品模仿的开源项目,我是不太看好的。从结果上看,我认为一个开源项目,如果不断地有商业机构肯花费资金来基于它进行闭源研发,我觉得这就是一个优秀的开源项目,换句话说只有能成为闭源的开源项目才是有商业价值的好项目。
从商业角度看,开源项目在一个商业模式初期是非常有竞争力的,野蛮生长需要的就是速度和灵活性以及大量低成本的试错;但是一但商业模式趋于稳定,那么稳定可靠低成本的闭源产品肯定会替换开源模式,如果说IT系统是运载企业前进的汽车,毕竟不是谁都有财力为自己量身打造一款专属的汽车的。