Home

Oracle: 复杂性战争

我并不想把这篇文章,像之前那样,写成一份对于 Oracle 和 Larry Ellison 的侧写。那样写可能很好读,也更容易收集资料和写作。开头放上一段创始人的生平,然后从中找到一些可疑的线索,之后在企业的某个关键时刻翻出来,塑造一种戏剧性。

这篇文章不是这样的,但它与我刚刚读过的 Softwar 这本书中,Larry Ellison 带领 Oracle 在二十多年前的那场战争有关。

软件战争

2000 前后,Oracle 已经凭借出色的技术和良好的兼容性取得了初步的胜利,当时最大的竞争对手 Infomix 已经摇摇欲坠。但 Microsoft 和 IBM 两家巨头开始进入企业级数据库市场,IBM 直接收购了 Infomix 的数据库业务并更名为 DB2,开始了新一轮的进攻。企业数据库最核心的应用就是 ERP(企业资源计划)系统,德国的 ERP 巨头 SAP 也开始利用自己的优势展开攻势(一个值得注意的细节是,SAP 的五位创始人全部来自 IBM)。同时,多个小型竞争对手,比如 PeopleSoft 和 Siebel 分别从 HRM(人力资源管理)和 CRM(客户关系管理)入手,以 best-of-breed(可以翻译为「品类最佳」)的标签抢夺企业客户。

如果做一个粗略的简单分类,我们可以认为,Oracle 在数据库软件上的竞争对手主要是 IBM 和微软。而在 ERP 系统上,主要竞争对手是 SAP。而在一些其它的小品类上的竞争对手就是 best-of-breed 的 PeopleSoft 和 Siebel。

IBM 还扮演了另外的一个角色:就是在企业购买了数据库软件后的实施咨询顾问。同类的公司还有 Accenture 等。出现这个角色的主要原因是每个企业的业务流程都略有不同,需要咨询顾问进场对业务流程进行梳理和整合,提出软件定制的需求,最终让软件和业务流程能够互相匹配。这个生意看起来并不性感,但它却能够在「咨询」过程中,影响企业客户对软件采购的选择。而且,咨询顾问能够直接面对企业的最高层管理者,而不仅仅是面对负责 IT 系统采购的决策人。在如此复杂的竞争局面下,「向上一级」能够创造巨大的销售优势。这也使得 IBM 在面对企业销售的时候,会以自己的 DB2 作为数据库底层,加上 SAP 的 ERP 系统,再辅以 PeopleSoft 或 Siebel 等 best-of-breed 作为选项。

可以认为,这个销售策略是一种围攻。IBM 联合了众多竞争对手,以 best-of-breed 为进攻的号角,来和 Oracle 竞争。

在二十年前,有实力购买数据库软件的公司最看重的是 ERP,这是因为它们大部分都具有很多「企业资源」需要管理。这包括数不清的库存,包括成品、半成品、零件,散落在全世界各地的厂房中,经过无数次的搬运和流转,最终才能转化为现金流。Oracle 在当时最大的客户 GE 就是这样一个例子。在我职业生涯的早期,也操作过 Oracle 简单迟缓的界面,它和我们现在所理解的企业软件界面截然不同,但它能够把海量资源信息储存下来,并分配到业务流程中去,让办公室、车间和实验室里的员工可以进行增删查改操作。最终,这些信息会导出到 Excel 里面,再经过数次处理,成为管理会议上展示的精美 PPT。

显然,能够从如此庞杂的信息中,准确而快速的发掘有价值的洞察,是一场对复杂性的战争。IBM 给出的解决方案,好像是一个「缝合怪」,企业将使用不同供应商的解决方案——而不同的业务部门和区域很可能选择了不同的供应商——再通过「整合」的方式把数据汇集到一起。企业软件市场上的竞争映射到了企业内部就成为了巨大的麻烦:多个数据库和多个应用之间数据口径混乱,无法沟通。

Softwar 书中写道:

The overwhelming reason, Ellison believed, for the failure of information technology to deliver on its overblown promises was the fragmentation of information that resulted from the computing industry’s addiction to complexity. Expensively assembled best-of-breed enterprise computing systems, in which the cost of implementation might be ten times as much as the original software licenses, were Ellison’s latest target but the origins of his “war on complexity” went back more than a decade.
埃里森认为,信息技术未能实现其过度夸大的承诺的压倒性原因是计算行业对复杂性的迷恋所导致的信息碎片化。昂贵的组装的「品类最佳」企业计算系统,其实施成本可能是原始软件许可证的十倍。这是埃里森最新标靶,但他的「对复杂性的战争」的起源可以追溯到十多年前。

Larry Ellison 自己用了 War on Complexity 这个饱含他个人色彩的短语来描述这场战争。大型企业内部充满了复杂性,特别是在 2000 年前后,制造业企业开始了大规模的全球化,拥有数以万计的、分布在数个时区的员工队伍早已是家常便饭。Oracle 自己也是这样的一个局面,但这家技术公司内部竟然在当时还没有一个统一的邮件系统——读到这个细节的时候,我还是有点震惊的,但这正让我们看到,这场对复杂性的战争到底有多么困难。

讲到这里,我们不得不提到科斯先生的《企业的本质》。这篇传世之作用交易成本的概念解释了企业为什么要在市场机制之内再塑造内部结构:如果一件事在企业内部通过协作的方式能够以更低交易成本的方式完成,那么就不需要到市场上交易,这样,整体的经济效率就能提升。而在我们上面看到的情况下,企业内部充满了复杂性,交易成本高昂,管理寸步难行。

面对这个局面,Larry Ellison 的应对策略是:成立自己的咨询顾问业务;同时,以 Oracle 自身为客户,开发全新的整套解决方案 eBusiness Suite;对 best-of- breed 开展收购。换句话说,Oracle 要以内聚整合的方式对抗围攻。

这个方案的实施过程是昂贵的,经历了数次发布延期,和在发布后数不清的软件缺陷。Ellisson 希望通过把数据库和上层的 ERP、CRM 等应用程序整合起来,统一企业内部的流程和数据。这不仅仅是技术上的挑战,更是对销售和实施能力的挑战。在此之前,企业会采购多个供应商的软件,再由 IBM 这样的咨询公司进行整合实施。如果 Oracle 提供一个整体解决方案,那么咨询顾问的价值就降低了。

完成如此复杂软件系统的开发难度极高,每个企业的内部业务流程也难以标准化。在灵活性和整体性之间,要做到微妙的平衡。Oracle 先是为自己的业务流程设计开发,然后再把产品推向客户。复杂系统必然会出现问题,而修复这些问题又会引发新的问题。加上企业软件较长的销售和实施周期,更让反馈的时滞延长,让 Oracle 难以快速应对来自竞争和顾客的反馈。Oracle 的管理层出现了动荡,股价在这段时间里也一蹶不振。资本市场当然无法从外部视角理解内部出现了什么问题。在外部看来,这是两条软件设计路线的战争,一条是 Oracle 的 eBusiness Suite,另一条则是 IBM/SAP + best-of-breed。

Ellison 从未认为这是软件和软件之间的战争,这是复杂性之间的战争。一条路线是内聚所有的复杂性,而提供给客户一个简单一致的解决方案,另一条路线则是把问题交给客户,让他们各自处理各自的外部性。

复杂性战争

Oracle 是这场复杂性战争的主角。以一家企业之力,打造一个庞大而复杂的系统,相对于去中心化的网络连接,是难度更高的。然而构建和管理复杂系统的能力是形成垄断的必要能力。Oracle 不是在销售软件,而是在通过销售软件来构建世界。在这个「世界」之中,选择是无限的,但又不会超出构建者所提供的选项,参与者无论是做出什么样的选择,都没有跳出构建者的设计。

在这个语境之下,「世界」和「垄断」(和后面会提到的「系统」)是同义词。如何看待 EPIC vs. Apple 的反垄断官司呢?这是两个「世界」的对抗,也是新垄断对即有垄断的宣战。「网络效应」也是相近的概念,在「世界」内部构建彼此关联的网络,是世界构建者的必由之路。但对于旁观者而言,一方面对网络效应钦羡不已,另一方面也要能够理解构建者所面对的烦恼。这种烦恼是系统逐渐失控的慢性病变,其危险之处在于难以觉察,且会自我增强。

因此,构建者需要是像 Ellison、Jobs 或 Bezos 这样的控制癖:

The problem was that I failed to be clear as to what I meant by "customize." Of course customers can tailor our applications to their business processes, but they should never modify our software. Customers can add to our applications and connect our applications to non-Oracle applications, but they should never go in and change the application program itself. If they do that, they will create quality and support problems and find it difficult to upgrade to new versions of our applications products.
问题是,我没能清楚地说明我所说的「定制」是什么意思。当然,客户可以根据他们的业务流程定制我们提供的应用程序,但他们不应该修改我们的软件。客户可以添加到我们的应用程序中,并将我们的应用程序与非 Oracle 应用程序连接起来,但他们绝不应该进入并改变应用程序本身。如果他们这样做,就会产生质量和支持问题,并发现很难升级到我们应用产品的新版本。

他对于「定制」的看法就是:不要「定制」。按照这种指导思想,系统的灵活性体现在系统内部,而非通过把系统作为更大的系统的一部分,而把系统内部的问题转移到外部来解决。举例来说:如果 Oracle 提供的软件不能完全符合客户的要求,那么做法不是定制修改 Oracle 的程序,而是通过「与非 Oracle 应用程序连接」来打补丁。换句话说,构建者不能向参与者开放「世界」的内在结构,否则,「世界」终将失控。

世界与连接

Oracle 并没有发明关系型数据库。这个伟大的发明最早出现在 IBM 早年发表的一篇无人问津的论文中,Ellison 和他的合伙人们发现了其中的巨大潜力,并将其转化为世界上最重要的软件系统。Ellison 讲过一句话,让我进一步理解了复杂性战争的要义:

The more we know, the more relational our decisions.
我们知道的越多,我们决策就越是相互关联的。

这句话短小精悍,但却以一种全新的角度再一次重申了「世界」的价值在于它的内在连接,而非外在连接。这听上去不好理解,或者在理解之后不容易认同。我认为,这背后的思考基础在于系统论中的基本认知:

New Systems mean new problems. (John Gall, Systemantics: The System Bible, 2012)
新的系统意味着新的问题。

通过外在连接解决内部问题,就是在原有的系统中引入了新的系统——而新的系统又会带来新的问题。一个所谓去中心化的「开放世界」固然有它优雅之处,但实际上,它是在用无限递归的方法不断的(通过构建外部连接)转移问题到新的系统中去。人类认知无法完全理解「无限」的概念,目光短浅的我们可能会认为问题在视野里消失了,就是真的消失了;或者当系统尺度足够大的时候,问题就会彼此抵消而可以忽略不计(e.g. 指数基金)。

系统和问题是共生的,甚至可以认为两者也是同义词。我们不能奢求存在一种完美设计能够让系统可以平滑运转。正如芝加哥大学的 Richard I. Cook 博士讲道:

... complex systems run as broken systems. The system continues to function because it contains so many redundancies and because people can make it function, despite the presence of many flaws. After accident reviews nearly always note that the system has a history of prior ‘proto-accidents’ that nearly generated catastrophe. Arguments that these degraded conditions should have been recognized before the overt accident are usually predicated on naïve notions of system performance. System operations are dynamic, with components (organizational, human, technical) failing and being replaced continuously. - https://how.complexsystems.fail/
... 复杂的系统是作为破碎的系统运行的。系统继续运行是因为它包含了许多冗余,也因为人们可以在存在许多缺陷的前提下使它运行。事故发生后的审查几乎总是注意到,该系统有一个先前的几乎产生了灾难的「原事故」的历史。认为这些系统降级状况应该在事故发生之前就被认识到的论点,通常是建立在对系统性能的天真概念上。系统的运行是动态的,组件(组织、人、技术)不断失效和被替换。

我们如何看待各种各样的小问题?它们很恼人,又难于处理,大部分都是因为过于琐碎而难以找到规模化的解决方案。这就是为什么我们不能过高的要求扫地机器人处理掉所有的家务琐事——解决小问题不具有广泛的规模经济价值,因而市场上难以出现具有规模经济的供应商。这时候企业内部来解决这些问题是更合理的——家务事最好是自己动手解决。但问题是,没有人想要做家务事。

Ellison 的 eBusiness Suite 是从 Oracle 自身开始动刀的:先解决自己企业的问题,然后再推给客户。Ellison 当年的 sales pitch 就是 eBusiness Suite 已经帮 Oracle 节省了数以十亿美元计的成本,那么为什么你的企业不想试试呢?这就像是提供了一种神奇的配方,能够魔术般的带走所有琐事的烦恼。人们在这种美好的愿望中签下了订单,进入了 Oracle 的「世界」(Oracle 的年度大会就叫 OpenWorld,尽管我认为它并不开放)。


Ellison 认为,自己真正的敌人是 Microsoft,而非 IBM。他希望 Oracle 超越 Microsoft 成为第一大软件公司,但始终没有成功。他看到了 Internet 的潜力,但又过早提出了 Network Computer 的概念;收购了 Sun Microsystems(最重要的资产是 Java 和 OpenOffice.org),但又放弃了收购 Netscape。这些尝试就像散落在各处的棋子,难以撼动 Microsoft 的「世界」。从我的视角来看,两家公司甚至没有真正的交锋过。Microsoft Office 就是企业办公的全部,无论是撰写报告还是数据分析,大部分人看不到也意识不到数据应该如何存储才是要紧的问题。

Leon Lin: Inception, Nolan, and Notion

我们很难要求每个人都能理解到如此纵深的业务逻辑。今天的企业软件越来越强调「可视」和「协作」,以优雅简洁的界面来掩盖底层的复杂性。这是复杂性战争的另外一种努力,而我们从中已经看不到 Oracle 的踪影。企业自身也在被消解,它们不再拥有大量的物理资产,团队规模也越来越小,真正重要的信息变成了人们头脑中的知识、经验和见解。这时候,对复杂性的战争转移到了如何帮助人们达成共识上,而非把仓库里的豆子数清楚。

← Back to Newsletter Archive