4.3 “软件产业属于制造业”是错觉
首先必须明确,计算机程序像所有工具或生产资料一样,具有两种不同的经济价值:使用价值与销售价值。程序的使用价值在于它能让工具的生产力倍增;而它的销售价值在于作为一种可销售商品的价值(专业经济学家的说法是,销售价值是指最终产品的价值,使用价值是指中间产品的价值a)。大多数人往往以为软件生产的经济学是“工厂模式”b,这种模式基于以下基本前提:
- 大多数开发者的时间报酬,来自程序的销售价值。
- 软件的销售价值与其开发成本(即实现其功能所需的资源成本)及其使用价值成正比。
换言之,人们普遍认为软件具有典型制成品c的价值特征,但这两个假设都是错误的。
首先,为销售而编写的代码只是编程冰山的一角。在微型计算机普及之前曾有个公认的说法:全球90%的代码都是由银行和保险公司内部开发的。从宏观行业格局看,如今这一情况已发生改变——随着其他行业数字化程度的加深,金融业的相对份额想必已经下降。然而,从微观的企业实践来看,软件开发的基本模式并未改变:我们稍后将用实证数据表明,仍有约95%的代码由企业内部团队自行开发。
很多系统都有这类代码:各类管理信息系统(MIS)、所有大中公司都需定制的财务与数据库软件、设备驱动程序这类技术含量高的代码——几乎无人能靠单独销售驱动赚钱(这一点我们后文再谈),以及各种嵌入在日益依赖芯片/嵌入式系统的机器中的代码,从机床、喷气客机到汽车,乃至微波炉和烤面包机。
这类内部代码大多与应用环境高度耦合,导致它们极难复用或移植。(无论应用环境是商务办公场景的整套业务流程体系还是联合收割机的燃油喷射系统,皆是如此)正因如此,一旦应用环境发生变化,软件就需要持续维护以保持同步。
这就是“维护”,任何软件工程师或系统分析师都会告诉你,维护工作占据了绝大部分程序员超过75%的工作量。因此,大部分程序员的工时都耗费在了编写或维护那些完全没有销售价值的内部代码上。读者若想验证,随便翻看一份报纸的招聘版就能明白。
读者不妨亲自做一个很有启发的实验: 找一份本地报纸,翻到招聘版看看编程、数据处理和软件工程类职位,找出那些涉及软件开发的岗位,然后判断一下这些岗位开发的软件是自用还是用来销售的。
很快你便会发现,即使对“用于销售”作最宽泛的定义,至少95%的岗位薪酬,都完全来自软件的使用价值(即中间产品价值)。这便是我们认为仅有5%的软件行业是由销售价值驱动的理由。不过请注意,本文后续的分析对此具体数字并不敏感;即便该比例是15%甚至20%,其经济学结论依然适用。
我在技术会议上发言通常会先提出两个问题:观众里有多少人从事软件编写工作?又有多少人的薪水与软件的销售价值直接挂钩?对于第一个问题,几乎全场举手;而到了第二个问题,则应者寥寥,而两个问题举手人数的悬殊对比让听众感到惊讶。
其次,“软件的销售价值与其开发或重置成本d挂钩” 这一观点,只需观察消费者的实际行为便不攻自破。确实有许多商品(如食品、汽车、机床)在折旧前的销售价值在一定程度上符合此比例关系;甚至有许多无形商品e(例如音乐、地图或数据库的复制权)的销售价值也与开发和重置成本高度相关。
但软件截然不同:一旦软件供应商倒闭或产品停服,无论它理论上的使用价值有多高,或是功能等效产品的开发成本多高,消费者愿意支付的最大价格会迅速降到接近零(要验证这一点,去附近软件商店的清仓区看看就知道了)。
供应商退出市场时,零售商的反应很有启示意义:他们看清了一件供应商常常忽略的事。那就是,消费者的支付意愿,取决于他们对未来服务的预期价值(这里的“服务”包括升级、增强和后续支持)。
因此本质上讲,软件行业在实践中更接近服务业,却误以为自己属于制造业。
我们不妨想想,为什么大家通常会有相反的看法。原因可能很简单:软件行业里,真正把软件当作“产品”来制造和销售的那一小部分公司,恰恰也是唯一会在市场上打广告的。同时,人们心里普遍有种偏见,觉得制造业比服务业更“实在”,毕竟造出来的东西看得见、摸得着1,这种想法可能也在暗中影响我们的判断。另外,那些最显眼、广告打得最凶的软件,往往是像游戏这类短期消费型产品,它们本身就不太需要后续服务(但这只是例外,不是常态)2。
还有一点值得注意,“软件是制造业”这个错觉,催生出的价格结构已经病态地偏离了实际成本。如果(正如公认的那样)一个典型软件项目超过75%的生命周期成本都花在维护、调试和功能扩展上,在这种前提下,收取高额一次性买断费、却只提供象征性服务甚至完全不收取服务费的模式,注定是双输局面。
消费者是受损的一方。因为,即便软件业本质是服务业,但在“工厂模式”下,所有激励机制都与提供合格服务的目标背道而驰。如果供应商靠现成的软件产品赚钱,那么他们的大部分精力都会放到量产推销这些产品上;无法创造利润的客服部门,则会沦为最无效员工的“收容所”,他们能获得的资源,也仅够避免流失关键数量的客户而已。
更糟的还在后头。软件一旦投入使用,服务需求便随之而来,除非对服务单独收费,否则利润空间将直接受到侵蚀。在开源模式下,追求的是尽可能庞大的用户基数,以获得最广泛的反馈和最具活力的衍生市场;而在闭源模式下,企业希望买家越多越好、实际用户越少越好。因此,“工厂模式”的内在逻辑,最终会毫不意外地奖赏那些生产 “货架软件” 的厂商,他们的产品营销做得无懈可击,足以畅销一时,实际却几乎毫无用处。
这一模式的另一面在于,从长远来看,采用这种“工厂模式”的大多数厂商也终将失败。想要依靠固定售价来支撑持续的服务成本,只有市场处于高速扩张期才可能实现,这就必须让未来的收入足以覆盖因昨日销售所产生的服务与产品生命周期成本。一旦市场成熟、销量放缓,多数厂商只能被迫停止服务与技术支持,让产品沦为“孤儿软件”来削减开支3。
无论厂商是明确行动(停止产品支持)还是暗中操作(让产品难以获得售后支持),结果都会让消费者转向竞争对手,因为这种做法会破坏产品的预期未来价值,而这种价值恰恰依赖于持续的服务。短期内,厂商可以通过发布看似新版本、实则仅为修复错误的更新来勉强应对,并为它贴上新的价格标签。但消费者很快就会感到厌倦。因此,从长远来看,厮杀中唯一的活路是垄断,使市场只剩下唯一的赢家f。
实际上,我们已经一再看到,这种因服务支持枯竭而导致的失败模式,足以让市场中实力强劲的亚军也走向消亡。(对于任何曾梳理过专有PC操作系统、文字处理软件、会计程序乃至整个商业软件历史的人来说,这一规律应当尤为清晰。)“工厂模式”所催生的这种扭曲的激励机制,最终必然导向“赢家通吃”的市场格局,即使是最终的赢家,其客户也终将以损失收场。
若不采用“工厂模式”,出路何在?要真正高效地应对软件生命周期的实际成本结构(“高效”在此兼指日常语义与经济学术语中的涵义),我们就必须建立一套基于服务合同、订阅模式、厂商与客户持续价值交换为核心的定价体系。这正是像ERP(企业资源规划)系统这样的大型商业软件产品的已采用的通行模式,这些产品的开发成本极为高昂,任何固定售价都无法覆盖所有成本;像Baang和Peoplesofth这样的公司实际上是通过售后咨询服务盈利的。在自由市场追求效率的内在驱动下,我们可以预见:这将是成熟软件产业绝大多数领域最终的定价结构。
以上分析让我们初步看清:开源软件之所以对现有秩序构成日益严峻的挑战,不仅在技术层面,更在经济逻辑。软件“自由化”所产生的效应,似乎正在迫使我们进入一个由服务费主导的世界,并由此揭示:闭源软件中那些保密代码的销售价值,作为商业模式支柱是何等脆弱。
这一转变带来的阵痛,或许并不如表面看来那般剧烈。许多消费者发现,盗版软件(尤其是游戏、操作系统和生产力工具)很容易获得,因此,在消费者眼中,为许多专有软件付费的理由只在于它能换取其他东西:厂商支持、纸质手册,或是一种道德上的心安。商业化发行的所谓“自由”软件,其定价理由往往也与此如出一辙,唯一的区别在于,这些厂商不会自欺欺人地以为,软件代码本身就一定对客户有价值。
“自由”一词的误导性还体现在另一方面。降低商品本身的成本,往往会提升而非抑制对其支撑体系(人力与基础设施)的总投入。汽车价格下降,反而会推升对汽车技工的需求。同理,即使在开源世界中,目前那5%依靠软件销售价值获酬的程序员,也不太可能遭受损失。在这场转型中真正受损的,不是程序员,而是押注闭源策略、且该策略在经济上已难以为继的投资者。
-
如果我们假设编程人才在项目用户群中是均匀分布的,那么随着项目规模扩大,人才供给不足的问题确实会与用户数量成线性比例增长,然而实际情况并非如此。第2节讨论的激励机制(以及一些更常规的经济学原理)意味着,合格的人才会主动寻找与自己兴趣匹配的项目,项目也在寻找他们。因此理论(以及经验)表明,最有价值(最合格、最有动力)的人才往往会在项目生命周期的相对早期就发现他们适合的项目,随后这样的人才会逐渐减少。虽然缺乏硬数据,但根据经验,我强烈怀疑在一个成长型项目的生命周期中,吸纳人才的过程往往遵循一条经典的逻辑斯蒂曲线(S型曲线)。
-
肖恩·哈格里夫斯(Shawn Hargreaves)在其文章 《参与开源游戏》(Playing the Open Source Game,链接:http://www.talula.demon.co.uk/games.html)中,对开源方法在游戏领域的适用性做了精彩分析。
-
给财务人员的提示:即便我们从不变美元切换到折现值的视角i,“服务成本终将淹没固定预付费”这一论点依然成立。因为未来的销售收入会与未来的服务成本同步折现。 一个类似但更精巧的反驳是:就每份软件副本而言,当购买者停止使用软件时,服务成本就会降为零。因此,如果用户在产生过高服务成本之前就停止使用,厂商仍可能盈利。这本质上只是“工厂式定价会奖励生产‘货架软件’” 这一论点的另一种表述。或许一个更有启发性的说法是:服务成本淹没采购收入的风险,会随着软件预期使用寿命的延长而增加。所以说,“工厂模式”惩罚的是质量。
-
韦恩·格拉姆利奇(Wayne@Gramlich.Net)提出,工厂模式的持续存在部分可归因于过时的会计规则j,这些规则制定时,机器和建筑更重要,人则没那么重要。软件公司的账面上,电脑、办公家具和建筑是资产,程序员则是开支。当然,现实情况是,程序员才是真正的资产,而电脑、办公设备和建筑几乎无关紧要。国税局和股市压力维持着稳定统一的会计规则,以降低对公司价值进行美元计价的复杂性,这种反常的估值方式因此得以延续,由此产生的阻力使规则未能跟上现实的变化。
按照这种观点,给产品中的每个比特位都定高价(不包括未来的服务价值),在某种程度上是一种防御机制,是各方心照不宣的共识,假装本体论基础k还没有从标准会计规则下坍塌。
(格拉姆利奇还指出,这些规则支撑着许多软件公司在IPO后上演离奇且往往自我毁灭的收购狂潮:"软件公司通常会增发一些股票来积累‘战争基金’。但他们不能把这些钱花在扩充开发人员上,因为会计规则会把这笔钱算作增加的开支。于是,这家新上市的软件公司只能通过收购其他软件公司来成长,因为会计规则允许你把收购当作投资来处理。")
a. Sales value 一般译作“交换价值”,但由于本文强调销售行为故译作“销售价值”。使用价值与销售(交换)价值是商品二重性理论(经典阐述见亚当·斯密《国富论》The Wealth of Nations)的分析范畴,关乎商品的内在属性;而“中间产品”与“最终产品”是国民经济核算(核心定义见联合国《国民账户体系》System of National Accounts, SNA)的统计概念,关乎产品在生产链中的位置,两者无对应关系。e.g. CPU、电脑、硬盘的使用价值是“组成电脑核心部件的能力”;它们作为零件在市场上也有销售价格。在核算电脑的最终价值时,它们是中间产品。
b. 此处的“工厂模式”是一种经济学类比,其核心是将生产理解为一种标准化、线性的传统制造业流程思维。
c.** 制成品(manufactured goods)**:是经济学和贸易领域的专业术语,与初级产品(primary goods)相对,指经过工业加工的产品。
d. 重置成本(replacement costs):又称现行成本,是按照当前市场价格重新购建或取得资产所需的金额。即在当前市场条件下,重新开发或购买一个具有同等功能的全新软件所需的全部费用。
e. 无形商品(intangible goods):经济学专业术语,与有形商品(tangible goods)相对。指不具备实物形态,但具有价值和使用价值的非物质的劳动产品以及有偿经济言行。除了文中的商品,金融服务(存款贷款、资产管理、证券交易、保险保障)、教育服务(心理咨询、家教)和知识产权(专利、商标、版权)均在此范畴内;软件作为本文讨论的核心,正是这类无形商品的典型代表。
f. ESR这里化用了电影《高地人》(Highlander)的经典台词“In the end, there can only be one”。该片设定永生者互相厮杀直至仅剩一人,此句的戏剧张力堪比香港武侠片中“今日,不是你死就是我活”的终极对决场面,因而成为流行文化梗,甚至在NBA季后赛宣传片中也曾出现。
g. Baan:制造业ERP的始祖,为复杂的制造业(如飞机制造、汽车)提供了高度集成的解决方案,特点是软件模块化和高度的可定制。
h. PeopleSoft:人力资源软件的开创者,于2000年率先推出了纯互联网架构,让用户无需安装客户端软件,可以通过浏览器访问。
i. 不变美元(constant dollars):是2012年《海峡两岸经贸名词》公布的经贸领域专业术语,指通过价格指数调整后,反映特定基期美元实际购买力的计量单位。该概念通过剔除价格波动因素,使不同时间段的美元价值具有可比性;折现值(Present Discounted Value)也称贴现值PDV,指将未来的一笔钱按照某种利率折合为现值。
j. 会计规则(Accounting Rules):财务术语,指企业在进行会计核算(记账、算账、报账)时必须遵循的规则、程序和指南。作为系统化概念,最早由佩顿(W.A. Paton)和利特尔顿(A.C. Littleton)在1940年合著的《公司会计准则绪论》(An Introduction to Corporate Accounting Standards)中系统阐述。其后经美国会计程序委员会(CAP,1938)、会计原则委员会(APB,1959)及财务会计准则委员会(FASB,1973)的持续制度化,形成现代会计准则体系。美国的会计规则采用规则导向,内容详尽复杂、规范力强,与中国会计规则只规定通用处理原则的原则导向有明显区别,其“事无巨细皆有规定”的特点,正是“过时规则得以持续”的制度土壤。
k. 本体论(Ontology):哲学术语,由亚里士多德在《形而上学》(τὰ μετὰ τὰ φυσικά,拉丁文转写为ta meta ta physika)中提出,研究什么东西“真正存在”、存在有哪些方式。这里指传统的会计准则建立"本体论假设"之上,这种假设认为只有机器、厂房这类看得见摸得着的实物才是"真正存在"的资产,而程序员写的代码、创造的知识产权不算。目前已有回应该问题的会计本体论研究,如Richard Mattessich的著作 《Reality and Accounting: Ontological Explorations in the Economic and Social Sciences》(2014)。