JoelOnSoftware

Joel on Software

Strategy Letter II: Chicken and Egg Problems

战略来信二:鸡和蛋问题

by Joel Spolsky Wednesday, May 24, 2000


The idea of advertising is to lie without getting caught. Most companies, when they run an advertising campaign, simply take the most unfortunate truth about their company, turn it upside down ("lie"), and drill that lie home. Let's call it "proof by repeated assertion." For example, plane travel is cramped and uncomfortable and airline employees are rude and unpleasant, indeed the whole commercial air system is designed as a means of torture. So almost all airline ads are going to be about how comfortable and pleasant it is to fly and how pampered you will be every step of the way. When British airways showed an ad with a businessman in a plane seat dreaming that he was a baby in a basket, all sense of reasonableness was gone for good.

广告的意思就是说撒谎但是不要被逮到。大多数的公司,当它们进行广告宣传的时候。他们会把关于他们公司最不幸的事实。颠倒过来(就是撒谎)。然后回家反复琢磨琢磨那条谎言。我们称之为谎话说一千遍就成事实。比如说。乘飞机旅行通常就是拥挤而且不舒服,并且航班上的雇员又粗鲁又让人不爽。事实上航空系统一开始就被设计成像折磨一样,然而几乎所有的航空公司广告都会宣称飞行是多么的舒服和愉快,并且会强调你旅途的每个细节都会受到足够重视。英国航空公司曾经播过一个广告,广告里面有一个商人坐在飞机座位上做了一个梦,梦里面他是一个坐在摇篮里面的婴儿。为了体现出航空服务质量他们简直丧失了所有理性。

Need another example? Paper companies are completely devastating our national forests, clear cutting old growth forest which they don't even own. So when they advertise, they inevitably show some nice old pine forest and talk about how much they care about the environment. Cigarettes cause death, so their ads show life, like all the ads with happy smiling healthy people exercising outdoors. And so on.

还想要另外一个例子?比如说造纸公司,完全就是在摧毁我们国家的森林。明显就是在砍伐那些已经生长了很久的森林,这些森林可能都不属于他们。但是他们做广告的时候,却不可避免的,展示一些生长很好的松树林,并且谈论说他们是如何如何的关心环境。香烟会导致死亡,而他们的广告却会像所有其他广告那样展示健康的人们运动的时候流露的笑容。诸如此类。

When the Macintosh first came out, there was no software available for it. So obviously, Apple created a giant glossy catalog listing all the great software that was "available". Half of the items listed said, in fine print, "under development," and the other half couldn't be had for love or money. Some were such lame products nobody would buy them. But even having a thick glossy catalog with one software "product" per page described in glowing prose couldn't disguise the fact that you just could not buy a word processor or spreadsheet to run on your 128KB Macintosh. There were similar "software product guides" for NeXT and BeOS. (Attention, NeXT and BeOS bigots: I don't need any flak about your poxy operating systems, OK? Write your own column.) The only thing a software product guide tells you is that there is no software available for the system. When you see one of these beasts, run fleeing in the opposite direction.

当Mac刚发明的时候,其实没有什么能用的应用软件。因此很明显的,苹果公司就创建了一个巨大的冗长的软件产品目录,列出所有那些所谓已经“可用”的伟大软件产品。其实,列出的条目中有一半以上都用精美的打印体印着“开发中”;而另外一半,出于爱或者钱的原因你也不能够享用;其他的则是一些非常糟糕的产品,因此没有人会想购买。不管怎样实际是有一个不管用巨大的冗长的列表还是用发光的散文描述的软件产品介绍都无法掩盖这个事实,就是:你没有办法购买一个能够运行在你的128kb的Mac上面文字处理器或者电子表单。NeXT os和BeOS都有着类似的软件产品指南(注意NeXT os和BeOS的偏执狂们,我并不想要听你们大谈特谈你们的虚拟操作系统好吗?可以去写你们自己的专栏)。软件产品指南告诉你的唯一事实就是:这个系统上没有任何可用的软件,但是如果你看见其中的一头怪物的话,那你就赶紧朝着反方向使劲逃跑。

Amiga, Atari ST, Gem, IBM TopView, NeXT, BeOS, Windows CE, General Magic, the list of failed "new platforms" goes on and on. Because they are platforms, they are, by definition, not very interesting in and of themselves without juicy software to run on them. But, with very few exceptions (and I'm sure I'll get a whole host of email from tedious supporters of arcane and unloved platforms like the Amiga or RSTS-11), no software developer with the least bit of common sense would intentionally write software for a platform with 100,000 users on a good day, like BeOS, when they could do the same amount of work and create software for a platform with 100,000,000 users, like Windows. The fact that anybody writes software for those oddball systems at all proves that the profit motive isn't everything: religious fervor is still alive and well. Good for you, darling. You wrote a nice microEmacs clone for the Timex Sinclair 1000. Bravo. Here's a quarter, buy yourself a treat.

Amiga, Atari ST, Gem, IBM TopView, NeXT, BeOS, Windows CE, General Magic这种失败的新平台列表可以一直往下增长。因为从定义上来讲他们是平台,如果没有什么有用的软件可以运行在这些平台上面的话,平台本身并没有什么意义(当然也许有些例外,我很确定,如果我不这么说,大概能收到一整个主机那些arcane或者无爱平台例如Amiga或者什么RSTS-11支持者们发的无聊的电子邮件 )。软件开发人员只要有最基本的一点点常识,就不会去给那些一天只有十万个用户的平台开发什么软件。就像BeOS,如果人们有时间为什么不是去给像微软这样拥有一亿以上用户的平台开发软件 而是去给什么奇怪的平台开发软件的话,那么只能证明一个事实:即,利益并不是全部驱动。宗教狂热仍然存在,并且存活得很好。亲爱的,这其实挺好的。你们为TimexSinclair1000写了一个很不错的微emacs克隆版本,哇好棒,这几块钱拿去给自己买点东西庆祝一下吧!

So. If you're in the platform creation business, you are probably going to suffer from what is commonly known as the chicken and egg problem. Nobody is going to buy your platform until there's good software that runs on it, and nobody is going to write software until you have a big installed base. Ooops. It's sort of like a Gordian Knot, although a Gordian Death Spiral might be more descriptive.

如果你经营这种类似创建平台生意的话,你肯定会饱受一种通常被称为鸡和蛋问题的煎熬。如果没有一些优秀的软件运行的平台上面的话,是不会有人购买你的平台的。而在你的平台在拥有一个很大的装机量之前也不会有人给你开发软件的。糟糕。这有点像戈登结一样,可能用戈登死结来描述更加恰当。

The chicken and egg problem, and variants thereof, is the most important element of strategy to understand. Well, OK, you can probably live without understanding it: Steve Jobs practically made acareer out of not understanding the chicken and egg problem, twice. But the rest of us don't have Jobs' Personal Reality Distortion Field at our disposal, so we'll have to buckle down and study hard.

鸡和蛋问题,或者各种各样的遍体是所有人员需要理解的最重要的战略元素问题之一。好吧,可能你不理解也获得挺好的。实际上乔布斯就在没有理解这个问题的情况下,两次开创了职业生涯的辉煌篇章。但是我们中剩下的人并没有乔布斯那样扭曲的偏执人格。所以我们还是得努力工作认真学习。

Lesson one. The classic domain of chicken and egg problems is in software platforms. But here's another chicken and egg problem: every month, millions of credit card companies mail out zillions of bills to consumers in the mail. People write paper checks, stuff them in trillions of envelopes, and mail them back. The envelopes are put in big boxes and taken to countries where labor is cheap to be opened and processed. But the whole operation costs quite a bit: the last figure I heard was that it is more than $1 per bill.

一个经验教训就是:鸡和蛋问题的经典应用领域可能是软件平台行业,但是这里还有另外一个鸡和蛋问题。每月,数以百万计的信用卡公司都会用邮件向客户支出数以千亿计的账单;人们会签下支票,然后装进数以万亿计的信封里面。并寄回信用卡公司。这些信封最后会被装在箱子里面,然后邮寄到人工便宜的地方打开处理。但是整个过程却花费了不少钱。我上次听到的数字是处理每个帐单至少花费一美元。

To us Internet wise-guys, that's a joke. "Email me my bill", you say. "I'll pay it online!" You say. "It'll only cost, say, 1/100000th of a penny. You'll save millions" Or something like that.

对于我们这些有的因特网智慧的人来说,这简直就是个笑话。“通过电子邮件把账单发给我吧”,你会说:“我可以可以在线支付”。你会说:“那只花费只会花费约万分之一美分,你会省下了百万美元。或者大概这个数这么多钱”。

And you're right. So a lot of companies have tried to get into this field, which is technically known as Bill Presentment. One example is (guess who) Microsoft. Their solution, TransPoint, looks like this: it's a web site. You go there, and it shows you your bills. You pay them.

是的,你是正确的。所以有很多公司开始尝试进入这个领域领域。技术上来讲这个领域被称作账单呈现。其中一个例子就是—猜猜看是谁?微软,他们的解决方案叫做TransPoint。大概是这个样子的:这就是一个网站,你去访问这个网站,他们给你显示账单,然后你支付这些账单。

So, now, if you get your bills on this Microsoft system, you have to visit the web page every few days to see if any bills have arrived so you don't miss them. If you get, say, 10 bills a month, this might not be too big a hassle. Therein lies the other problem: there are only a small handful of merchants that will bill you over this system. So for all your other bills, you'll have to go elsewhere.

所以现在如果你要从这个微软的系统里面获得你的账单,你就必须每隔几天就去访问这个网页。检查是不是有新的账单已经到了,这样你就不会错过任何账单。如果你每个月大概会收到比方如说10个账单,这个可能不是什么大麻烦。但是还有一些其他问题:只有很少的一部分商家愿意通过这个系统向你寄送帐单。所以你的其他账单都必须通过其他途径解决。

End result? It's not worth it. I would be surprised if 10,000 people are using this system. Now, Microsoft has to go to merchants and say, "bill your customers over our system!" And the merchants will say, "OK! How much will it cost?" And Microsoft will say, "50 cents! But it's a lot cheaper than $1!" And the merchants will say, "OK. Anything else?" And Microsoft will say, "Oh yes, it will cost you about $250,000 to set up the software, connect our systems to your systems, and get everything working."

结果呢?根本就不值得。如果有一万人在使用这个系统就让会让我很诧异了。现在微软必须要去拜访商家老说:你们用我们的系统向客户发送账单吧!然后商家就会问:这大概要花多少钱呢?然后微软回答说:五十美分,不是比一美元便宜多了嘛!然后对商家会说:哦,还有什么其他要求吗?微软会说:啊,是的,安装整个软件大概要花费25万美元,要把你们的系统跟我们的系统连接起来,然后让整个系统运作起来。

And since Microsoft has so few dang users on this system, it's hard to imagine why anyone would pay $250,000 to save 50 cents on 37 users. Aha! The chicken and egg problem has reared its ugly head! Customers won't show up until you have merchants, and merchants won't show up until you have customers! Eventually, Microsoft is just going to spend their way out of this predicament. For smaller companies, that's not an option. So what can you do?

然而因为微软在这个系统上的用户实在是太少了,实在很难想像为什么有人会愿意花25万美元来为37个客户节省五十美分。是的,这就是鸡和蛋问题问题又露出了它丑陋的面目。在你搞定商家之前客户不会出现,然而商家在你拥有客户之前也不愿意出现。最后,微软很可能还是会想办法解决这种困境。但是小公司不在这种选项之内,所以你会怎么做呢?

Software platforms actually gives us some nice hints as to how to roast your chicken and egg problem. Let's look a bit at the history of personal computer software platforms in the years since the IBM-PC came out; maybe we'll discover something!

软件平台实际上已经给了我们一些很好的启发:如何来对付你的鸡和蛋问题。让我们花点时间来看一下自从IBMPC诞生以来个人计算机软件平台发展的历史,也许我们能发现些东西。

Most people think that the IBM-PC required PC-DOS. Not true. When the IBM-PC first came out, you had a choice of three operating systems: PC-DOS, XENIX (a wimpy 8 bit version of UNIX published by, and I am not making this up, Microsoft), and something calledUCSD P-System, which was, if you can believe this, just like Java: nice, slow, portable bytecodes, about 20 years before Java.

大部分的人觉得IBMPC必须要用PCDOS。不对,当IBMPC诞生的时候,实际上有三种操作系统的选择。PC-DOS, XENIX(一个没落的八比特版unix,虽然这样说会让人觉得这是我编造出来的一样,但这是由微软开发出来的)还有一个叫做UCDP系统的玩意儿。这玩意儿如果你能相信的话就像Java很好,很慢,可移植字节码,但却在Java20年之前诞生。

Now, most people have never heard of XENIX or UCSD's weirdo stuff. You kids today probably think that this is because Microsoft took over the market for dinky operating systems through marketing muscle or something. Absolutely not true; Microsoft was tiny in those days. The company with the marketing muscle was Digital Research, which had a different operating system. So, why was PC-DOS the winner of the three way race?

现在的大多数人都没有听过XENIX或者UCSD之类的奇怪东西。你们如今的这些孩子们大概会觉得,这是因为微软通过市场营销或者其他什么手段统治了当时糟糕的操作系统市场。当然不对,在那个年代微软还是一个小公司,那个时候具有强大市场推销力量的公司是DigitalResearch,他们家有一个不同的操作系统。那么,为什么PCDOS是仨操作系统竞赛中的赢家呢?

Before the PC, the only real operating system you could get was CP/M, although the market for CP/M based computers, which cost about $10,000, was too small. They were cranky and expensive and not very user friendly. But those who did buy them, did so to use as word processors, because you could get a pretty good word processor called WordStar for CP/M, and the Apple II just could not do word processing (it didn't have lower case, to begin with).

在PC诞生之前,唯一能买到的真正的操作系统就是CP/M。基于CP/M的电脑大概每台卖到一万美元,但是它形成的市场还是太小。这些电脑又怪,又贵,并且对用户也没有那么友好。但是那些确实买了他们的用户们确实拿它来当字处理器来用。因为CP/M上面附带了挺不错的文字处理器软件叫做WordStar。而苹果二就不能做文字处理(至少它没有小写字母)。

Now, here's a little known fact: even DOS 1.0 was designed with a CP/M backwards compatibility mode built in. Not only did it have its own spiffy new programming interface, known to hard core programmers as INT 21, but it fully supported the old CP/M programming interface. It could almost run CP/M software. In fact, WordStar was ported to DOS by changing one single byte in the code. (Real Programmers can tell you what that byte was, I've long since forgotten).

然后还有一个小小的广为人知的事实,即:DOS1.0是内置了CP/M前向兼容性模式的。DOS不仅有自己漂亮的新的编程接口,今天的那些老牌程序猿可能还知道叫做INT21,但是他也完全兼容老的CP/M编程接口,因此都可以运行CP/M软件。事实上WordStar软件只改动了一个字节就被被移植到了DOS上,那些真正的程序员也许能够告诉你那个字节是什么,不过我早就忘记了。

That bears mentioning again. WordStar was ported to DOS by changing one single byte in the code. Let that sink in.

这件事情绝对值得再重提一遍,WordStar只改变了一个字节就移植到了DOS上。从这开始,仔细想想。

There.

Got it?

知道了吧!

DOS was popular because it had software from day one. And it had software because Tim Paterson had thought to include a CP/M compatibility feature in it, because way back in the dark ages somebody was smart about chicken and egg problems.

DOS为什么受欢迎,因为它拥有一开始以来的所有软件。他之所以有软件。是因为TimPaterson思考后决定兼容CP/M的特性。早在蛮荒时代,就已经有人把鸡和蛋问题搞的很清楚了。

Fast forward. In the entire history of the PC platform, there have only been two major paradigm shifts that took along almost every PC user: we all switched to Windows 3.x, and then we all switched to Windows 95. Only a tiny number of people ever switched to anything else on the way. Microsoft conspiracy to take over the world? Fine, you're welcome to think that. I think it's for another, more interesting reason, which just comes back to the chicken and the egg.

快进。在pc平台的整个历史上,所有的pc用户只经历过两次巨大的平台迁移:我们都迁移到了windows3.X;然后我们都迁移到了windows95。在此过程中只有很少的用户迁移到其他系统。是微软阴谋地统治了整个世界?好吧!你当然可以随意那样想。我认为是出于另外一个原因,另外一个更有趣的原因,这个原因又回到了鸡和蛋问题。

We all switched to Windows 3.x. The important clue in that sentence is the 3. Why didn't we all switch to Windows 1.0? Or Windows 2.0? Or Windows 286 or Windows 386 which followed? Is it because it takes Microsoft five releases to "get it right"? No.

我们都迁移到了Windows3.x系统,这句话的重点是3,我们为什么没有迁移到windows1.0,或是2.0,或者回到286,或者紧接下来的windows386。是因为微软花了五个发布才把事情搞对吗?不是的。

The actual reason was even more subtle than that, and it has to do with a very arcane hardware features that first showed up on the Intel 80386 chip which Windows 3.0 required.

实际的原因比那有精妙的多了。这个原因跟windows3.x操作系统所需要的一个非常神秘的硬件特性相关。这种特性首次出现在英特尔80386芯片上。

  • Feature one: old DOS programs put things on the screen by writing directly to memory locations which corresponded to character cells on the screen. This was the only way to do output fast enough to make your program look good. But Windows ran in graphics mode. On older Intel chips, the Microsoft engineers had no choice but to flip into full screen mode when they were running DOS programs. But on the 80386, they could set up virtual memory blocks and set interrupts so that the operating system was notified whenever a program tried to write to screen memory. Windows could then write the equivalent text into a graphical window on the screen instantly.

  • Feature two: old DOS programs assumed they had the run of the chip. As a result, they didn't play well together. But the Intel 80386 had the ability to create "virtual" PCs, each of them acting like a complete 8086, so old PC programs could pretend like they had the computer to themselves, even while other programs were running and, themselves, pretending they had the whole computer to themselves.

  • 特性一:旧DOS程序通过向跟屏幕上的字单元相对应的内存地址区域直接写数据实现屏幕输出。这是唯一一种能够让输出运行足够快进而使应用程序表现良好的唯一方式。但是Windows运行在图形模式。在旧的英特尔芯片上,当他们在运行旧DOS程序的时候,微软的工程师除了切换到全屏模式以外别无选择。但是在80386上面,可以设置虚拟内存快,然后是设置相应的中断。这样不论何时程序尝试向屏幕内存写数据的时候操作系统都会获得通知。这样Windows操作系统就能够马上同时在屏幕上的相应图形窗口下写入一致的文本。

  • 特性二:旧的DOS程序假设他们自己运行在芯片上面。结果,他们互相不能好好相处。但是英特尔80386芯片能够创建一个虚拟的计算机,这样他们中的每一个程序都可以表现得像一个完整的8086一样。因此旧的pc程序每一个都可以假装他们自己占有着整个芯片,哪怕同时有其他程序在运行,这些程序都可以假装他们占据着整个系统的资源一样。

So Windows 3.x on Intel 80386s was the first version that could run multiple DOS programs respectably. (Technically, Windows 386 could too, but 80386s were rare and expensive until about the time that Windows 3.0 came out.) Windows 3.0 was the first version that could actually do a reasonable job running all your old software.

所以运行在Intel80380芯片上的Windows3.x是能够分别同时运行若干DOS程序的第一个版本。(技术上来讲,windows386也可以,但是80386在Windows3.0发布之前非常罕见而且非常昂贵)。 Windows3.0是你能够运行所有旧的软件同时工作的第一个版本。

Windows 95? No problem. Nice new 32 bit API, but it still ran old 16 bit software perfectly. Microsoft obsessed about this, spending a big chunk of change testing every old program they could find with Windows 95. Jon Ross, who wrote the original version of SimCity for Windows 3.x, told me that he accidentally left a bug in SimCity where he read memory that he had just freed. Yep. It worked fine on Windows 3.x, because the memory never went anywhere. Here's the amazing part: On beta versions of Windows 95, SimCity wasn't working in testing. Microsoft tracked down the bug and added specific code to Windows 95 that looks for SimCity. If it finds SimCity running, it runs the memory allocator in a special mode that doesn't free memory right away. That's the kind of obsession with backward compatibility that made people willing to upgrade to Windows 95.

转向Windows95?没问题。漂亮的32位应用程序接口,但是仍然能够完美运行十六位的软件。微软开始痴迷于此。他们找到了所有能找到的旧程序,花费了大量的额外测试来确保这些程序可以运行在windows95上。JanRoss是Windows3.x行SimCity的原版作者。他告诉我说,他很偶然的在SimCity里面留下了一个错误。他的软件会去读取刚刚释放了内存。是的,这个软件能够在windows3.X上正确运行。因为内存又不会泄漏到什么其他地方去。下面是最让人吃惊的部分:在windows95的公开测试版本中,SimCity并不能在测试中运行,微软发现了这个错误,为了让SimCity能在windows95上工作,他们增加了相应的代码。如果发现SimCity在运行,他们就会让内存分配器以一种特殊模式工作。在这种模式下,分配器并不会以正确的方式释放内存。这就是微软对于前向兼容的那种痴迷。正是这种痴迷使得人们愿意升级他们的Windows95。

You should be starting to get some ideas about how to break the chicken and egg problem: provide a backwards compatibility mode which either delivers a truckload of chickens, or a truckload of eggs, depending on how you look at it, and sit back and rake in the bucks.

你应该开始对如何打破鸡和蛋问题僵局有一些想法了。通过提供一种,前向兼容模式:要么能够提供一卡车鸡,要么提供一卡车蛋。取决于你如何看待这个问题。然后就悄悄收身,收割这些问题。

Ah. Now back to bill presentment. Remember bill presentment? The chicken-egg problem is that you can only get your Con Ed bills, so you won't use the service. How can you solve it? Microsoft couldn't figure it out. PayMyBills.com (and a half dozen other Silicon Valley startups) all figured it out at the same time. You provide a backwards compatibility mode: if the merchant won't support the system, just get the merchant to mail their damn paper bills to University Avenue, in Palo Alto, where a bunch of actual human beings will open them and scan them in. Now you can get all your bills on their web site. Since every merchant on earth is available on the system, customers are happy to use it, even if it is running in this weird backwards compatibility mode where stupid Visa member banks send the bill electronically to a printer, print it out on paper, stuff it in an envelope, ship it 1500 miles to California, where it is cut open, the stupid flyers harping worthless "free" AM clock radios that actually cost $9.95 are thrown into a landfill somewhere, and the paper bill is scanned back into a computer and stuck up on the web where it should have been sent in the first place. But the stupid backwards compatibility mode will eventually go away, because PayMyBills.com, unlike Microsoft, can actually get customers to use their system, so pretty soon they'll be able to go to the stupid Visa member banks and say, "hey, I've got 93,400 of your customers. Why don't you save yourselves $93,400 each month with a direct wire connection to me?" And suddenly PayMyBills.com is very profitable while Microsoft is still struggling to sign up their second electric utility, maybe one serving Georgia would be a nice change of pace.

啊,现在回到账单呈现问题。还记得帐般呈现吗?鸡和蛋问题在于,你只能拿到你的ConEd的账单,所以你不会使用这项服务。那么你如何解决他呢?微软没有能想出解决方案,但是paymybills.com,还有几个硅谷的创业公司同时想出了这个问题的解决方案。你可以提供一个前向兼容模式,如果商家不愿意使用这个系统。你可以让他们把他们该死的纸质账单邮寄到PaloAlto大学路,那有一大堆人类会打开这些账单,并且将账单扫描。这样你就能够在你的网站上获得你所有的帐单了。既然世界上所有的商家都能被这个系统支持了,客户就很乐于使用这个系统了。哪怕在这种奇怪的兼容模式下,有些愚蠢的Vista成员银行会把账单先自动的发送到打印机,打印出纸张,然后把它放进一个信封,运输1500英里到加利福尼亚然后在那儿对打开剪开,这种附带着那些没用的免费早晨闹钟广告(实际上要花费9.95美元)的愚蠢账单最后会在一个类似垃圾填埋场的地方处理。最后又被扫描进一个一个电脑传送到网站。网站才是他一开始要送达的地方。但是这种愚蠢的前向兼容模式最后还是会消失,因为paymybills.com不像微软,实际上已经有顾客在使用他们的系统。所以用不了多久他们就能够走到那个愚蠢的Vista成员银行,然后跟他们说:我已经拥有了你们93400多个客户,那你为什么不直接搞个电线连到我们的系统,然后每个月节省93400美元。突然paymybills.com就开始盈利了,而微软仍在挣扎着让第二家电子工具厂商注册他们的系统。也许开始在加利福尼亚提供这项服务是个不错的转折。

Companies that fail to recognize the Chicken and Egg problem can be thought of as boil the ocean companies: their business plan requires 93,000,000 humans to cooperate with their crazy business scheme before it actually works. One of the most outrageously stupid ideas I ever encountered was called ActiveNames. Their boneheaded idea was that everybody in the world would install a little add-in to their email client which looked up people's names on their central servers to get the actual email address. Then instead of telling people that your email address is kermit@sesame-street.com, you would tell them that your ActiveName is "spolsky", and if they want to email you, they need to install this special software. Bzzzzzt. Wrong answer. I can't even beginto list all the reasons this idea is never going to work.

没有认识到鸡和蛋问题的公司可以被看成是想要烧开大海的公司。他们的商业计划在真正行得通之前需要九千三百万人类来配合他们的疯狂想法。我遇到过的一个最最最愚蠢的创业计划是一个叫做ActiveNames的创业计划。他们的核心想法就是:世界上的每一个人都会在他们的电子邮件客户端安装一个小小的插件,这个插件会使用人的名字在他们的中央服务器查询相应的email地址,最后它不会直接告诉你email地址比如说(kermit@sesame-street.com)是什么,而是会告诉你真正的名字(比如spolsky)是什么。如果人们要发邮件给你,他就必须得安装这种特殊的软件。鬼扯,简直离谱。我甚至都不愿意去列举这种想法根本行不通的原因。

Conclusion: if you're in a market with a chicken and egg problem, youbetter have a backwards-compatibility answer that dissolves the problem, or it's going to take you a loooong time to get going (like, forever).

结论就是:如果你所在的市场有鸡和蛋问题,你最好提供一种前向兼容性来消除这种问题。否则他就会花费你很长很长的时间最后才能工作(很长是指永远)。

There are a lot of other companies that recognized the chicken and egg problem face on and defeated it intelligently. When Transmetaunveiled their new CPU, it was the first time in a long time that a company that was not Intel finally admitted that if you're a CPU, and you want a zillion people to buy you, you gotta run x86 code. This after Hitachi, Motorola, IBM, MIPS, National Semiconductor, and who knows how many other companies deceived themselves into thinking that they had the right to invent a new instruction set. The Transmeta architecture assumes from day one that any business plan that calls for making a computer that doesn't run Excel is just not going anywhere.

有很多其他公司认识到了鸡和蛋的问题,并且聪明的击败了这个问题。当Transmeta发布他们的新CPU的时候,这是很长时间以来,在日立,摩托罗拉,IBM,MIPS,国家半导体之后第一家非英特尔系的公司声称如果你是一个CPU制造商,而且你想要大量的用户采用你的CPU,你必须得支持X86代码。谁知道还有多少其他公司在欺骗他们自己说他们有权发布一种新的指令集。Transmeta架构从一开始就假定说任何的商业计划,如果让一个电脑却不能运行Excel,是走不了多远的。