前回、「ソフトウェア開発だけでなく、コードに対する理解やテストといった、開発工程の前後までカバー対象を広げてきている様子が見て取れる」と書いた。

MSDNオンラインのトップページがリニューアルし、「コードの作成」「テスト」「コードの理解」という新たな三本柱ができたが、これらのうち「コードの作成」で、アプリケーションライフサイクル管理(ALM : Application Lifecycle Management)を取り上げている。正に開発工程の前後までカバーする重要な話なので、今回はこの話について。

Visual Studio UltimateとTFSによるALM

本連載第35回で、テストの話を取り上げた。その際、MSDNライブラリにあるソフトウェアライフサイクル管理のコンテンツを紹介したが、今回のリニューアルに際してフィーチャーされている「コードの作成」以下の「アプリケーションライフサイクル管理(ALM)」では、それとは別のWebページにリンクしている。加えて、Visual Studio Ultimateの評価版ダウンロードも可能になっているから試すこともできる。

アプリケーションライフサイクル管理
http://msdn.microsoft.com/ja-jp/vstudio/ff625779

Visual Studio Ultimate評価版をダウンロードする
http://www.microsoft.com/japan/visualstudio/download

Visual Studio Application Lifecycle Management
http://msdn.microsoft.com/ja-jp/library/fda2bad5.aspx

「アプリケーションライフサイクル管理」の「How Do I」以下で取り上げている開発関連作業としては、以下のものがある。

  • アプリケーションのビルド
  • Visual Studio ALMのレポートの作成・カスタマイズ・管理
  • Visual Studioでのデバッグ
  • 分岐とマージを行う(英語)
  • ソフトウェア設計のためのモデルの開発
  • アプリケーションのテスト

つまり、コードを書いてビルドするだけでなく、「できたソフトウェアをテスト担当者に配布してテストを行い、バグがあれば報告を受けてデバッグを実施したうえで改修済みのコードを入れて再ビルド」というサイクルを完成まで延々と繰り返すわけだ。その過程で、ALMのレポートだとかモデルの開発だとかいう話も関わってくることになる。

アプリケーションライフサイクル管理は、コードの記述だけでなくテストやバージョン管理、関連タスクの管理まで含めた業務。力仕事で進めるよりも、できればツールの助けを借りて効率的に行いたい

そして、そういった作業を円滑に進めるためのノウハウやツール、すなわちTFS(Team Foundation Server)についての情報を提供しているわけだ。

プロジェクトの計画および追跡
http://msdn.microsoft.com/ja-jp/library/dd286619.aspx

Team Foundation Server 2010
http://msdn.microsoft.com/ja-jp/vstudio/ff637362

Team Foundation Server 2010 評価版をダウンロードする
http://www.microsoft.com/downloads/ja-jp/details.aspx?FamilyID=3660CACF-F077-44D3-A9D9-97E801DA2035

TFSによる開発プロセス管理の実際

個人でソフトウェアを開発している場合、コードを書くのもテストするのも自分一人だから、作業はすべて自分の中で完結する。しかし、規模の大きいソフトウェアを複数の開発者・テスト担当者などが協力して手掛ける場合には、それぞれが作業を分担して進めることになるので、必然的にタスクの割り振りや進捗管理といった問題が生じる。

たとえば、コードの記述やテストについて、どの部分を誰に担当させるかという課題があるし、バグに関する情報の管理、そのバグの発見を受けて実施した修正の反映、それによって発生するコードの分岐とバージョン管理など、ソフトウェアの開発・リリースに際してはさまざまな共同作業と管理業務が必要になる。それを支援するためのツールがTFSというわけだ。

Team Foundationを使用した開発プロセスの管理
http://msdn.microsoft.com/ja-jp/library/ee854733.aspx

Team Foundation Server上のチームプロジェクトへの接続およびアクセス
http://msdn.microsoft.com/ja-jp/library/ms181475.aspx

バージョン管理の使用
http://msdn.microsoft.com/ja-jp/library/ms181368.aspx

チームプロジェクトのソースの取得
http://msdn.microsoft.com/ja-jp/library/ms181385.aspx

分岐とマージ
http://msdn.microsoft.com/ja-jp/library/ms181423.aspx

アプリケーションのビルド
http://msdn.microsoft.com/ja-jp/library/ms181709.aspx

ソースコードの修正・改良が進めば、必然的にバージョン管理の問題に直面する。これを疎かにすると、コードの管理がいい加減になってトラブルの元である

Visual Studio ALMが備えるレポート機能は工程進捗の管理に役立つのではないだろうか?

TFSの関連ツールいろいろ

そのTFSについては、さまざまな関連ツールが提供されている。実際にTFSを利用してみて「ここがこうなっていたら、もっと便利なのに」といった場面に遭遇したら、関連ツールを探してみるとよいかもしれない。

TFS Power Tools(2010 年 4 月) (英語)
http://visualstudiogallery.msdn.microsoft.com/ja-JP/3e8c9b68-6e39-4577-b9b7-78489b5cb1da

TFS MSSCCI Provider (2010 年 4 月) (英語)
http://visualstudiogallery.msdn.microsoft.com/ja-JP/bce06506-be38-47a1-9f29-d3937d3d88d6

TFS Build Extensions Power Tool (2010 年 4 月) (英語)
http://visualstudiogallery.msdn.microsoft.com/ja-JP/2d7c8577-54b8-47ce-82a5-8649f579dcb6

Visual Studio Team Explorer Everywhere 2010 (英語)
http://www.microsoft.com/downloads/details.aspx?FamilyID=AF1F5168-C0F7-47C6-BE7A-2A83A6C02E57&displaylang=en

必ず理想通りのツールが見つかるという保証はできないけれども、開発者が実際にTFS使ってみて必要性を感じて開発したツールであれば、他の開発者にとっても有用である可能性は低くないと思う。本稿の執筆時点で公開されているのが、英語版ばかりなのが気になるところではあるけれども。