作者:周思博 (Joel Spolsky)
中文正体翻译:Paul May/梅普華,转为中文简体后有少量调整。
英文原文:Joel on Software,发布日期:Wednesday, June 12, 2002

我读大学时修了两门经济课程:宏观经济和微观经济。宏观经济满是「低失业率导致通货膨胀」等现实中不太能成立的理论,不过微观经济则是酷又有用。里头都是讨论供需间关系而且真正可用的概念。举例来说,如果你的对手降价而你不跟进,你的产品需求就会减少。

我想在今天的文章指出,其中一个概念如何能解释某些熟悉的电脑公司。我注意到开放源码软件有件事很有意思,就是大多数砸大钱发展开放源码软件的公司,并不是突然爱上言论自由放弃资本主义,而是认为这是个好的商业策略。

市场上所有的产品都有替代物品和互补物品。替代物品是首选商品太贵时会改买的另一种东西。鸡肉就是牛肉的代替物品。如果你是鸡农而牛肉的价格上升,大家都要买更多鸡肉而你的销量就增加。

互补物品是通常会和其他产品一起购买的产品。车和汽油是互补物品。电脑硬件是典型的电脑作业系统互补物品。褓姆则是高级餐厅用餐的互补物。当小镇的五星级餐厅提供两人同行一人免费的情人节特惠方案时,当地的褓姆也会忙得不得了(事实上连九岁的小朋友要出动了。)

其他事都一样,当商品的价格下降时互补物品的需求就会增加。

让我重复一遍以免你打瞌睡没看到这个重点。当商品的价格下降时互补物品的需求就会增加。举例来说,如果到迈阿密的机票降价,当地旅馆的住房需求就会上升,因为会有更多人去迈阿密就会需要房间住。当电脑变便宜就会有更多人买,由于电脑要有作业系统,于是作业系统的需求就增加,而作业系统的售价也水涨船高。

这时候大家常常会出来打岔,他们会说:「啊哈!可是Linux是免费的!」好吧。首先经济学家谈到价格时是指整体价格,里面包括安装时间、人员再教育、现有流程转换等无形的事物。这所有的东西我们称之为「整体持有成本」。

再来这些支持者会因为免费啤酒的说法,试图相信自己不受经济定律限制,因为他们有个很棒的零,而任何数字乘以都没有了。这里有个例子。Slashdot问Linux开发者Moshe Bar未来的Linux核心是否能与现有装置驱动程式相容,他回答不需要:「专属软件每行除错好的程式码收费50到200美元。这样的价格不适用于开放源码软件。」Moshe继续声称,每次Linux核心改版让现有驱动程式失效是正常的,因为重写现有驱动程式的成本是零。这实在是错得离谱。他等于是声称维持核心向后相容所花的小工夫,等价于重写所有驱动程式的大量程式作业,因为两者都会乘以各自的「成本」,而他们相信这个成本都是零。这是一个似是而非的谬论。修改现有装置驱动程式需要开发人员投入数千甚至数百万小时,一定会产生某些费用。而且在这些工作完成之前,Linux因为不能支持现有硬件,在市场上等于又再变回残废。把这些「零成本」的工夫拿来改良Gnome或支持新硬件不是更好吗?

不管是专属软件还是开放源码软件,除错绝对不会是免费的。即使没有实际付钱,还是有机会成本和时间成本。投入开放源码计画的志愿性程式人力是有限的,所有开放源码计画都在争取同一群有限的程式设计资源,只有最具吸引力的计画才能拥有超过需要的志愿开发者。总而言之,我不认同这些试图证明啤酒免费这种荒唐经济的人,因为我认为他们只会得到「除以零」的错误。

开放源码并不能免于重力或经济法则。由Eazel, ArsDigita的事就可以知道,这家公司以前以VA Linux和很多其他企图而闻名。不过有些在开放源码世界中很少人真正了解的事还在继续进行:很多有责任尽量提升股东价值的大型上市公司,投入很多资金支持开放源码软件(通常是负担大型程式团队的开发费用)。而这正可以用互补物的原理来解释。

再说一遍:当商品的价格下降时互补物品的需求就会增加。通常公司的策略利益是让互补商品的价格愈低愈好。理论上能维持住的最低价格是「普及价格(commodity price)」,也就是会有很多竞争者提供相同商品时的价格。所以:

聪明的公司试图让其互补产品普及化(commoditize)

如果你能做到这一点,产品的需求就会上升而你就可以卖贵一点然后赚更多钱。

当IBM设计PC架构时是用现成的零件而非订制零件,而且他们很小心地编写零件间的介面文件IBM-PC技术参考手册(革命性的作法)。为什么要这样做呢?因为这样子其他制造商就可以进来一起做。只要你遵循介面,就可以用在PC里。IBM的目标是要普及附加产品,而附加产品正是PC市场的互补物品。他们做得相当成功。在短时间内就涌现大量的公司提供记忆体卡、硬碟、显示卡、印表机等商品。便宜的附加产品意味更大的PC需求。

当微软把作业系统PC-DOS授权给IBM时,很小心的没有卖出独占授权。于是微软就可以把相同的东西,授权给Compaq和其他几百家利用IBM自己的文件合法复制IBM PC的OEM厂商。微软的目标是要让PC市场普及化。不久PC本身也成为日用品了,价格愈来愈低,功能持续提升,而且也很难有获利的空间。而低价当然就会提升需求。PC需求增加表示其互补物MS-DOS的需求也增加了。. 没有例外的,产品需求愈大赚到的钱就愈多。难怪比尔盖茨买得起瑞典而你不行。

今年微软想再玩一次:他们的新游戏主机XBox也是用普及的PC硬件而非订制零件。他们的理论(这本书里有解释)普及的硬件每年都会愈来愈便宜,所以XBox可以顺势降价。不幸的是他们弄巧成拙:显然PC硬件已经被压到普及价格,所以XBox的制作成本下降并不如微软预期快。微软XBox另一个策略是使用DirectX,利用这个绘图程式库写的程式能在所有的视讯晶片上执行。这里的目标是想普及化视讯晶片并使它降价,就能卖出更多真正能藉以获利的游戏。那么为什么视讯晶片厂商不想办法去普及化游戏呢?因为很难做到。虽然最后一战(Halo)这个游戏疯狂大卖,可是并没有真正的替代品。你并不会跑去电影院想看最新的星际大战,却又认为改看伍迪艾伦的电影也可以满足你。这些都是好电影,不过绝对不能彼此替代。好啦,你想当游戏发行商还是视讯晶片厂商呢?

让你的互补物品普及化。

要解释为何这么多商业公司对开放源码投入很大的贡献,了解这个策略有非常大的帮助。让我们来看看。

头条:IBM投入数百万美元发展开放源码软件。

神话:他们会这样做,是因为Lou Gerstner读了GNU Manifesto后决定自己其实不喜欢资本主义。

现实:IBM是因为自己已成为IT顾问公司才会这样做。IT顾问是企业软件的互补物品,所以IBM必须让企业软件普及化,而最好的方法就是支持开放源码软件。看吧,他们的顾问部门靠这个策略大获全胜。

头条:Netscape公开其Web浏览器的源码。

神话:他们这样做是为了取得某些纽西兰网咖客贡献的免费程式码。

现实:他们是要让web浏览器普及化。

从一开始这就已经是Netscape的策略了。看看Netscape早期第一份公开新闻:这个浏览器是「免费软件」。Netscape发放浏览器是为了要让伺服器来赚钱。浏览器和伺服器是典型的互补产品。浏览器愈便宜,卖出的伺服器就会愈多。这在1994年有最真实的呈现。当MCI进门把那么多钱倒在他们身上时,Netscape是真的吓到了,他们了解到浏览器本身也可以赚钱。这时当初的商业计画书没有写到的。

Netscape把Mozilla以开放源码方式发行,是因为他们看到降低浏览器开发成本的机会。这样就能以较低的成本获得普及化的利益。

稍后AOL/时代华纳并购了Netscape。伺服器软件应该是浏览器普及化的受益者,可是卖得不好就被抛弃了。问题来了:为什么AOL/时代华纳要继续投入开放源码呢?

AOL/时代华纳是个娱乐公司。娱乐公司是各种型式娱乐传递平台(包括web浏览器)的互补。这个巨人集团的策略利益在于让娱乐传递(也就是web浏览器)普及到没有人能因而收费。

Internet Explorer免费的这个事实有点动摇我的论点。微软也想让web浏览器普及化,这样他们才能贩售桌上型及伺服器的作业系统。他们想再进一步提供一组元件,让大家都能快速拼凑出一个web浏览器。Neoplanet和AOL还有Juno就用这些元件建立他们自己的web浏览器。既然IE免费,那么Netscape还有什么动机让浏览器「更便宜」呢?答案是Netscape要抢先机,他们必须防止微软的web浏览器完全独大,即使是免费的web浏览器也不行。因为理论上如果微软独占的话就有机会以别的方式(比如Windows增加的价格)增加网路浏览的成本。

(显然Barksdale当家时,Netscape确实不了解状况,这也使我的论点更加不稳。要解释Netscape的行为,比较可能的说法是高层管理不了解技术,所以只好被开发人员牵着鼻子走,而不懂经济的开发人员巧合地想出能配合他们策略的机制。不过还是让我们当他们是真的聪明吧。)

头条:Transmeta雇用Linus,花钱请他研究Linux。

神话:他们纯粹是为了宣传。否则有谁听说过Transmeta呀?

现实:Transmeta是家CPU公司,而CPU天生的互补产品就是作业系统。Transmeta想要让作业系统普及化。

头条:Sun和HP付钱请Ximian研究Gnome。

神话:Sun和HP支持免费软件是因为他们喜欢市集(Bazaars)而非大教堂(Cathedrals)。

现实:Sun和HP都是硬件公司,他们做的是盒子。为了要在桌上型市场赚钱,他们需要视窗式系统(桌上型电脑的互补物)成为普及化的产品。那么为什么不把付给Ximian的钱拿去发展一套专属的视窗式系统呢?他们以前试过(Sun有NeWS而HP有New Wave),不过这些公司骨子里都是硬件公司,软件技术非常的粗糙,而且他们需要让视窗式系统成为廉价普及品,而不是要付钱取得的专属优势。所以他们雇用Ximian的优秀人员来做,理由和Sun买下Star Office然后开放源码一样:让软件普及化然后由硬件赚更多钱。

头条:Sun开发出Java这套全新的"Bytecode"系统,写一次程式可以到处执行。

Bytecode的想法并不新,程式师一直在尝试让自己的程式尽可能在更多的机器上执行(这就是让你的互补物普及化的方法)。多年前微软就拥有自己的p-code编译器和可移植的视窗层,让Excel能在麦金塔、Windows、OS/2等系统以及Motorola、Intel、Alpha、MIPS和PowerPC等晶片上执行。Quark也有一个中间层可以在Windows上执行麦金塔的程式。C程式语言最佳的描述方式就是一个独立于硬件的组合语言。对软件开发人员来说这并不是新点子。

如果任何地方都执行执行自己软件,硬件就更像是普及化产品了。而硬件价格下降会驱动更大的软件需求(而且让客户由硬件省下更多钱去买如今会更贵的软件。)

Sun对WORA的狂热可说是奇怪的,因为他们是家硬件公司,而硬件公司最不应该做的事就是让硬件普及化。

真是令人太惊讶了!

Sun是电脑界有名的怪公司。他们无法看透自己对微软激烈的恐惧及痛恨,所以其策略都是基于激愤而非自身利益。Sun的两大策略是分别是(a)推广并发展免费软件(Star Office、Linux、Apache、Gnome等)让软件普及化,以及(b)推广Java及其bytecodeWORA架构和让硬件普及化。好吧,来问Sun一个问题:当音乐结束时你想坐在哪里?你在硬件或软件上都没有独有的优势,这样只能接受普及化价格。这种收入只能勉强维持墨西哥的廉价工厂,可养不起你在矽谷舒适的办公室。

「约耳等一下,」杰瑞德说:「Sun是想Transmeta像那样让作业系统普及化,并不是要普及化硬件。」或许吧,不过事实上Java bytecode也让硬件普及化了,因而会为他们带来相当重大的附带伤害。

这所有的例子里都有一件很重要的事,软件是很容易让硬件普及化的(只要写个小小的硬件抽象层,比像Windows NT的HAL就只有很小一段程式),不过硬件想让软件普及化却是难上加难。就如StarOffice行销团队所学到的教训,软件是不能互换的。即使价格为零,由微软Office切换过来还是需要成本。除非切换成本变成零,否则桌面办公室软件不可能真的普及化。两套软件间即使差异极其微小,还是会造成切换时的痛告。虽然Mozilla的确拥有我所有想要的功能,而且单单是挡广告的功能就让我会爱用它,可是我实在太习惯按Alt+D跳到网址列了。你能怎么办?去告我吗?只是一个小小的差异就失去普及化的状态。可是我可以由IBM的电脑抽出硬碟,直接塞进Dell的电脑里,打开电源整个系统还是完全正常的启动并运作,就像没换电脑似的。

Creo的执行长Amos Michelson告诉我,他公司里的所有员工都被要求去听一间叫「经济思考」的课。真是好主意。因为即使个体经济学的基本观念,对了解现在发生的重要变化都很有帮助。

(全文完)

© 2009-2018. All Rights Reserved.

Published by Chance Jiang