Windows のバージョン情報にだまされるな

http://www.okanos.com/2008/06/24084320.html を読んでみて思ったこと。
とりあえず、元記事の作者さんはエンジニアだと思って書いてますんで、前提条件が違ったらごめんなさい。


プログラムの新しいバージョンってのは、大抵の場合ゼロからはつくり直さないですよね。前身があってその続きが作られるわけです。ほとんどのケースでコードの流用が行われ、過去の資産が継承されます。
Windows などは利用者 (特に管理者) がバージョンを理解しやすいように、Windows NT 4.0 やら Windows 2000 やらと名づけられていましたが、裏では Windows NT 3.0 から脈々と続くビルド番号があるわけです。Windows NT 3.x のころは三桁、Windows 2000 くらいから 4 桁になりましたっけ。Vista では 2000 番台から一気に 6000 番へ上げるという悪戯 (ではなく、理解しやすさを高めるための工夫) までしてますね。とりあえずこの番号は、進むことはあっても戻ることはない、というルールがあるみたいです。まぁ、こんなことはギーク同士の飲み会で語ればいい話なのでこのくらいにしておきます。
重要なのは、そういう表だった表記の裏では脈々と続くコード修正と再コンパイルという作業工程を延々スパイラルに続けていく、という単純作業があるのみだという事実なのです。それは過去のコードを流用しているということにつながります。
つまり、その作業の実態は過去の改善であって、メジャーリリースやらマイナーリリースやら、サービスパックやらというのは、利用者に分かりやすく物事を伝えるための、キャッチのようなものだということなのです。


というわけで、

リリース前に初期バージョンが消えてしまってる

こうして繰り返されたサイクルの何をもって「初期」と呼べばいいかなんて、結局決めの問題なんですよ。つまり言葉だけでは無意味なのです。ここ大切なのでもう一度繰り返します。数字や、初期や Service Pack などというキャッチーな文字列は単独では無意味です。
本質は、そのバイナリがどのマイルストーンに所属しているか、ビルドはどの程度か、いやむしろその先の「何ができるか」「どんな問題 (Issue or Problem) があるか」といった情報を理解することなのです。そして、現場を知っているエンジニアは、この少ない文字列から得られる本質が、どれだけ情報にあふれているかを体で理解しているはずです。だからこそ「Service Pack をインストールしましょう」、「このバージョンの Windows は延長サポート フェーズに入りましたからそろそろ更改を」と提案できるわけです。

ユーザとしては、新規リリースのOSがSP1からだと、何か欠陥品?
なんてイメージも無くはありません、こんな事を考えるのは私でしょうか?

こんな話も、エンジニアが誤解を解いてあげればいいだけです。「Service Pack なんて言葉は (ユーザーにとっては) 飾りですよ」と。そして深い興味を持っていただければこっちのもの。こういった情報を的確に伝えていけば、誤解なんてあっさり解けますよ。


# そもそもバージョンアップしたものを「新製品」として売り出すのはどうよ? という論議はあるかもしれませんが、それはもちろん別の話ですし僕が決める話でもないので、ここでは問わないでください。