返回介绍

4.3 批量制造的错觉

发布于 2024-10-11 21:30:14 字数 3968 浏览 0 评论 0 收藏 0

我们首先要注意的是,计算机程序像其他所有类型的工具或生产资料一样,有着两种不同的经济价值:使用价值和销售价值。

程序的使用价值是它作为一个工具、一个生产率倍乘器的经济价值;程序的销售价值是它作为一个可买卖商品的价值。(按照经济学家的专业说法,销售价值是最终产品价值,使用价值是中间产品价值。)

在尝试使用经济学分析软件产品时,大多数人会想当然地运用“工厂模型”,它建立在如下基本假设之上:

·大多数开发者的薪金由软件销售价值支付。

·软件销售价值和它的开发投入成比例。

换句话说,人们十分倾向于假设软件具备典型批量商品的价值特点,但这些假设都可以被证伪。

首先,被编写用来出售的代码仅仅是编程冰山的一角。在微机时代早期,人们普遍认同,全世界 90%的代码都是在银行和保险公司内部编写的。当然现在不是这样了——其他行业也逐渐成为软件密集型行业,金融行业所占比重相应下降——但我们很快会看到,经验表明大约 95%的代码仍然是在机构内部编写的。

这些代码包括大多数 MIS 系统以及客户化的财务软件或数据库软件,这是每个大中型公司都需要用到的;还包括像设备驱动程序这样的技术专家级代码,而几乎没人通过卖设备驱动程序赚钱,后面我们会再谈这个;还包括所有类型的嵌入式代码,用于越来越多的微芯片驱动的机器——从机械工具、喷气式客机到汽车、微波炉和烤面包机。

大多数这样的内部代码与它所在的环境密切相关,对它们的重用和复制非常困难。(不论这个环境是商业办公的流程集合,还是联合收割机的燃油喷射系统。)因此,当环境变化时,需要持续不断地保证软件能跟上变化。

这些工作称为“维护”,任何一个软件工程师或系统分析师都会告诉你,支付给程序员报酬的工作中,大多数(超过 75%)都是这类。相应地,程序员的工时也大都花费在编写和维护这些没有任何销售价值的内部代码上——读者可以很容易地在报纸“招聘”栏列出的编程工作列表中验证这个事实。

我强烈推荐度读者做一下这个验证实验:浏览你所在地报纸的招聘栏,检验一下它列出的编程、数据处理和软件工程这类涉及软件开发的职位,并对每个这样的工作进行判别,看看它所开发出来的软件是供使用的还是供销售的。

你很快就可以清楚地看到,即便按照最宽泛的“销售”定义,20 个职位里也至少有 19 个完全是由使用价值(也即,中间产品价值)付费的,这就是为什么我们相信行业中只有 5%的部分是由销售价值驱动的。注意,即便如此,本文其余部分的分析对这个数据是相对不敏感的,即便这个数是 15%甚至是 20%,其经济推论结果在本质上也都一样。

当我在技术会议上发言时,我常常会以两个问题作为开始:听众中有多少人因写软件而获得报酬,又有多少人的报酬是建立在软件的销售价值之上。通常我会看到听众对第一个问题举手如林,而对第二个问题的响应寥寥无几,并且他们会对这个比例感到相当惊讶。

考察一下消费者的实际行为,你会发现,关于软件销售价值取决于其开发或升级成本的理论很容易被推翻。很多商品(在贬值前)的确有这样的关联关系,如食物、汽车和机械工具。甚至有些无形商品的销售价值也和其开发及升级成本紧密相关——如音乐、地图及数据库的复制权。这种商品在其供应商消失后,其销售价值仍然保持甚至还会增加。

相比之下,当一个软件产品供应商退出市场(或仅仅是产品不再延续)后,消费者愿意为其产品支付的价格很快会降低到零,而不管其理论上的使用价值或该类产品的开发成本如何。(要想检验一下这个论断,可以看看你附近软件商店里的打折专柜)。

当软件供应商关张时,零售商的行为很有揭示意义。他们知道一些供应商不知道的东西:事实上,消费者愿意支付的价格不会超过对供应商服务的未来预期价值(“服务”的含义很广,在这里包括完善、升级以及后续产品等等)。

换句话说,软件很大程度上是一个服务行业,虽然长期以来都毫无根据地被错认为是制造行业。

有必要研究一下我们为什么常常倾向于相信这种错觉,原因可能很简单,软件行业中用来销售的那一小部分软件,是唯一做广告的部分。人们通常的心理偏见可能也起了作用,那就是认为制造业比服务业更“真实”,因为前者生产的东西是看得见摸得着的 1。另外,一些最明显的、大张旗鼓宣传的产品,其生命周期都非常短暂(比如游戏),这些产品几乎没有持续的服务需求(这是例外,而非一般情况) 2

同样值得注意的是,这种错觉鼓励了一种病理性的价格结构,完全脱离了开发成本的实际分解。如果软件生命周期中超过 75%的成本(这已经被普遍接受)都花在维护、排错和扩展上,那么常见的价格策略——给软件定以较高的购买价和相对较低甚至为零的维护费——就必然导致很差的服务。

消费者会因此吃亏,虽然软件是一个服务行业,但基于工厂模式的激励机制会阻碍供应商提供足够的服务。如果供应商的收入来自于销售软件,那么大部分的努力就会是制造软件并将它们推销出去;至于帮助台(help desk),它们不是盈利中心,将会成为最低效员工的发配地,并只能得到仅供维持客户数量不低于临界值的资源。

情况会变得更糟。实际使用就意味着会有人打服务电话,而提供服务会影响利润率,除非你对服务也收费。在开源世界里,你寻找的是最大可能的用户群,以便获得最大限度的反馈和最有活力的可能的二级市场。在闭源环境中,你寻求的是尽可能多的购买者和尽可能少的实际使用者。所以,工厂模式逻辑会强烈鼓励供应商生产出“存架软件”——市场销量很好但没有实际价值的软件。

事情的另一面是,大多数信奉工厂模式的供应商会在长期运转中失败。以固定的销售价格支付永无期限的服务费用,只有在一种情况下才行得通:市场快速扩张以至于能用昨天的销售和明天的收入来覆盖软件支持费用和生命周期成本,一旦市场成熟,销售放慢,为削减开支,大多数供应商将不得不放弃维护和服务,使软件沦为“孤儿产品”。 3

不论这种做法是显式(中止产品)还是隐式(使顾客难以得到服务)的,都会起到把消费者赶往竞争者那里的效果——因为它破坏了产品的取决于服务的预期未来价值。供应商可以采取把 bug 修复版本包装成新产品并贴上新价格这种办法,但这是避开困境的短视行为。从长远看,唯一能避开困境的办法是没有竞争者——也即在市场上实现有效的垄断。到最后,只有一家供应商。

我们确实已经多次看到“支持匮乏”这种失败模式在市场环境中甚至干掉了排名第二的强有力竞争者。(那些调查过 PC 操作系统、字处理软件、会计程序或一般商业软件历史的人,会很清楚这种模式。)这种由工厂模型带来的非正常激励,导致了“赢家通吃”的市场模式,并最终导致消费者(即便是赢家的消费者)的损失。

如果不用工厂模型,用什么?要想有效(不管是非正式意义上还是经济学意义上)调整软件生命周期的真实成本结构,我们需要一个建立在服务合约、按期订购以及在供应商与消费者之间价值持续交换基础之上的价格结构。ERP(企业资源规划)系统这种最大商业软件产品的价格结构正是如此,由于其开发成本过于庞大,固定采购价格不可能完全覆盖,像 Baan 和 Peoplesoft 这样的公司实际上是通过售后咨询赚钱。在追求效能为前提的自由市场中,我们可以预测,在软件行业成熟之后,这将成为大多数厂商最终遵循的价格结构。

以上分析让我们明白,开源软件不仅在技术上,而且也在经济上挑战着现有秩序。将软件“免费”所带来的效果,看来会强制我们进入以服务费为主导的世界,并让我们清楚了解,闭源软件一直以来依靠软件销售价值的做法是多么脆弱。

这个转变并不像表面看起来那么令人难以接受。当盒装软件(尤其是游戏、操作系统和受欢迎的生产工具)的盗版拷贝能够轻而易举搞到手的时候,从消费者角度看,只有在得到如下好处时,才值得为专有软件付钱:供应商服务、纸质手册,或者一种有道德的感觉。所谓“免费”软件的商业发布版,也正是按照这种方式对消费者收取费用——唯一区别是这些供应商不会愚弄消费者,不会让他们认为仅仅那些二进制比特就有着不可或缺的价值。

“免费”这个词还容易在其他方面造成误解。为降低商品成本,投在维护上(包括相应的人和基础设施)的钱,往往是增加而不是减少。当汽车价格降低时,汽车修理工的需求就会增加——这就是即便目前靠销售价值养活的那 5%的程序员也不会在开源世界中难以过活的原因。在这个转变过程中,有损失的不会是程序员,而是那些不顾经济规律把赌注放在闭源策略上的投资者。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文