■3回にわたってWindows XP Service Pack 2の開発者のインタビューをお届けする。開発のためのバーチャル・チームが作られた話。ファイアウオールをデフォルトで有効にすると動かないソフトが続出。さらにセキュリティのための新しいアイデアを募集したところ,部屋は立ち見が出るほどのプログラマであふれ,歴史に残るSP2は一から作り直されることになる。
(聞き手=Paul Thurrott)




Todd Wanke氏

 

Rebecca Norlander氏

 

Mark Harris氏

 

Laurie Litwack氏

 

Jim Allchin氏

 Todd Wanke氏はMicrosoftの「Windows Server 2003」の「作戦本部」を動かしていた人物だ。Todd氏は非常にくたびれたWindows Server 2003の開発作業の後,もう2度と作戦本部担当にはならないと明言していた。

 「とんでもない」――私が彼にもう一度やるかどうかたずねたとき,彼は笑って「いや,とんでもない」と言った。

 しかし2003年半ば,Microsoftは再びTodd氏を必要とした。今度は同社がこれまでに出荷する中で最も安全性の高いクライアント製品だということを証明するための「Windows XP Service Pack 2(SP2)」を開発するためだ。

 彼は,Microsoftがこのリリースを成功させることがいかに戦略的に重要かを理解した。そして,当初3カ月のプロジェクトと想定したものに思い切って参加することにした。Microsoftの組織では通常,厳密な階層システムからなっている。そこから離れて働いたTodd氏とその仲間たちのバーチャル・チームはおよそ1年後,待ちに待っていた消費者にWindows XP SP2を送り出した。彼らが出荷したXP SP2製品は,Microsoftのそもそもの計画とは似ても似つかなかったが,その一方ではるかに安全性が高い,安定した製品になり,結局のところWindows XPをよりよいOSにした。

 私は2004年12月初め,Todd氏,Ryan Burkhardt氏,Jon Murchinson氏に会った。XP SP2とそれを世に出したバーチャル・チームについて取材するためだ。ここにその内容を紹介する。

Windows XP Service Pack 2:その黎明
――――この手の話は大抵「Jim Allchinが休暇から帰ってきた…」って感じで始まりますが…(笑)。

[Todd Wanke氏]今回はSWI(セキュアWindowsイニシアチブ)の連中でした。Windows Server 2003の出荷後に,私は40番のビルの6階に座っていて,SWIの連中とたまたま隣り合わせていました。SWIは,わが社のセキュリティ対策チームのことです。ちょうど「Blaster」ワームが襲ってきて,「Slammer」も出てきたところだったので,片付けなければいけないことが2つ余計にありました。

――――新しい攻撃が2つ?

[Todd]そう,新しい攻撃が2つ課題にあがっていました。SWIチームを動かしているGeorge Stathakopoulos氏が私の部屋にやってきて,私がこの2~3カ月間何をしているのか聞いてきました(笑)。

――――「この2,3カ月」ね。

[Todd]XP SP2の最初のビジョンは,実際に世に出たXP SP2とは違っていたのです。

――――そうですね。

[Todd]初期のビジョンは,ファイアウオールを使えるようにし,それを出すつもりだったのです。そのビジョンに沿って私は2003年の6月か7月にBrian Valentineと打ち合わせをしたのです。ところが,そのときにわれわれは重役たち,つまりこの会社にいるほぼすべてのWindows担当重役たちと続けて会合しました。これはとても大規模な幹部会議で,Jim Allchin以下,部屋の中には30人から40人の人がいて,しかもその半分が役員級でした。

 そしてわれわれは本当にちょっとおじ気づいてこう言いました。「OK,ではSP2でわれわれが直面している今の問題は何か,短期間に解決できる問題は何で,中期的には何で,長期的には何か,について話します」と…。

 そこで,「ファイアウオールを有効にして出荷するだけ」という初めのビジョンはちょっと陰り始めました。理由は,われわれがいくつかアプリケーションの互換性テストを実施した結果のためです。Windows XPとWindows XP SP1に備わっているファイアウオールを有効にして使ったのですが,そのファイアウオールはあまりうまく働かなかったのです。

――――Windows Serverでも起きたことですね。ファイアウオールを有効にしたとたんにすべて動かなくなる。

[Todd]ファイアウオールを有効にしただけでは,大きな問題にぶつかることが分かりました。そこで私は同じ部門のみんなにメールを出して,「これこそわれわれが解決しなきゃいけないことだ。それを解決するにはもうちょっと時間をかけるつもりだ。もし何かセキュリティの機能を提案したいならそうするべきだし,この部屋にきてほしい」と書いたのです。

 で,翌日には部屋は立ち見でいっぱいになっていました。つまり,みんなが組み込みたいセキュリティ機能を持ってきたのです。新しいBluetooth用のスタックみたいなものから,新しいWindows Media Player,新しいグループ・ポリシー関連のものなどなど,次から次へと提案が出てきました。

 われわれはそのリストを徹底的に検討することを始めて,これが単なる「SP1プラス」では収まらないと認識し,最後に出荷されたときはメジャー・アップデートとなったのです。われわれは新しい「DCR(設計変更リクエスト)」リストを作り,Brianと私はそうした個別のDCRを承認して,それからSP2を「Windows Sustained Engineering(WinSE)」チームから引き継ぎました。

――――それはコアのWindows開発チームではなかったのですね?ここに登場した人たちは,普通はサービス・パックの開発をする人たちですか?

[Todd]全くその通り。それはコアのWindowsの開発チームよりも,もっとずっと小さいチームでした。われわれは目標にたどり着いて,最初のビルドをいくつか作り,そしてこれが本当に大きなプロジェクトになると悟ったのです。

SP2のバーチャル・チーム

[Todd]Brianと私は何人か追加で人を雇ったのですが,そのときにBurkhardt Ryanを迎え,Rebecca Norlanderを迎え,Laurie Litwack,Richard Wardを迎え,Mark Harrisと,さらにTokuro Yamashiroという1人の紳士を迎え入れました。ほぼ7人でバーチャル・チームを結成して前進し始めたわけです。

 私がプロジェクトを進める場合に心がけることの1つは,決して「I(私は)」という単語を使わないことです。Windows Server 2003とWindows XP SP2に関して,私が書いたメールのあらゆるかけらをさかのぼって全部読めば,特別な理由がない限りメールのどこにも「I」という言葉を見つけられないでしょう。

 私は何かをやり遂げるなら,最良の方法はチームで進めることだと信じています。XP SP2の作業では,われわれは実際にバーチャル・チームを召集しました。そしてWindows Server 2003と同じことをしました。だれもが(このプロジェクトの)役者の1人だと感じたし,それに影響を与えることができた。平等なレベルでね。

 そして報告体制のありなしにかかわらず,すべての人間が同じ影響力と発言権を持ち,私は変な束縛を失くしました。この7人がこのバーチャル・チームの全参加者だったし,チームにいたみんなが,XP SP2をリリースしたことに,同等の賞賛を受ける権利があります。Windowsは非常に大きいので,みんながそれぞれ得意分野を持っていました。私はプロジェクトを主導してみんなに最後の線まで行けたことを喜ぶべきでしょう。Ryanはセットアップとベースについて実に深く調べていて,その知識があります。Richardはアーキテクチャについてよく知っている。Rebeccaは管理や役員たちとの交渉が実にうまい。つまり,みんなが違った特質を持ち,みんながチーム内で重要な役割を果たした。それでわれわれは一緒に全部をうまく片付けられたのです。

[Burkhardt Ryan氏]Rebecca,Richard,Laurieと私はそういった類いの…技術的なプログラムの管理をしました。われわれはどちらかと言うと異なるセキュリティ機能が互いにどう動くかで担当を分けました。Laurieはユーザー・エクスペリエンス担当で,「NX(No eXecute)」と「DEP(データ実効防止)」機能のサポートを考えた時に,それが役に立つことを確かめてくれました。私は,RPC(リモート・プロシージャ・コール)とDCOM(分散コンポーネント・オブジェクト・モデル)の変更や,NXがある場合にもファイアウオールが確実に動作するようにしました。ToddとMarkはわれわれの船を操って,それをドアの外に出したわけです。

[Todd]バーチャル・チームの話は面白いと思う。はっきりしたポイントは,たった1人の人間がいて,あなたがどう見るかによってそれが顔だったりお尻だったりしたことでしょう(笑)。

 私は時々,その両方になる羽目になりましたが…その舞台裏で動いていたのは,1つのバーチャル・チーム,素晴らしいチームだった。私はMicrosoftの歴史の中でも最強のチームだったと思いますよ。

[Jon]やあ,5月にチームにきただれかさんみたいに,私も言っていましたが,この開発作業は明らかにその前から続いていました。たくさんのPR作業をこなす必要があった。そこから始めて段々にRTM(製造段階)にたどり着くわけです。

 Ryanは,2004年初めにはツアーに出ると言っていた。だからやらなければいけないPRの仕事はたくさんありました。その作業を実際にやったのはRTMの後で,つまりあなたみたいな人と仕事をしたり,外で働いたり,メッセージを伝えたりガイダンスをしたり,PRマネージャとそのサブ,または各リーダーとサブからの質問に答えていたわけです。

 Toddはバーチャル・チームと,あなたが会ったことのない人,あるいは散らばった遠い場所にいて,チームのアスペクトに関して質問したり,説明を求めたりした人々のことについて触れました。こういった人々も同じように思ったことは確かです。確かにPRチームがかなりかかわったところはあったし,個人的に楽しいと分かったこともありました。非常に素早く手はずを整えなければなりませんでした。ほんの少ししか時間はなかったけれど,みんなとてもよく助けてくれました。

 あなたがRyanを電話で呼び出したり,国内市場向けにフィラデルフィアでローカルのラジオをやるとか,何であれ事情に応じてRebeccaを呼んだり,セキュリティ・ビジネス・ユニットの人間やRich Kaplan氏を呼んだ回数といったら…つまり,われわれに協力してやっかいな仕事を実際に助けてくれた様々な人たちがいたということです。

[Todd]私は6カ月くらいごとに外に出ることにしています。別に旅が大好きというわけじゃない。しかし,アジアに行ってアジアのパートナたちと会い,アジア市場の担当者や子会社の人々とも話しをしました。そうしたことも絡んでチームができ,彼らは,私やRyanを別のサブのところに連れて行ってくれました。そして,この過程を通じてネットワーク構築がうまく運びました。今でも3日間で5つの国を訪問しているかどうかは置いておいてね(大笑い)。われわれは結局何にでも立ち向かって,分割して征服した,と思うのだけど。

[Jon]それに私は,みんながかなり他人のことを考えて動いたと思う。自分たちの契約した仕事の範囲を超えたことをしたものね。やるべきであることがあり,ごまかす時間はないし,それにご存知の通り私はそんなことはしない。みんなが手を貸してやり遂げさせてくれた。みんなが毎日そういうことをしていない,というわけではないですよ。しかし,みんなが集ってくれました。

SP2のタイムライン
――――その時点で,われわれが知っているようなSP2が「そこに」あったわけですか?

[Todd]いいえ。

[Ryan]私もノーと言っておきましょう。その時点では単なるリストを持っていて,われわれができることについて,よいアイデアを持っていただけです。そして,SWIチームやほかの連中で検討作業を始めたのです。つまり,顧客にとって素晴らしく有益で,合理的な期間内に出荷可能なものはなんだろうか,とね。そう考えると,顧客にとって有益で出荷可能だったものは,台所の流しに置く輪ゴムみたいに,融通の利くファイアウオールでした。

[Todd]われわれはこの種の時刻表としてまずそのはじめに…。これをTodd Wankeのオフィスとしましょう。(ToddはSP2の開発予定表をホワイトボードに書きはじめた)みんなが私のオフィスにきて言うわけです。「われわれは何かがしたい」って。それでファイアウオールを使えるようにするつもりだった。【 クリックすると拡大表示します

――――私が想像するに(ファイアウオールを有効にすると)全部ぶち壊しになった?

[Todd]その通りです(大笑い)。

 Jim Allchinはこう言いました。われわれはそれをビッグにするつもりで,しかも一度にやるつもりでいると。もし,何もかも壊すつもりなら「一度全部壊してしまってそれから問題を修正しよう」とね。その上でこれらのDCRを提供する。さらにDCR後に出たSP2の修正パッチをすべて入手する。それから出荷する必要がある。そういうわけでこの時点からここまでは,ざっくりいって8月か9月になり,まさに10カ月かかったというわけです。

――――元々はそんなに長くかかるとは思われていませんでしたよね?

[Todd]元々は3カ月で終わるプロジェクトのはずでした。(ホワイトボードを示して)この時点を「ベータ」としましょう,その後々はRC1を出しましたが,RC1までSP2には「セキュリティ・センター」みたいなものは入っていなかった。

――――私はたくさんの変更と(開発サイクル内での)延期があったことを覚えています。そして(DEPのような)機能はRC1の間に変化しましたね。

[Todd]その通り。そしてわれわれはRC2でさらにもっと多くの変更をした…。

――――どちらが本当は異常なんですか?

[Todd]おっと,これは大事な…私はあなたに内々の特ダネを明かしましょう。これは大きな賭けだった。これを(ベータ・リリースとは呼ばず)RC1と呼びました。RC1と呼んだその理由は,われわれが真剣なんだとみんなに考えてもらいたかったからです。

――――今こそ,これを公式発表して,紹介する時だと思ったわけですね。

[Todd]そうです。われわれがRC1と呼んだのは,Microsoftの外の注意を真剣に引きたいと思ったからで,特にウイルス対策ベンダーには,自分たちのやっていることに関してわれわれが真剣であり,出荷に近づいていることを意識してほしかったからです。このときから,業界内の参加が劇的に増えたといえます。恐らく,われわれがSP2のためにした中で最もよいことの1つでした。

[Ryan]われわれがやったプレス向けのイベント以前は,RSA,ツアー,自分たちが動かせるレバーみたいなものは全部動かして旗を振り回すようなことをしました。われわれが与えた本当のインパクトはというと…(ソフトウエア・ベンダーには効果がなかった)。

――――私は報道関係者が,物をいうまともな仕事をしたと思います。私はあらゆる場所でそれを見ました。お分かりと思いますが,あなたはこういうことに注意しないと。

[Todd]RC1のときまで,われわれに注目してくれるソフトウエア・ベンダーはいませんでした。あるいはRC1の後にようやく注目してくれたというべきでしょう。

SP2を登場させる

[Todd]元々のXP SP2チームの実体はおよそ15人だった。そしてその後,DCRがあってメンバーが増えました。

――――SP2に含まれる予定のもので,うまくいかずに除かれたものはありましたか?

[Todd]何かが落とされたとはいえません。追加された一番大事なものは,Internet Explorerの拡張性に関する変更でした。われわれが始めたときは,ファイアウオールからだったが,このころは事態が変わり始めて,IEに重点を置いていました。そのために,IEがもっとずっと安全なプラットフォームにすることに,われわれが投入した作業の重要性といったら,控えめに述べるのが難しいくらいです。

――――あなたがおっしゃる拡張性は,IE向けに作られたAPIのことですか?

[Todd]いいえ,グループ・ポリシーのことです。Internet ExplorerはSP2が登場するまではグループ・ポリシーに完全には対応していなかった。

 もう1つ別のものがちょうどここにあるのですが(と,ホワイトボードを指し示して)…これはわれわれが「Springboard」という開発コード名を付けた部分です。Glenn氏と私が同席してコーヒーを飲んでいるときにその名前を思いついきました。IEは重要でしたが,IEの中にある黄色の情報バーも重要だというべきで,それは当初はわれわれが考えていなかったものでした。われわれが考えていたのは,すべてIEを強化することだけだったのです。

――――Windows Server 2003のIEに比べ,XP SP2のIEはどうなのですか?そもそものアイデアは,もっと「IE Hard」(訳注:映画「Die Hard」に引っ掛けているらしい)なものにするはずだったのですか?明らかに,ロックダウンすることはできないですね。

[Todd]そもそもの考えは「IE Hard」みたいなものにしようということでした。Windows Server 2003のIEは,実際には消費者には使えないものです。しかし,当初われわれはそういう極端なことを考えていました。初期設計のフェーズでは,確かにそれと同じくらい徹底した考えだったと言えます。

[Ryan]つまりプロジェクト全体を通じて,そのことはわれわれ全員を悩ませたことでした。特にXP SP2全体のスケジュールと技術とユーザービリティを調整していた7人にとってはね。

 このチームはいつまでもその問題に行きつ戻りつさせられたのです。どうそれを安全にしなければならないのか? 私はそれを動かないほど安全にすることもできるし,100%の互換性を持たせることもできるはずだ。

 われわれの頭は互換性よりもセキュリティに向いていたというのが,最初のアイデアだったと思います。長い間,両方の間を揺れていましたよ。ベータのフィードバックを受け取ったり,RC1のフィードバックを受け取ったりするたびにね。

 われわれはこう言っていました。「なあ,“情報バー”は価値があるし,Outlook Express(の特定のセキュリティ機能の動作方法)とも,ほかのエクスペリエンスの要素とも一致しているだろう」と。または「デフォルトでWindowsのバイナリにあるはずのNXサポートとも合っているよなあ」と。どうしてかというと,われわれはこのOSにあるセキュリティと機能のバランスを取らなくちゃいけないからです。

――――その場合には少なくともあなた方は自分たちのスタッフが作業しようとしていることと,ほかの人が…それで困る可能性がある場合を保証している。

[Todd]プロジェクトの間にこういうことがあったとお話しできます。暫定的なマイルストーンでは特に,アプリケーションの互換性がゼロに近い時も何度かあったと。いくつかラディカルなステップを踏んで,OK,これは絶対,(アプリケーションが動かなくなる)と言っていました。それからどうやってそれを弱めて…アプリケーションの互換性をいくらか維持することを考えたのです。

――――あなたがたがしなければならなかったのはアプリケーションごとの無数の…

[Todd]…詰め物(Shims)のこと?

――――ええ。

[Todd]私がやりたくないことは,2つあります。1つはズルをして近道をいくことです。だれかがアプリケーションのパッチを持ってくるたびに,いつもわれわれは1歩下がってこれを見てみよう,といっていました。アプリケーションにパッチしているのか,それとも対症療法的にパッチを入れているのか。コアの修正やコアの変更,またはグループ・ポリシーの設定,あるいはアプリケーションごとに修正する以外の何かを考えようとしました。

[Ryan]Toddのやり方で見ないと,そのプラットフォームのスケールがわれわれの眼を欺くのです。1つのアプリケーションのために,1つパッチをすると,多分ほかに10以上見逃しているアプリケーションがあります。それらが何かは知りたくはないでしょう。それはフランスやシンガポールのカスタム・アプリケーションかもしれない。われわれは(世にあるアプリケーションを)すべて見通しているのではないので,あなたはそれを正しい方法で修正しなくてはなりません。

[Todd]私が思う1つのことは,人々が業務用アプリケーションに対して必ずしもよく考えないので,一回限りの問題の修正をしないで,実際にはその症状をきちんと修正するよう肝に銘じておかなければならないのです。なぜならテストする機会が絶対にないようなビジネスで,数多くの業務用アプリケーションがあるからです。

――――かなり大変だったようですね。

[Todd]これはわれわれにとっては厳しいリリースでした。