アジャイル トランスペアレンシー ~アジャイル開発における透明性の確保について~

APPENDIX 1 高機能・直感的で安心して使えるアプリケーションの「Microsoft Visual Studio」

日々進化する IT は高機能、直感的で使いやすい、安心して使用できるアプリケーションの登場を促しています。マイクロソフトが提供する Visual Studio は、マーケットニーズに応えるために自信を持って送り出す製品です。

みなさんは⁠アジャイル⁠と聞いてどんなことを連想されるでしょうか―「小規模チーム」⁠多くのチェック ポイントがあり、変化が多い」⁠何でも変えてしまえる、緩い開発の方法論」……

アジャイルとは、⁠素早い」「機敏」という意味合いを持ち、スポーツ選手の反応の速さを表現する時などに使われる単語です。それだけに、アジャイルな開発とは、いかなる事態においても機敏に反応し、対応していける開発手法を持ち合わせていると見ても、間違いはないでしょう。ですが、アジャイルな開発とは決して機敏さだけを追求する緩い手法ではありません。むしろ、計画的でありルールが厳守されることが大前提で、必要に応じた変更を適用していくことがアジャイルです。スポーツと同様に、決まったルールの中で自由に動き回ることを想像すると良いかも知れません。

アジャイルにおいて勘違いされる点の一つとして、計画性がないという考えがあり、さらには個人の相互作用を尊重するため、プロセスやツールが不要と思われます。確かに、アジャイルでは人を尊重する考え方だけだと思われがちですが、これはプロセスやツールがあったうえでのことです。

アジャイル マニフェスト考案者の一員でもある Kent Beck は、アジャイル開発についてホワイトペーパーを書き、そこで Beck氏は、アジャイル開発を実現するために必要なプロセスとツールを図のように描いています図1⁠。

図1
図1

プロセスは方法論として存在している中で、ツールはそのプロセスを実現するために必要な要素として描かれています。そして、このプロセスとツールを用いて (計画を以て)、アジャイルの方針を初めて実装できるのです。

マイクロソフトの 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 という機能が加わり、結合テストが失敗した際にはコードのチェックインを拒否し、プロジェクト全体への影響を最小限に抑えることができるようになります。

図2
図2
図3
図3

アジャイル計画

アジャイルな開発を実施するにあたり、利用するツールに機能が豊富に揃っていることは必要ですが、冒頭にもあるように、計画的に開発を進めることが一番重要な点になります。ですが、これまでのツールでは開発工程の計画を支援する機能が乏しかったことが事実としてあります。そこで、自社でも活用する様々なアジャイル プランニングのメカニズムを Visual Studio 2010 に搭載し、ユーザー企業のアジャイル開発の効果を最大限に活かせるようになっています。

通常、開発プロジェクトの計画は、プロジェクトの見積書を作成するときなどに立案されると思いますが、いざ現場で開発を始めると計画通りには進まなくなります。⁠期限を守るために品質を落とす訳にもいかない、品質を保つために期限を延ばしてもらおう」などということは、結構ありがちではないでしょうか。

アジャイルに開発を進める場合、計画段階から考え方が異なります。アジャイルな計画をする時には、リリース計画とイテレーション計画という考え方をします。リリース計画とは、通常のプロジェクト計画に似ていて、プロジェクトで必要とされる機能などの大枠を計画します。イテレーション計画では、各機能を作り込むにあたって必要なユーザーストーリーと、それにあった作業項目を計画する方法です。従来のように、一つずつ作業を実行していく Work Down 手法と異なり、イテレーション毎にタスクをこなし、ユーザーストーリーに見合った機能を作成していく Value Up 手法を取り入れ、より効果的にプロジェクトを推進できる計画を立てられるのです。

図4
図4
図5 多くの開発チームが、使い慣れたツールをそのままプロジェクト計画にも活かせるよう、従来の VSTS から次期バージョンの Visual Studio まで、Office Excel や Office Project と TFS の連携が可能になっている
図5 多くの開発チームが、使い慣れたツールをそのままプロジェクト計画にも活かせるよう、従来の VSTS から次期バージョンの Visual Studio まで、Office Excel や Office Project と TFS の連携が可能になっている

開発プロジェクトの透明性

TFS を活用した開発では、ソースコードや構成の管理をするだけでなく、計画情報や、その計画の実施状況もデータとして保持しています。そのデータを、SQL Server Analysis Services や Reporting Services を通して、作業効率をレポートとして確認できます。また、残存作業についても、同じようにレポートとして権限を持つ誰もが見れ、プロジェクト全体において透明性を与えることができます。

このようにVisual Studio は、時代とユーザーのニーズと共に進化し、次期 Visual Studio 2010 では今にも増してより強力に開発者、プロジェクトリーダー、プロジェクトマネージャーを支援し続けます。

図6 作業効率レポート
図6 作業効率レポート
図7 残存作業レポート
図7 残存作業レポート

おすすめ記事

記事・ニュース一覧