# 三十七、策略II:鸡与蛋问题 做广告就是要说谎但不能被抓到。大部份的公司做宣传活动,都只是把公司最差 的事实拿出来反过来讲(「说谎」),然后深入彻底的撒谎。让我们称之为「以反 复主张来证明」。举例来说,坐飞机旅行很狭又不舒服,空服员粗鲁又让人不快, 事实上整个航空裏统就是种折磨。所以几乎所有的航空公司广告都在说坐飞机是 多么的嚴而餘炔,整个过程中你又多么的被,棍殿。英国航空有个广告是一个商 人坐在飞机上梦到自己是个襁褓里的婴儿,看到这个广告时所有合理性荡然无存。 要举别的例子吗?造纸公司一直在大量砍伐我们国家的森林,把根本不属于他们 的老树林砍得干干净净。所以他们做广告时当然就会展现漂亮的老松林,然后说 他们有多么在意此环境。香烟会害死人,所以烟广告就展示生命,比如拍健康的 人微笑着在户外运动。如此类推。 麦金塔第刚问世时根本没有软件可以用。理所当然的苹果公司就编了一大本光面 目录列出所有「可用」的伟大软件。不过有一半的项目用小字印着「开发中」, 而剩下一半是不管怎么都拿不到的。其中有些产品烂到不会有人买。不过即使有 了这样一本厚厚的光面目录,即使里面每一页都有一个用美丽说明包装的软件 「产品」,还是无法掩饰你的128KB麦金塔买不到字处理器或电子表格的事实。 NeXT和BeOS都有类似的「软件产品指南」。(NeXT和BeOS的盲目崇拜者注意:我 不需要任何有关你这些该死的操作系统的鬼扯,好吗?要的话在你自己的专栏里 写。)软件产品指南唯一的意思就是该系统没有软件可用。当你看到这些巨兽时, 朝反方向全速逃离吧。 Amiga、Atari ST、Gem、IBM TopView、NeXT、BeOS、Windows CE、General Magic,一长串失败的「新平台」不断出现。由于它们是f台,照字面上如果没有好软件 就不会太有趣。虽然有极少数的例外(我相信像Am i ga或RSTS-11这种神秘而冷门 平台的无聊支持者会寄一大准电邮给我),稍有常识的软件开发者在景气好时, 都不会刻意为有十万用户的平台写软件,因为花同样的工夫可以为Windows这种 有上亿用户的平台写软件。依旧有人替这些怪胎系统写软件,证明了利益并不 是唯一的动机,而宗教狂热仍然长存。亲爱的,祝你好运。你替Timex sinclair 1000写了一个不错的microEmacs复制品。做得好!给你两毛五,去买颗糖果吧。 所以说如果你身在平台创造的产业,可能会面临一般称之为湾生蛋蛋生湾游柯题。 除非拥有好的软件可用,否则没人会买你的平台,可是你的平台要有很多用户, 才会有人替你写软件。痛苦啊!这就有点像是一个哥帝安结(Gordian Knot),不 过说是哥帝安死亡漩涡可能更贴切。 鸡生蛋蛋生鸡问题者以及类似状况是定策略时不可不知的最重要元素。嗯,是啦, 你不知道或许也还是能生存:事实上Steve Jobs在不管这个问题的状况下两度创 立了一个事:#。不过我们其他人并没有Jobs的个人现实扭曲场(Personal Reality Distortion Field)可用(译注:很多人说Jobs有神奇的影响力,驱使别 人不顾现实为他卖命),所以必须认真努力研宄。 第一课。鸡生蛋蛋生鸡问题的典型范围是在软件平台。不过这里有另一个鸡生蛋 蛋生鸡问题:每个月翁百”万家信用卡公司邮寄出刀必份账单给客户。大家就会签 好书面支票塞进上兆的信封再寄回去。这些信封会装到大箱子里,运到人工便宜 的国家再开箱处理。不过整个过程相当花钱,我最后听到的数字是每张账单超过 一美元。 对我们这些Internet的聪明人来说真是个笑话啊。「把账单电邮给我,」你会说 「我要在线付款!」你还会说:「假设这样只要花大概十万分之一分钱。你可以 省下刀百:万」或是其他类似的话。 你说得没错。所以很多公司都想进入这个技术上称为嚴卓递交(Bill Presentment)的领域,而微软是其中之一(想不到吧)。他们的方案TransPoint是这样子的:提供一个网站让你可以上去看账单,然后你付款给他们。 所以现在如果你用这个微软的系统处理账单,每几天就得去该网站看看有没有新 账单来以免漏缴。假设你一个月有十张账单,这应该不算大麻烦。不过还是有别 的问题:只有少数商家会透过这个系统收帐,所以其他账单还是得用别的方法处 理。 最后的结果呢?就是不值得。这样的系统能找到十万人来用,我都会觉得很惊讶。 于是微软就必须去找商家商量:「请透过我们的系统来收帐!」然后商家会问: 「可以啊,价钱怎么算?」微软回答:「五毛钱!这比一美元便宜多啦!」于是 商家说「不错,还有其他费用吗?」微软就说啦:「哦,对了,你还得安装软 件并把你我的系统连接起来,再加上整个运作费用,大概要廿五万美元。」 由于微软这个系统的用户数量太少,实在无法想象谁会为了节省37个客户的五毛 钱而付廿五万美元。啊哈!鸡生蛋蛋生鸡问题悄悄出现了!除非商家参与否则 客户不会来,可是没有客户的话商家是不会参与的!最后微软只能花钱脱离困境。 不过较小的公司可没法子这么做。那么你能怎么办呢? 就鸡生蛋蛋生鸡问题的处理来说,软件平台其实可以给我们一些不错的提示。让 我们稍微看看由IBM-PC起这些年间,个人计算机软件平台的历史;或许能发现某 些东西! 很多人认为丨BM-PC需要用PC-D0S。这并不正确。IBM-PC刚出来时有三种操作系统 可以选择:PC-DOS、XENIX(—套8位的烂UNIX,是「微软」出品的),还有某个叫 UCSDP-System的东西(信不信由你,这东西就像Java:美好、缓慢、可携的 bytecode,还比Java早20年。) 如今大多数人都从未听说过XENIX或UCSD这些怪东西。你们这些现代的小朋友可 能会认为,这是因为微软用营销势力或其他手法夺取了小小的操作系统市场。 这绝对不是真的;那时候微软还很小,当时最有营销势力的公司是拥有多个操作 系统的Digital Research。那么为什么PC-DOS会是这三家竞赛的赢家呢? 在PC出现前能用的真正操作系统只有CP/M,不过用约需一万美元的CP/M计算机市 场太小了。这些计算机贵又不稳用,起来也不方便,不过还是有人买来当字处理 器用,因为CP/M上有一套相当好的字处理器WordSta「,而Apple I I根本不歲做字 处理(连小写字母都没有)。 现在有件已知的小小事实:连DOS 1.0的设计都内建了CP/M兼容模式。DOS不只有 一套很好的新程序接口(硬派程序员所知道的INT 21),还完整地支持了原本的 CP/M程序接口。它刀手可以执行CP/M软件。事实上WordSta「的程序代码只改了一 个字劳就移植到DOS 了(真正的程序员可以告诉你是哪一个字节,不过我早就忘 了)。 这件事值得再说一次。把WordSta「移植到DOS时,程序代码只改了一个字貫。好 好想一下。 好啦。 想到没? DOS是琢为一方:給#存软洋展才会流行。而它能有软件用是因为Tim Paterson想 到要提供CP/M兼容功能,因为在那个黑暗时代某人就有智慧去处理鸡生蛋蛋生鸡 问题。 快转一下。在整个PC平台的展史里,只发生过两次足以影响到每一个PC用户的重 大典范转移,我们都转移到Windows 3.x,然后又换到Windows 95。只有极少数 人转移到其他地方。微软阴谋要接收全世界吗?很好,你大可那样子想。不过我 想到另一个更有意思,可以回归到鸡生蛋蛋生鸡问题的原因。 我们都要转移至Wndows 3.X。这句话里的3是个重要的线索。我们大家为什么不是 都转换到 Windows 1.0 或Windows 2.0?又或后来的 Windows 286或Windows 386 呢?因为微软发行了五个版本才终于「做得好」吗?错。 真正的原因远比这个更微妙,它跟Windows 3.0所需的Intel 80386芯片中一个很 神秘的硬件功能有关。 1. 功能一:旧的DOS程序在显示画面时是直接写入文字字符在屏幕上 对应的内存位置。要让程序输出快速而专业,这是唯一的办法。不 过Windows是以绘图模式执行。使用旧的Intel芯片时,微软的工 程师在执行DOS程序时没有其他选择,只能切到全屏幕模式执行。 不过用80386就可以设定虚拟内存区块和中断,让在程序试图写入 显不内存时通知操作系统,然后Windows就可以立即在图形窗口绘 出相同的文字。 2. 功能二:旧的DOS程序假设自己拥有整颗芯片,所以通常不能共存。 不过Intel 80386有能力创造多个「虚拟」PC,而且每一个就和一 颗完整的8086—样,所以虽然还有其他程序一起执行,可是旧PC 程序还是能假装自己独占整台计算机。 所以用Intel 80386上运行的Windows 3.x是第一个能完整执行多个DOS程序的版本(就技术上Windows 386也可以,不过在W i ndows 3.0问世前80386数量少又贵)。 Windows 3.0是第一个真正能执行你所有旧软件的版本。 Windows 95?也没问题。它有很好的32位新API,不过还是能正常执行旧的16位 程序。微软非常重视这件事,花了很多工夫Windows 95在上测试所有找得到的旧 程序。Jon Ross是Windows 3.x版SimCity的作者,他告诉我他不小心在SimCity 里留了一只虫,会去读取刚释放掉的内存。是的,这在Windows 3.x是可以的, 因为内存不会跑掉。接下来的事非常神奇:SimCity在Windows 95的beta版上测 试有问题,微软追查到这个问题然后在W/ndws 95里加一段找寻S/mC/ty游涯淨 代码。如果发现SimCity正在执行,内存配置程序就会进入特别模式,这时并不 会马上释放内存。就是这种向后兼容的坚持让大家愿意升级到Windows 95。 要如何破解鸡生蛋蛋生鸡问题,你应该开始有些概念了吧。就是用一个向后兼容 模式,依你的需要提供一卡车的鸡或蛋,然后坐下来大赚钞票。 哈!现在回到账单递交的事情。还记得账单递交吧?这个鸡生蛋蛋生鸡问题是说, 这个服务只能替你处理少部份的账单,所以你不会去用。要怎么解决呢?微软没 有想出来,不过PayMyBills.com和其他几家硅谷新创公司都同时找到答案。提供 一个应后砉容模式:如果商家不支持这个系统,就请他们把可恶的书面账单寄到 公司在加州的地址,再找一堆人来拆信封扫描进计算机,现在你所存的账单都 在他们的网站上了。由于世界上所有商家都可以用这个系统,客户可以也很乐意 采用。花旗会员银行会先把电子型式的账单送到打印机,印成纸账单后塞进信封, 用邮递走1500英哩到加州再拆开,上面印着烂广告的笨信封就丢到垃圾桶,而书 面账单则扫描进计算机,然后放到应该一开始就直接送达的网站上。虽然这种兼 容模式很夸张,不过最后终宄会消失,因为PayMyBills.com毕竟不像微软,它可 以让客户真的来用这个系统,所以不久就可以去找愚蠢的花旗会员银行谈:「嘿, 我这里有93,400个你们的客户。为什么不直接和我们联机然后每个月省下93,400 美元呢?」于是突然间PayMyBills.com就变得非常赚钱,而同时微软还在努力 要签下第二个电子化公用事业(或许某家乔治亚州事业会是个好的备案。) 不能认清鸡生蛋蛋生鸡问题的公司可以视为想煮涕大海(boil the ocean)的公司: 他们的商业计划书需要有九千三百万人配合他们疯狂的想法后才能实现。我看过 最无可救药的笨点子叫ActiveNames。他们的猪头点子是让全世界所有人都在电 邮软件上装个附加软件,它会在该公司的中央服务器用人名搜寻取得真实的电邮 地址。这样就不必告诉大家说你的电邮地址是ke「mit@sesame-st「eet.com,只 要说你的ActiveName是「spolsky」就可以了。另外别人想电邮给你时,也得安 装这套特别的软件。哔!答错了!我根本懒得开多冷数落这个点子为什么行不通。 结论:如果你身在一个有鸡生蛋蛋生鸡问题的市场,最义/有个向后兼容答案来解 决这个问题,否则就得花很长很长的时间仳如无穷久)才能开始。 还是有很多公司认清面对,并且聪明地解决鸡生蛋蛋生鸡的问题。当Transmeta 公开他们的新CPU时,长久以来第一次有赛Intel的公司终于承认一件事,就是 如果想把CPU卖给很多很多人时,就必须能执行x86的程序。Hitachi、Motorola、 IBM、MIPS、国家半导体还有其他数不清的公司都欺骗自己,认为自己有权利发 明一组新指令集,而Transmeta架构则从一开始就认定,任何打算做一台不能执 行Excel的电脑的商业计划书都是不可行的。