Visual Studioの「借金」を精算したMicrosoft

MicrosoftではVisual Studio 2008を予定通りにリリースするために、品質に本腰を入れ、機能にフォーカスしたという。

» 2007年11月20日 16時58分 公開
[Darryl K. Taft,eWEEK]
eWEEK

 Microsoftがアプリケーション開発ツールセットの最新版の開発に着手したとき、同社のデベロッパー部門のリーダーたちは、まず「借金」を精算することにした。

 Microsoftは11月19日に「Visual Studio 2008」を製造工程向けリリースしたが、2年前の11月、同社のデベロッパー部門のコーポレート副社長を務めるS・ソーマ・ソマセガー氏は、前進するための最善の手段は一歩後退することであると判断した。ソマセガー氏は、Microsoftが計画通りに2年ごとにツールをアップグレードできるようにするには、技術開発に対してさらに「意図的」に取り組む必要があったと話す。

 ソマセガー氏によると、Visual Studio 2005をめぐる経験から多くのことを学んだという。

 「われわれがVisual Studio 2005の開発をスタートしたとき、これを24カ月後に出荷することが社内的な目標だったが、実際に出荷したのは39カ月後だった」――ワシントン州レドモンドにあるMicrosoft本社を訪れたソマセガー氏は、米eWEEKの取材でそう語った。「これはわれわれが目指していた期間よりも少し長かった。Visual Studio 2008の開発に着手した時点での社内的な目標は、2007年末までに完成させることだった」。

 ソマセガー氏によると、Microsoftは「Whidbey」のコードネームで呼ばれたVisual Studio 2005の開発で多くの「借金」を抱え込んでしまい、その状態で「Orcas」のコードネームで呼ばれるVisual Studio 2008の開発サイクルに入ったという。このためソマセガー氏は2005年11月に、すべての開発作業の中断を命じ、開発チームに対してテスト作業の遅れを取り戻し、バグを洗い出すよう指示した。

 テストは2005年11月から2006年3月まで4カ月間にわたって行われた。この取り組みは「MQ」(Milestone Quality)と呼ばれた。

 「MQは意図的な開発モデルに向けた最初のステップだった」とMicrosoftでVisual Studio 2008のプログラムマネジャーを務めるキャロル・グロージャン氏は語る。「ソーマが開発中断を命じたのは正しい判断であり、MQは非常に草の根的な取り組みだった」。

 ソマセガー氏は、「4カ月という期間は新機能を開発するために設けられたのではない。チーム全体が2つの目的にフォーカスするための技術投資の期間として設定されたのだ。2つの目的とは、きれいな状態になり、その状態を維持することである」と語る。

 同氏によると、Microsoftの取り組みが遅れていた分野の1つがテストの自動化だった。MicrosoftがWhidbeyを出荷した時点では、テストの自動化でカバーできたのはコードの30ないし80%だったという。「それで今回は、テストの自動化の遅れを取り戻すのに4カ月かけたいと思ったのだ。白紙の状態でスタートできるようにするためだ」と同氏は話す。

 また、きれいな状態を維持するために、ソマセガー氏は開発チームが借金をこれ以上増やさないようにしたかったという。

 「開発プロセスで採用した指標の1つが、製品を出荷するまでに修正しなければならないバグの数だった」とソマセガー氏は話す。「Visual Studio 2005の開発プロセスのピーク時には、製品出荷までに修正すべきバグのデータベースに3万2000個のバグが登録されていたときもあった。Visual Studio 2008では、ピーク時のバグの数は約5000個だった。つまり1桁も減ったのだ」とソマセガー氏は話す。

 この変化の理由の1つは、ソマセガー氏が命じた借金の精算が行われたことである。もう1つの理由としては、「コード的な完成」という考え方から「機能的な完成」という考え方に改めるという同氏の決定がある。これに基づき、小規模なプログラマーのチームとテスターのチームが「機能チーム」として連携して、個別機能の完成に責任を負うようにした。

 「バグの数が減ったのは、機能チームのバグバックログが40個あるいは50個のバグを超えた場合には、開発作業を中断し、バグを修正してから先に進むように指示したからだ」とソマセガー氏は話す。

 Microsoftは「クオリティゲート」という概念も導入した。クオリティゲートとは、開発プロセスにおいてコードの品質をチェックするために開発者が使用しなければならないツールセットである。「ソースコードをメインビルドに組み込む前にやらなければならない作業が幾つかあり、われわれはそれをクオリティゲートと呼んでいる」とソマセガー氏は説明する。これらの作業としては、静的コード分析ツールの実行、自動テストの実行、テストの自動化によって一定限のコード範囲をカバーすることなどが含まれる。クオリティゲートは全部で17個設けられた。

 さらにVisual Studio 2008の開発では、自社技術を利用して新技術を開発するというMicrosoftのポリシー(同社ではこれを「自社製のドッグフードを食べる」あるいは「ドッグフーディング」と表現している)が採用された。Orcas開発チームは、Visual Studio Team SystemファミリーのコンポーネントであるTeam Foundation Server(TFS)をリポジトリおよび構成管理システムとして利用した。

 「われわれはセルフホスティング主義者であり、Team Foundation Serverを利用した」とソマセガー氏は話す。「つまり、Visual Studio 2008は、Visual Studio 2008を使って開発されたと言える。TFSを使用する最大のメリットは、いつ何時でもプロジェクトの状況を見通すことができる透明性にある。実際、TFSを使用するというのは、妊娠初期の段階から胎児の状態を観察できる超音波検査装置のようなツールを使用するようなものだ」。

 TFSが備える機能ディレクトリでは、すべての機能がリスト表示され、開発者は各機能が完成度という点でどの辺りに位置するのかを把握することができる。Microsoftのプロダクトマネジャーで、Visual Studio 2008の計画と出荷に携わっているトニー・グッデュー氏によると、Whidbeyでは約400の機能があったが、Orcasは600近い機能を搭載するという。

 ソマセガー氏によると、品質を中心とした改良に専念するために4カ月という期間を投入したおかげで、Microsoftは同製品の次期バージョンとなる「Visual Studio 10」では白紙の状態で取り組むことができるという。

 「今から思えば、これはわれわれが部門として行った最善の取り組みの1つだった」とソマセガー氏は振り返る。

 グロージャン氏によると、OrcasチームはそのMQ活動が評価され、Microsoftのビル・ゲイツ会長から社内技術賞を授与されたという。

 「借金ゼロの状態で次のリリースに臨むことができる」(同氏)

Editorial items that were originally published in the U.S. Edition of “eWEEK” are the copyrighted property of Ziff Davis Enterprise Inc. Copyright (c) 2011. All Rights Reserved.

注目のテーマ