Joel on Software

Joel on Software   このページは"ジョエル・オン・ソフトウェア

 

※新しい翻訳はJoel on Software Translation Projectにあります。

その他の "Joel on Software" の記事(日本語)

その他の "Joel on Software" の記事(英語)

著者へのメール(英文のみ)

 

ストラテジーレターⅡ:鶏と卵の問題


Joel Spolsky ジョエル・スポルスキ
翻訳: Yasushi Aoki 青木靖
2000/5/24

広告の本質は捕まらずに嘘をつくということだ。多くの企業は広告キャンペーンを行うとき、単に彼らの会社の最も具合の悪い事実を取り上げ、それを上下逆さまにし(「嘘」)、そしてその嘘をよく練習するのだ。これを「繰り返される主張による証明」と呼ぶことにしよう。たとえば飛行機旅行というのは窮屈で快適なものではなく、航空会社の従業員は無作法で気に障り、そもそも商用航空システム全体が拷問の手段としてデザインされている。そこでほとんどあらゆる航空会社の広告は、飛行機旅行がいかに快適楽しいものであり、その中のあらゆる場面であなたがいかにちやほやされるかという話になる。飛行機の座席でバスケットの中の赤ん坊になった夢を見ているビジネスマンの広告を英国航空が見せるとき、すべての合理性の感覚は永遠に消え失せる。

もっと他の例が必要?製紙会社は私たちの国有林を完全に荒廃させ、彼らが所有すらしていない原生林を皆伐している。だから彼らが広告するときは、素敵な古い松の森を示しながら、彼らがいかに環境を気に掛けているかという話をする。タバコは死因となるので、その広告は、健康な人々が幸福な笑顔を浮かべつつ野外で運動しているようなシーンで生命感を誇示する。等々。

最初にMacintoshが現われたとき、それで使えるソフトウェアは存在しなかった。そこでAppleは「手に入る」すべてのすごいソフトウェアをリストした大きくてつやつやしたカタログを作った。リストされていた商品の半分は、「開発中」と書かれており、後の半分は愛でも金でも手に入れることはできなかった。中には誰も買わないようなひどい製品もあった。しかし各ページごとに1つのソフトウェア「製品」が熱のこもった文章で解説されているぶ厚いつやつやしたカタログでも、あなたは128KBメモリのMacintoshで動かせるワープロもスプレッドシートも買えないのだという事実をごまかすことはできなかった。NeXTやBeOSにも似たような「ソフトウェア製品ガイド」があった。(NextやBeOS偏執者への注意:あなたのひどいオペレーティングシステムについてのどんな論争も私はしようと思わない。いいかい?議論したければ自分のコラムを書いてくれ。) そういったソフトウェア製品ガイドが言っている唯一のことは、そのシステムで使えるソフトウェアがないということだ。もしあなたがそんな獣のどれかに出会ったら、すぐに反対の方に逃げることだ。

Amiga、Atari ST、Gem、IBM TopView、NeXT、BeOS、Windows CE、General Magic、失敗した「新しいプラットフォーム」のリストはどこまでも続く。それらはプラットフォームであり、その上で走るうまみのあるソフトウェアがなければ、それ自体としてはおもしろいものではない。ごくわずかの例外を別にすれば(そしてAmigaやRSTS-11のような難解で愛されないプラットフォームの退屈なサポーターからサーバいっぱいのemailを受け取ることになるだろうことを私は確信しているのだが)、同じ労力でWindowsのような1億人のユーザがいるプラットフォームのためのソフトウェアを作れるというのに、BeOSのような一番いいときでも10万人のユーザしかいないプラットフォームのためのソフトウェアを、ほんのわずかでも常識をそなえたソフトウェア開発者が意識的に書くということは考えられない。そもそもそんな風変わりなシステムのためにソフトウェアを書く人がいるという事実が、利潤という動機がすべてじゃないということを証明している:宗教的情熱は依然として健在なのだ。よかったね、ダーリン。あなたはTimex Sinclair 1000のためにmicroEmacsクローンを書いた。ブラボー。25セントあげるから、何か買うといい。

だからあなたのビジネスがプラットフォームを作ることであるなら、一般には鶏と卵の問題として知られているものによって苦しめられることになるだろう。その上で走る良いソフトウェアができるまでは誰もあなたのプラットフォームを買おうとはしない、そしてそれが大きなインストールベースを持つようになるまでは、誰もそのためのソフトウェアを書こうとはしない。ウープス。これは一種のゴルディアスの結び目なのだが、ゴルディアスのデス・スパイラルとでも言ったほうがより当たっているだろう。

鶏と卵の問題とそのバリエーションは、初歩的戦略で理解すべき最も重要なものだ。そう、確かにあなたはそれを理解していなくともおそらく生きていくことはできるだろう。スティーブ・ジョブズは実際、鶏と卵の問題を理解せずに2度も出世したのだ。しかしジョブズのように現実歪曲フィールドを自由に操ることのできない私たちは、本気になって熱心に学ぶ必要がある。

レッスン1。鶏と卵の問題の典型的な領域はソフトウェアプラットフォームだ。しかしここにもうひとつ鶏と卵の問題がある:毎月、何百万ものクレジットカード会社が膨大な請求書を消費者に郵送している。人々は小切手を書いて何兆もの封筒に入れ、郵便で送り返す。それらの封筒は大きな箱に詰められ、封筒を開封して処理する労働コストが安い国へと運ばれる。しかしそれでもオペレーションコストは全体として相当なものとなる。私が聞いた最新の数字では、請求書一通につき1ドル以上かかるということだ。

私たちインターネット的人間にとって、これはジョークのようだ。あなたは「請求書をemailしてくれ、オンラインで払うから!」と言う。あなたは「そのコストは10万分の1セントくらいなものだろう。何百万ドルも節約できる。」みたいなことを言うだろう。

そしてあなたは正しい。だから多くの会社がこの分野に参入しようとし、それは専門用語ではビル・プレゼントメントとして知られている。そしてそのひとつの例が(誰だと思う)Microsoftなのだ。彼らのソリューションであるTransPointはこんな感じだ:それはWebサイトで、あなたがそこへ行くと、それはあなたの請求書を見せてくれ、あなたはその支払いをする。

さて、あなたが請求書をMicrosoftのシステムに入れるようになると、請求書を見落とさないよう数日おきにそのWebページを訪れて請求書が届いてないかチェックする必要がある。もしあなたの受け取る請求書が月に10通程度なら、これはそんなに面倒ではないだろう。しかし別な問題がある:このシステムで請求書を送ってくれる小売業者はごくわずかだということだ。だからそのほかの請求書については、あなたは別なところへ行く必要がある。

結論は何かって?それは価値がない、ということだ。もし1万もの人がこのシステムを使っているとしたら驚きだ。さて、Microsoftは個々の商店を訪問して話をする必要がある。「このシステムを使って顧客への請求を行ってください。」すると商店主は「OK!でコストは?」と聞き、Microsoftは「50セント!これは$1に比べればずっと安い!」と言う。それで商店主が「OK。他に何かありますか?」と聞くと、 Microsoftは「ええ、ソフトウェアをセットアップしてシステムを接続し、すべてが機能するようにするのに25万ドルかかります。」と答える。

Microsoftはこのシステムにほんのわずかのユーザしか持っていないので、37人のユーザについて一人あたり50セント節約するために誰かが25万ドルも払うというのは想像しにくい。ああ!鶏と卵の問題が醜い頭をもたげてくる!顧客はあなたがたくさんの商店を確保するまでやって来ないし、商店はあなたがたくさんの顧客を確保するまでやって来ない。結局、Microsoftはこの窮地から抜け出すだろう。しかしもっと小さな会社には、この選択肢はない。では何ができるか?

ソフトウェアプラットフォームはあなたの鶏と卵の問題をどう料理すればいいかについて、よいヒントを与えてくれる。IBM PCが現われて以来のパーソナルコンピュータのためのソフトウェアプラットフォームの歴史をちょっと見てみよう。何か見つけられるかもしれない!

ほとんどの人々はIBM PCにはPC-DOSが必要だと思っている。正しくない。IBM-PCが最初に現われたとき、あなたには3つの選択肢があった。PC-DOS、XENIX (軟弱な8ビットバージョンのUNIXで、作り話じゃなく、Microsoftが作った)、それにUCSD P-Systemと呼ばれるもので、これはあなたが信じるなら、ちょうどJavaみたいなものだった:よくできた遅くてポータブルな、Javaの約20年前に作られたバイトコードだ。

今やほとんどの人々は、XENIXやUCSDの奇妙なシステムについて聞いたことがないだろう。若い人たちは、Microsoftがマーケティングの力か何かを使って小さいオペレーティングシステムに対するマーケットを支配したためだと考えるかもしれない。全然違う。Microsoftは当時小さな会社だったのだ。マーケティングの力を持っていた会社はDigital Researchのほうで、これは別のオペレーティングシステムを持っていた。ではなぜPC-DOSが3者の競争に勝ったのか?

PC以前に、あなたが手に入れることのできた本物のオペレーティングシステムはCP/Mだけだったが、1万ドルほどしたCP/Mベースのコンピュータのマーケットは非常に小さかった。それは不安定で高価であり、あまりユーザフレンドリではなかった。それを買った人々というのはワードプロセッサを使うために買ったのであり、それはWordStar for CP/Mという非常に良いワードプロセッサがあったからで、Apple IIでは単にワードプロセシングができなかったのだ(そもそもそれでは小文字が使えなかった)。

さて、ここにそれほど知られていない事実がある:DOSはバージョン1.0でさえCP/M後方互換モードが組み込みでデザインされていたということだ。それは筋金入りのプログラマたちにINT 21として知られている気の利いた独自の新しいプログラミングインタフェースを持っていただけでなく、CP/Mのプログラミングインタフェースをフルサポートしていた。それはCP/Mのソフトウェアをほとんど動かすこともできた。事実、WordStarはコードの中の1つのバイトを変えることでDOSに移植されたのだ。(本物のプログラマがそのバイトが何であったか教えてくれるだろう。私はだいぶ昔に忘れてしまったが。)

これはもう一度言うに値する。WordStarはコードの中の1つのバイトを変えることでDOSに移植された。十分に理解しよう。

ほら。

分かった?

DOSが人気があったのは、それがはじめからソフトウェアを持っていたからだ。そしてそれがソフトウェアを持っていたのは、ティム・パターソンがCP/M互換機能を含めることにしたからであり、それはこの暗黒時代に鶏と卵の問題を分かっている人がいたからなのだ。

早送りしよう。PCプラットフォームの歴史全体の中で、ほとんどすべてのPCユーザに関わるパラダイムシフトはたった2回しかなかった:私たちみながWindows 3.xに乗り換えたときと、そのあとWindows 95に乗り換えたときだ。その途中でほかのものに乗り換えた人々はほんのわずかだ。これはMicrosoftの世界支配の陰謀だろうか?よろしい、あなたがそう考えるのは結構だ。私は別なように、もっと面白い理由を考えており、それは鶏と卵の問題に戻ってくる。

私たちはみんなWindows 3.xに乗り換えた。この文章で重要な手がかりとなるのは3と言う数字だ。なぜ私たちはみんな、Windows 1.0に乗り換えなかったのだろう?あるいはWindows 2.0に?あるいはその後のWindows 286やwindows 386に?Microsoftがものごとを「ちゃんとやる」のに5つのリリースを必要とするからだろうか?違う。

実際の理由はもっと微妙なもので、Windows 3.0が必要としたIntel 80386チップで初めて現われたとても難解なハードウェアの機能に関係している。

  • 機能1:古いDOSプログラムはスクリーンに何か表示するとき、スクリーンのキャラクタセルに対応するメモリ位置に直接書き込みをしていた。これがあなたのプログラムが良く見えるよう十分速く出力を行うための唯一の方法だった。しかしWindowsはグラフィックモードで走る。古いIntelチップでは、DOSプログラムを走らせるときはフルスクリーンモードに切り替える以外、Microsoftエンジニアには選択肢がなかった。しかし80386では、仮想メモリブロックをセットアップして、プログラムがスクリーンメモリに書き込もうとするとオペレーティングシステムが通知を受けるように割り込みを設定することができた。Windowsはそのあと同じテキストをスクリーン上のグラフィックウィンドウに即座に描くことができた。
     
  • 機能2:古いDOSプログラムはチップ上の実行を握っていると仮定していた。結果として、それらは一緒にするとうまく動かなかった。しかしIntel 80386には「仮想」PCを作る機能があり、そのそれぞれは完全な8086のように振る舞うので、古いPCプログラムがコンピュータを占有しているように見せかけることができ、それは他のプログラムが実行されている場合でもよく、そしてそれらのプログラムのそれぞれもまたコンピュータを占有しているように見せかけているのだ。

したがってIntel 80386上のWindows 3.xは複数のDOSプログラムを同時に動かせる最初のバージョンだった。(技術的には、Windows 386にもそれができたが、しかし80386チップはWindows 3.0が現われる頃まで一般的ではなく、高価だった。) Windows 3.0は、あなたのすべての古いソフトウェアを満足に動かすことのできた、最初のバージョンだったのだ。

Windows 95はどうか?問題ない。素晴らしい新しい32ビットAPIを持ち、古い16ビットソフトウェアも依然として完璧に動かすことができた。 Microsoftはこのことに取り付かれており、彼らの見つけることのできたあらゆる古いプログラムがWindows 95で動くか膨大なテストを行った。SimCity for Windows 3.xのオリジナルバージョンを書いたジョン・ロスは、開放したメモリを読もうとするバグがSimCityにはあったと私に話してくれた。そう。それは Windows 3.xではちゃんと動くが、それはメモリが決してどこにも行かないからだ。驚くのは次のことだ:Windows 95のベータ版のテストでSimCityは動かなかった。Microsoftはそのバグを追いかけ、Windows 95にSimCityを検出するコードを追加した。それがSimCityが実行されているのを見つけると、それはメモリをすぐには開放しない特殊なモードでメモリアロケータを実行するのだ。この強迫的なまでの後方互換性が人々にWindows 95にアップグレードしたいと思わせたのだ。

あなたは鶏と卵の問題をどうやって破るかについて、アイディアをつかみ始めたに違いない:あなたが問題をどう見ているかに応じてトラックいっぱいの鶏か、あるいはトラックいっぱいの卵をもたらす後方互換モードを提供し、あとは座って金をかき集めるのだ。

さて、ビル・プレゼントメントに戻ろう。ビル・プレゼントメントは覚えている?ここでの鶏と卵の問題は、あなたが受け取れるのはCon Ed(Consolidated Edison、電気事業者)の請求書だけで、そのためあなたはそのサービスを使わないということだ。あなたはどうやってこれを解けるか? Microsoftには見つけられなかった。PayMyBills.com(およびその他の半ダースほどのシリコンバレーの新興企業)は同時に答えを見つけた。後方互換モードを提供すればいいのだ:商店がこのシステムをサポートしないのであれば、その商店に紙の請求書をパロアルトのユニバーシティアベニューに送らせて、大勢の実際の人間がそれを開封してスキャンする。今やあなたはすべての請求書を彼らのWebサイトで見ることができる。間抜けなVisa加盟銀行が請求書の電子データをプリンタに送り、それを紙にプリントし、それを封筒に詰め、それを1500マイル離れたカリフォルニアに送り、そこで開封され、実際には9.95ドルする「無料の」役立たずな時計付きAMラジオについてくどくどと書かれた間抜けなビラはどこかの埋立地に投げ捨てられ、紙の請求書の方はコンピュータにスキャナで読み込まれ、それがそもそものはじめから送られるべきであったWebに掲示される、という奇妙な後方互換モードでそれが動いているとしても、地上のすべての商店がこのシステムで利用可能なので、顧客は喜んでこれを使う。しかし間抜けな後方互換モードはついにはなくなるだろう。というのはPayMyBills.comはMicrosoftとは違い、彼らのシステムを実際に使う顧客を獲得することができ、すぐに彼らは間抜けなVisa加盟銀行に行ってこう言うことができるからだ。「私は93,400人のお宅の顧客を持っています。私たちと直接ネットワーク接続して月に93,400ドル節約すると言うのはどうです?」 PayMyBills.comは突然とても高収益となり、一方Microsoftは依然として2番目の、たぶんジョージアあたりでサービスを行っている電気事業者から契約を取り付けようともがいている。

鶏と卵の問題を認識できなかった会社というのは、海を沸かそうとする会社の一種と考えられるかもしれない:彼らのビジネスプランは、それが実際機能し始める前に、9,300万人の人々が彼らの気違いじみた事業計画に協力することを要求している。私が出会った最もはなはだしくばかげたアイディアはActiveNamesと呼ばれるものだ。彼らの間抜けなアイディアは、人々の名前を中央サーバで検索して実際のemailアドレスを見つける小さなアドインプログラムを世界中のすべての人々が自分のemailクライアントにインストールする、というものだ。そうするとあなたは人々にemailアドレスが kermit@sesame-street.comだと教えるかわりに、あなたのActiveNameが"spolsky"であることを教え、彼らがあなたにemailしたければ、まずこの特別なソフトウェアをインストールする必要があるのだ。ブー。間違った答えだ。私はこのアイディアがうまく行かない理由をリストアップし始める気にさえならない。

結論:あなたが鶏と卵の問題のあるマーケットにいるのなら、あなたはその問題を解く後方互換機能を持ったほうがよく、そうしなければ、うまくいくのに非常に長ーい(たぶん永遠の)時間がかかるだろう。

他にもたくさんの会社が鶏と卵の問題を認識し、立ち向かい、知的な仕方で克服している。Transmetaが彼らの新しいCPUを披露したとき、もしあなたがCPU会社で多くの人々があなたの製品を買うことを望むならx86コードを動かせなきゃいけない、ということをIntel以外の会社がついに認めたのは、久しい期間をおいて初めてのことだった。これはHitachi、Motorola、IBM、MIPS、National Semiconductor、その他のたくさんの会社が、自分には新しい命令セットを発明する権利があると誤解した後のことだった。Excelを動かせないコンピュータを作るようなビジネスプランは、どんなものであれうまく行かない、ということを、Transmetaのアーキテクチャはその最初の日から前提としているのだ。



この記事の原文(英語)は Strategy Letter II: Chicken and Egg Problems です。 

ジョエル・スポルスキは、ニューヨーク市の小さなソフトウェア会社  Fog Creek Software の設立者です。イェール大学を卒業後、マイクロソフト社、Viacom社、 Juno社でプログラマとして働きました。


このページは著者の個人的な意見を掲載したものです。
All contents Copyright ©1999-2005  by Joel Spolsky. All Rights Reserved.

FogBUGZ | CityDesk | Fog Creek Software | Joel Spolsky