Joel on Software

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

 

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

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

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

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

 

ストラテジー・レターIV:ブロートウェアと80/20の神話


Joel Spolsky ジョエル・スポルスキ
翻訳: Yasushi Aoki 青木靖
2001/3/23

MicrosoftのフラッグシップスプレッドシートプログラムであるExcelのバージョン5.0は1993年にリリースされた。それは間違いなく巨大なソフトウェアで、まるまる15メガバイトのディスクスペースを必要としていた。その当時は、私たちの最初のPC用ハードディスクの容量が20MBだった(1985年頃)ことを私たちはまだ覚えており、15MBというのは確かに大きく思えた。

Excel 2000が現われたとき、それはべらぼうな146MBを必要としており・・・それはほんど10倍にもなっている!まったくあのルーズなMicrosoftのプログラマたちときたら、そう思わない?

そうじゃない。

あなたは私がネット上にあふれている「ブロートウェア」を嘆くあの退屈なアーティクルを書こうとしているのだと、きっと思っていることだろう。ぶーぶーぶー、こいつはブロートしている、嘆かわしいことだ、edlinやviはほっそりしていて、WordやEmacsなんかよりずっと良かった、などなど。

はっはっは!うそだよー!そんなアーティクルを書くつもりはない、正しくないからだ。

1993年、当時のハードディスクのコストからすると、Microsoft Excel 5.0は36ドル分のハードディスクスペースを使っていた。

2000年、その時点でのハードディスクのコストからすると、Microsoft Excel 2000は$1.03分のハードディスクスペースを使っている。

(これらの数字はこのハードディスク価格データを元に物価上昇分を調整したものだ。)

本当の意味では、Excelは実質的に小さくなっているようなものだ!

正確にはブロートウェアとは何だろうか?The Jargon Fileは悪意に満ちた定義をそれに与えている。「小さな機能に対し割の合わないほど多くのディスクスペースとメモリを要求するソフトウェアのこと。とくにアプリケーションやOSのアップグレードに対して使われる。この言葉とその現象は、Windows/NTの世界で非常に一般的である。」

私はこの人たちは単にWindowsを嫌っているのだと思う。私はWindows 386(1989年)が仮想メモリを備えるようになって以来10年以上、メモリを使い切ったということがない。そしてハードディスクスペースの値段はメガバイトあたり0.0071ドルにまで下落しており、そしてなおも、飛べるようになろうとして木から飛び降りる羊のように、急落し続けている。

Linus Åkerlundが説明してくれるかもしれない。彼は彼のWebページで書いている。「これらのブロートしたプログラムを使うことの難点は、あなたがほんのちょっとしたことをしたい場合でも、この非常に大きなプログラムをロードしなければならないということだ。それはあなたのメモリを使い尽くしてしまう・・・あなたは自分のシステムを効率的な仕方で使っていない。あなたはシステムを実際よりも非効率的に見えるようにしており、それはまったく必要のないことなのだ。」

おお、それはあなたのメモリを使い尽くしてしまう。わかった。実際には、それは使い尽くしたりしない。1987年のWindows 1.0以来、このオペレーティングシステムはそれが使うページしかロードしないのだ。あなたが15MBの実行形式を持っていて2MBのページ相当のコードしか使わない場合、あなたがハードディスクからRAMにロードするのは2MB分だけだ。実際あなたがWindowsの比較的新しいバージョンを使っているなら、OSはハードディスク上のそれらのページを自動的に整理して連続的になるようにし、プログラムが次回はもっと早く起動するようにする。

そして今日の高性能、低価格なコンピュータが大きなプログラムをロードする時間が、ほんの5年前の小さなプログラムのロード時間より速いことを誰も否定しないと思う。では何が問題なのか?

RA Downesがヒントをくれる。彼は何時間もかけて小さなMicrosoftのユーティリティを分析しており、それが1メガバイトもあることに怒っている(彼がそのアーティクルを書いた時点で3.15 セント分のハードディスクだ)。彼の意見では、そのプログラムは95%小さくすべきだったということだ。ジョークみたいなのは、彼が分析しているのはあなたがおそらく聞いたこともないRegCleanというプログラムだということだ。これはWindowsのレジストリを調べて、使われていない項目を削除するプログラムだ。レジストリの使われてない部分のクリーンアップに気を使うというのは少し強迫神経症気味に違いない。それで私はブロートウェアに心を悩ませているというのは、ソフトウェアの問題というよりは精神衛生の問題じゃないかと思い始めた。

実際ブロートウェアには大きな理由がたくさんあるのだ。1つには、プログラマがコードの大きさを気にしなくて良いなら、彼らはより早く出荷できる。そしてそれはより多くの機能を意味し、機能はあなたの人生をより良くし(あなたがそれを使うとき)、そして通常それは何も傷つけない(あなたがそれを使わないとき)。あなたのソフトウェアベンダが出荷を止め、コードのシェイプアップに2ヵ月かけて50%小さくしたとしても、あなたにとっての利益は認識できないほどだろう。あなたがハードディスクをいつもいっぱいにしていて、デュランデュランのMP3ファイルをもう1つダウンロードできるだけだ、というのなら話は別だが。しかしあなたにとって新しいバージョンのために2ヵ月余計に待つことの損失は認識可能であり、ソフトウェア会社が2ヵ月のセールスをあきらめることによる損失はさらに悪い。

多くのソフトウェア開発者は昔ながらの「80/20」ルールに魅了されている。80%の人々は20%の機能しか使わない、というのは大いに意味があるように見える。それであなたは20%の機能だけ実装すればよく、それでも80%は売れると思い込む。

残念ながら、それは決して同じ20%ではないのだ。みんな異なる機能セットを使っている。過去10年間、互いに学ばないと心に決めた何ダースもの会社が、20%の機能だけ実装した「ライト版」ワードプロセッサをリリースしようとしたのを聞いてきた。これはPCの歴史と同じくらい古い。ほとんどの場合、起こることは、彼らがプログラムをジャーナリストにレビューしてもらい、ジャーナリストはその新しいワードプロセッサを使ってレビューを書くことでレビューを行い、そしてジャーナリストは、通常厳格な字数制限があるため「ワードカウント」機能を使おうとするがそれは見つからず、なぜならそれは「誰も使わない80%」の中にあるためで、ジャーナリストは結局、軽いプログラムは良くブロートは悪いという主張と、私はワードカウントできない出来損ないは使えないという主張を同時にしようとする記事を書くことになる。これが起きるたびに1ドルもらえたならうれしいのだが。

あなたが「ライト版」の製品のマーケティングを始めて、「どうです、軽いでしょう。たった1MBだ。」と人々に言い、彼らはとても喜んで、それが彼らにとって必須の機能を持っているか聞くが、それがないと分かると彼らは買わない。

結論:あなたの戦略が「80/20」なら、あなたはソフトウェアを売るのに問題を抱えることになるだろう。それが現実なのだ。この戦略はソフトウェア業界自体と同じくらい古くからあり、そして単に報われないのだ。いかに多くの即席の会社の経営者たちがそれをうまく行きそうだと考えるかは驚くばかりだ。

ジェイミー・ザウィンスキーは、オリジナルバージョンのNetscapeが世界を変えたことについて議論しながら、そのことをよく説明している、「もしそういうことなら分かりやすいのだろうけど、Mozilla(Netscape 1.0)が大きいのは役にたたないゴミでいっぱいだからではない。Mozillaが大きいのはあなたの必要が大きいからだ。あなたのニーズが大きいのはインターネットが大きいからだ。小さくて貧弱なWebブラウザがたくさんあるが、それは役に立つことはほとんど何もしない。しかし輝く宝石の完璧さは、私たちがMozillaを書いたときの目的ではなかった。」



この記事の原文(英語)は Strategy Letter IV: Bloatware and the 80/20 Myth です。 

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


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

FogBUGZ | CityDesk | Fog Creek Software | Joel Spolsky