マイクロソフトの Visual Studio の製品群は、Beck 氏が語るツールをすべて持ち合わせた、アジャイル開発の実装を可能とする製品としてあります。
テスト駆動開発
テスト駆動開発 (TDD) では、プログラムのコードより先にプログラムを実装するために必要なテストケースを作成し、テストが成功する最小限のコードを後に書きます。このプロセスを実行することで、より早く、効率的なコードの本体を作成できる考えです。Visual Studio では、TDD を実行するために必要とされる単体テスト機能とリファクタリング機能を搭載し、開発の効率化を支援しています。
当然、先にテストを作成する場合は、プロジェクトに存在しないクラスやメソッドなどを書くことになりますが、過去バージョンの Visual Studio でも好評だった Ctrl + . (ドット) ―メソッド タグの生成― のショートカットを活用することにより、 Visual Studio 2010 では自動的にプロジェクトに合ったコードの本体を作成します。生成されたコードに最小限のコードを付け足し、テストに成功するコードを書き、さらにリファクタリング機能を利用しコードの理解度を上げることが可能になります。
また、単体テストの網羅性を確認するコードメトリックス機能や、アーキテクチャとの整合性をクラスダイアグラムと比較することにより、コード品質の可視化も Visual Studio では可能にします。
継続的インテグレーション
開発プロジェクトを進めるにあたって、コードの作成、修正、削除と、様々なレベルでの編集が行われます。開発メンバーが多いプロジェクトで誰しもが経験したことがあるであろうことは、多数のコード修正を行った後の結合時にビルドを壊してしまうことではないでしょうか。継続的に修正したコードの結合ビルドを実施することにより、そのような事態を防ぐことができます。Team Foundation Server (TFS) には、継続的インテグレーションを実施するためのチェックイントリガが設定できるようになり、TFS 上で管理する開発プロジェクトを編集した際のコードのチェックイン時に、結合ビルドを都度実行することができます。
さらに、2010年前半の出荷が予定されている Visual Studio 2010 の TFS では、Gated Check-in という機能が加わり、結合テストが失敗した際にはコードのチェックインを拒否し、プロジェクト全体への影響を最小限に抑えることができるようになります。
アジャイル計画
アジャイルな開発を実施するにあたり、利用するツールに機能が豊富に揃っていることは必要ですが、冒頭にもあるように、計画的に開発を進めることが一番重要な点になります。ですが、これまでのツールでは開発工程の計画を支援する機能が乏しかったことが事実としてあります。そこで、自社でも活用する様々なアジャイル プランニングのメカニズムを Visual Studio 2010 に搭載し、ユーザー企業のアジャイル開発の効果を最大限に活かせるようになっています。
アジャイルに開発を進める場合、計画段階から考え方が異なります。アジャイルな計画をする時には、リリース計画とイテレーション計画という考え方をします。リリース計画とは、通常のプロジェクト計画に似ていて、プロジェクトで必要とされる機能などの大枠を計画します。イテレーション計画では、各機能を作り込むにあたって必要なユーザーストーリーと、それにあった作業項目を計画する方法です。従来のように、一つずつ作業を実行していく Work Down 手法と異なり、イテレーション毎にタスクをこなし、ユーザーストーリーに見合った機能を作成していく Value Up 手法を取り入れ、より効果的にプロジェクトを推進できる計画を立てられるのです。
開発プロジェクトの透明性
TFS を活用した開発では、ソースコードや構成の管理をするだけでなく、計画情報や、その計画の実施状況もデータとして保持しています。そのデータを、SQL Server Analysis Services や Reporting Services を通して、作業効率をレポートとして確認できます。また、残存作業についても、同じようにレポートとして権限を持つ誰もが見れ、プロジェクト全体において透明性を与えることができます。
このようにVisual Studio は、時代とユーザーのニーズと共に進化し、次期 Visual Studio 2010 では今にも増してより強力に開発者、プロジェクトリーダー、プロジェクトマネージャーを支援し続けます。