連載:Visual Studio Team Systemで開発プロジェクトはこう変わる第2回 Team Foundation ServerによるTeam System運用の実際日立システムアンドサービス 酒井 達明Microsoft MVP for Solutions Architect(Jan 06 〜 Dec 06) 2006/04/08 |
|
前回では、Visual Studio 2005 Team System(以下、VSTS)の概要と、VSTSに含まれるVisual Studioの3つのエディションについて解説した。
今回はまず、VSTSを「チーム・システム」として利用するために不可欠な製品「Visual Studio 2005 Team Foundation Server」(以下、TFS)を紹介した後、VSTSに適したプロジェクト・チームの構成方法やVSTSにおける開発プロセスの活用、そして現場プロジェクトへのVSTSおよびTFSの導入/設定方法までを解説する。
システムとしてのVSTS
マイクロソフトがVisual Studio 2005(以下、VS 2005)をリリースするに当たり、「Visual Studio Team System」と銘打ったことには大きな理由がある。過去にもMicrosoft Office 2003で「Office System」と銘打ったことがあるが、この場合にはOffice SharePoint Portal ServerやProject Serverといった、「System」を実現するためのサーバ製品がOffice製品本体とは別に提供された。
同様にして、VSTSにおいても「System」を実現するためのサーバ製品としてTFSが提供される。実は、このTFSなくしてはTeam Systemを実現することができないといっても過言ではないほど、重要な位置付けの製品である。
まずは以下にTFSのアーキテクチャを示しておく。
TFSのアーキテクチャ・モデル |
TFSは論理3階層モデルのアーキテクチャを採用している。開発プロジェクトの規模に応じて物理配置を決定できる。 |
TFSのメインのクライアントになるのはもちろんVSTSであるが、開発者以外のプロジェクト・メンバーはExcelやOffice Project、IEなどからもTFSにアクセスできる(詳細は後述)。
なお、TFSの製品版は2006年の夏ごろ提供開始予定であり、本稿ではTFS Beta 3 Refresh版を用いて解説している。このため、製品版での内容とは異なる可能性があることをあらかじめご了承いただきたい。
■Visual Studio Team Foundation Serverで提供される機能
TFSは、チーム開発に必要なプロジェクト管理やリポジトリの変更管理、そして品質の指標となるバグのトレースや残存作業の推移状況、バグの解決状況をレポートする機能や、チーム内のコラボレーション環境も併せて提供する。
TFSではチーム開発の単位を「チーム・プロジェクト」として管理する。チーム・プロジェクトが新規作成されると、以下のプロジェクト要素が新たに作成される。
|
||||||||||||
チーム・プロジェクトに含まれるプロジェクト要素 | ||||||||||||
新規にチーム・プロジェクトを作成する際には、チーム開発で採用すべき開発プロセスをチーム・プロジェクトに割り当てる。この開発プロセスは「プロセス・テンプレート」というXML形式のドキュメントで定義されており、Beta 3 Refresh版で提供されているプロセス・テンプレートは、「MSF for Agile」および「MSF for CMMI」の2種類である*。
* MSF(Microsoft Solutions Framework)はマイクロソフトが提唱するプロジェクト遂行のためのフレームワークであり、ITソリューション提供のために必要となるプロセス、チーム編成、ベスト・プラクティス、ガイドラインなどから構成される。MSF for AgileおよびMSF for CMMIはMSF Ver 4.0に含まれるプロセス・ガイダンスであり、MSF for Agileはアジャイル開発向けの開発プロセスを提供し、MSF for CMMIはCMMI(Capability Maturity Model Integration) Lv.3の要件を満たし、Lv.4〜5へ容易に移行可能な開発プロセスを提供している。 |
プロセス・テンプレートはユーザーがカスタマイズすることも可能であるため、既存のプロセス・テンプレートに独自の作業項目を追加したり、自社向けの新たなプロセス・テンプレートを作成したりすることが可能である。
そのほか、[チーム]メニューがVSTSのIDEに追加される。このメニュー項目には、チーム開発環境で利用する、以下のサイトへのナビゲーションが含まれる。
|
||||||
新規チーム・プロジェクト作成時にVSTSのIDEに追加される機能 | ||||||
これらのサイトは、VSTSを持たないユーザーからも参照することが可能であるため、それを必要としないビジネス・マネージャーなどがプロジェクトの進ちょく状況を参照するといったことも可能になっている。
また、プロジェクト・ポータルはWindows SharePoint Serviceがベースになっているため、開発者間の連絡やドキュメントの共有や変更管理なども可能である。
さらには、プロジェクト・ポータルに存在するドキュメントは、VSTSクライアントで開かれるチーム・プロジェクトの[ドキュメント]フォルダ内に存在するドキュメントと同期しているため、VSTSクライアントが存在しない環境でも、プロジェクト・ポータルのWebサイトからのドキュメント参照やポストも可能になっている。このため、物理的に分散した場所に開発チームが点在していて、ネットワーク・セキュリティ上の制約によりVSTSがTFSに接続できないような場合でも、Webベースの情報共有が可能になる。
以下では、TFSを利用するうえで欠かせない重要な概念となる「作業項目」、そしてTFSの特徴であるプロジェクト管理者向け機能について見ておく。
■作業項目
作業項目(ワーク・アイテム)は読んで字のごとく、VSTSにおける作業(活動)の単位を表すものである。長期にわたり、英語版のベータ版を利用されていた方には、「ワーク・アイテム」の方がなじみ深いかもしれないが、日本語版では「作業項目」と訳されている。
使用される作業項目の種類は適用する開発プロセスによって異なるが、標準で提供されているMSF for AgileおよびMSF for CMMIには以下の作業項目が存在する。
|
||||||||||||||||||||||||||||||||||||||||||||||||||
MSF for AgileおよびMSF for CMMIに含まれる作業項目 | ||||||||||||||||||||||||||||||||||||||||||||||||||
この中で頻繁に利用されることが想定される作業項目は、タスクとバグであろう。
タスクは、プロジェクト・マネージャーが開発者に対して割り当てる実際の「作業」として利用される。例えば、プロジェクト・マネージャーがあるサービスを実現するコードの実装を開発者Aに依頼したい場合、[タスク]を発行して開発者に指示を出す。
また、テスティング・エンジニアがバグを発見した場合には、バグ修正の指示を開発者Bに出すために、[バグ]を発行し、現象や調査に必要な情報を連絡するといった具合に作業項目は利用される。
チーム内における作業項目発行のモデル |
作業の目的に応じて、それぞれの作業項目が発行される。 |
開発者がTFSに接続しチーム・プロジェクトを参照する際には、自分に割り当てられている作業項目を検索することが可能である。これによって、自分が何をすべきかの「見える化」が可能になる。
担当する作業項目のクエリ結果 |
開発者がTFSに接続しチーム・プロジェクトを参照して自分に割り当てられている作業項目を検索できる。作業には優先順位を付与することが可能であり、「自分が何をすべきか」を的確に把握することができる。 |
混乱したプロジェクトに遭遇すると、「自分が何をしてよいのか分からない」という開発者を時々目にする。これは、作業項目が「見える化」できていない典型例であり、こうした現場では、作業が適切に割り当てられていないだけでなく、作業の漏れやムラが生じがちになる。TFSを導入することで、こうした事態を回避することも期待できる。
作業項目には、当該作業が管理する各項目だけでなく、その作業に関連する作業や変更セット、変更管理されている特定のファイル(ソース・コードなど)、その作業に対するテスト結果、関連するURLやファイル・パスなどを関連付けることが可能である。
例えば、バグを発見したテスティング・エンジニアは、新規作成した[バグ]作業項目に、問題の内容だけでなく、そのバグが存在しているプロジェクト・ファイルやソース・ファイルを関連付けることができる。これにより開発者は迅速にバグ修正作業へ取り掛かることが可能になる。
また、仕様どおりの動きをしていないケースのバグでは、仕様書のファイル・パスを関連付けることにより、開発者が迅速に仕様書へアクセスすることが可能になる。
■プロジェクト管理者向け機能
TFS導入によって得ることのできるメリットの1つとして、プロジェクト管理者向け機能が提供されるという点が挙げられる。
この機能は、TFSで管理されている作業項目の情報を基に、プロジェクトの進ちょく管理や品質管理に必要となる、さまざまな情報の取得や編集を実現するものである。例えば、各担当者が作業項目に入力した作業時間を集計することにより、その進ちょく状況を逐次把握できる*。
* ただし、これらの情報はデータウェアハウスの再構築のタイミングによって内容が変化するため、プロジェクトの状態を厳密な意味での「リアルタイム」に反映しているとはいい切れない。しかしながら、多くのプロジェクトの場合は1日ごとの状態が正しく把握できればよいケースが多いため、実際の利用には大きな影響があるわけではないだろう。 |
VSTS(VS 2005)からプロジェクト管理機能を利用するには、チーム・エクスプローラをインストールする必要がある。これは、TFSのクライアント・モジュールに含まれている。
あるいは、プロジェクト管理者は、作業項目の割り当てや新たな作業項目の追加、進ちょくの更新などの業務にOffice ProjectやExcelを利用することが可能である。つまり、プロジェクト管理用にわざわざVSTSを用意する必要がないのだ(ただし別途CALが必要となる)。
多くのプロジェクト・マネージャーは従来Office ProjectあるいはExcelを利用していると想定される。そのため、使い慣れたツールを用いてチーム・プロジェクトを管理できるということは、マネージャー層の再教育が不要であるという点でアドバンテージといえよう。
Office Projectによるチーム・プロジェクトのガント・チャート | |||
Visual Studioを持たないユーザーであっても、TFSのプロジェクト管理機能が利用できる。
|
また、TFSが出力するレポートを参照することで、現在アクティブ(未解決)なバグの件数や、そのフィックス状況、チーム・プロジェクトの作業スピード、残存作業の推移、品質指標などの統計情報を取得することが可能である。このように、進ちょく管理以外にプロジェクトの状態を「見える化」するための各種情報を提供する機能もTFSを導入することで利用可能になる。
以上のように、TFSではプロジェクト・マネージャーを支援するさまざまな機能が提供されているが、当然ながらプロジェクトの状態を正確に把握するためには、各担当者が作業項目の作業時間や状態を正しく入力する必要がある。
最終的には、プロジェクトの各担当者の協力なしでは生かせない機能であることは否めない。そのためには、TFSを始めとしたVSTSを活用するためのチーム編成が重要になる。これについて次に述べる。
INDEX | ||
Visual Studio Team Systemで開発プロジェクトはこう変わる | ||
第2回 Team Foundation ServerによるTeam System運用の実際 | ||
1.システムとしてのVSTS | ||
2.VSTSの導入モデル | ||
3.VSTSにおける開発プロセス | ||
4.VSTSの構築と運用 | ||
「Visual Studio Team Systemで開発プロジェクトはこう変わる」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|