Team Foundation のチーム プロジェクト
更新 : 2007 年 11 月
Team Foundation では、チーム プロジェクトは、作業項目、コード、テスト、作業生産物、測度などの集合体です。これは、定義されているチームが、共通の関連作業セットをトラッキングするために使用します。チーム プロジェクトの論理概念は、ソフトウェア アプリケーションの開発に何を含め、何を除外するかを決定するうえで役立ちます。チーム プロジェクトの概念は、次に、チーム エクスプローラおよび Team Foundation Server の物理的なツール、グループ、ワークフローなどを通じて実装されます。チーム プロジェクトに設定する概念上の境界は、チーム プロジェクトをどのように構成し、チーム プロジェクト間をいつ移行するかについて、重要な意味を持ちます。
チーム プロジェクトの論理的定義
論理的には (つまり、概念上は)、チーム プロジェクトは単一のインフラストラクチャで、ソフトウェア アプリケーション開発のライフ サイクルに使用される個々のツールおよび要素をすべて含みます。開発中の各ソフトウェア アプリケーション (つまり、"チーム プロジェクト") は、実質的には、そのチーム プロジェクトだけに使用される独自の名前空間でグループ化されています。したがって、チーム プロジェクトは、他のすべてのチーム プロジェクトがアクセスできないように、開発中の特定のソフトウェア アプリケーションに関連付けられたツールおよび成果物 (ソース コード、作業項目、ドキュメントなど) のすべてを隔離する単なるコンテナにすぎません。
チーム プロジェクトは、特定のソフトウェア テクノロジまたはソフトウェア製品を作成するというチームの努力をまとめる主要な概念です。また、チーム プロジェクトは、チームの作業対象であるソフトウェア アプリケーションに関連する成果物の仮想コレクションでもあります。チーム メンバにとっては、チーム プロジェクトの概念によって、チーム プロジェクトとは無関係の複数の成果物にアクセスしなくてもすみます。このような余分な成果物は、混乱を引き起こして、ソフトウェア開発プロセスを遅らせます。チーム プロジェクトは、1 つ以上のツールおよび成果物のセットから構成されます。チーム プロジェクトに、ソース管理ポリシー、チーム プロジェクト レポート サイト、およびチーム プロジェクト ポータルが含まれることもあります。Team Foundation チーム プロジェクトでは、チーム プロジェクトの作成時にプロセス テンプレートを使用できるため、関係するツールを選択してチーム プロジェクトのコンテナに追加できます。
チーム プロジェクトの概念は、チームで使用するすべてのツール間のレポート機能を強化します。以前は、異なるツールのデータは関連付けられていないため、ツール間のレポートは困難でした。たとえば、不具合に関するツール間のレポートを取得する場合、ソフトウェア開発者は複数のプロジェクトごとに不具合を識別する必要がありました。それは、すべての不具合が共通の場所に格納されていたからです。チーム プロジェクトは、ソフトウェア プロジェクトに関連するツールおよび成果物だけを含む名前空間で作成されます。したがって、異なるツールの異なる成果物の関連付けが可能な共通のフィルタが作成されます。
単一の Team Foundation Server サーバーは、それぞれが異なる名前空間で作成された複数のチーム プロジェクトを含むことができます。たとえば、名前空間 A の X という名前のドキュメントは、名前空間 B の X というドキュメントとは異なります。別個の名前空間でチーム プロジェクトを作成することにより、成果物やツールは所属するチーム プロジェクトに固有のものになります。つまり、チーム プロジェクト A に含まれるツールや成果物に、チーム プロジェクト B の作業を行うソフトウェア開発者はアクセスできません。
チーム プロジェクトの物理的定義
チーム プロジェクトに関する論理的定義および概念上の境界は、チーム エクスプローラによって現実のものになります。チーム エクスプローラは、ツールおよび成果物をチーム プロジェクトごとにグループ化する、Visual Studio 内の拡張ツール ウィンドウです。チーム プロジェクトは、プロセス テンプレートでチーム プロジェクトを作成したときに指定した 1 つ以上のツールおよび成果物のセットから構成されます。チーム プロジェクトの作成時に使用したプロセス テンプレートに応じて、チーム プロジェクトに、ソース管理ポリシー、チーム プロジェクト レポート サイト、およびチーム プロジェクト ポータルが含まれることもあります。
チーム エクスプローラは、最初に開いたときには何も表示されないため、Team Foundation Server に接続する必要があります。接続すると、Team Foundation Server に表示するチーム プロジェクトを選択できます。チーム エクスプローラは 1 つの Team Foundation Server だけに接続するため、1 つの Team Foundation Server のチーム プロジェクトだけを表示します。ここでも、チーム プロジェクトの作成時に使用したプロセス テンプレートに応じて、チーム メンバは、チーム エクスプローラを使用して、製品ビルドに関する情報の表示、ソースへの移動、割り当てられているタスクに関するクエリの実行、プロジェクトの全体的なステータスの表示、ドキュメントの検索、レポートの表示、およびチーム プロジェクトに関連付けられた作業生産物の作成などを行うことができます。たとえば、MSF for Agile Software Development プロセス テンプレートまたは MSF for CMMI Process Improvement プロセス テンプレートを使用して作成したチーム プロジェクトには、次のノードが表示されます。
[作業項目] このノードから、作業項目データベースに対してクエリを作成および表示し、新しい作業項目を作成できます。プロジェクト クエリは、チーム プロジェクトの作成時に、プロセス テンプレートまたはプロジェクト マネージャによって実装されます。ユーザー定義のクエリは、チーム プロジェクトの作成時には実装されず、後でカスタム コンテンツとして追加されます。
[ドキュメント] このノードから、作業生産物 (ドキュメント、スプレッドシート、プロジェクト計画、プロセス ガイダンス、開発アクティビティによる他の無形の出力など) にアクセスできます。すべてのドキュメントは、チーム プロジェクト ポータル上の中央の場所に格納されます。
[レポート] このノードから、チーム プロジェクトの測度を含むレポート、およびチーム プロジェクトの名前空間に含まれるさまざまなツールから情報を収集する手段にアクセスできます。SQL Reporting Services レポート サイトは、チーム プロジェクト内のさまざまなツールからの異なる情報をまとめ、各ツールからエクスポートされた情報に適したセマンティクスおよび構文を使用してレポートを形成することによって、ツール間のレポートを実行するようにデザインされています。
[チーム ビルド] このノードから、チーム プロジェクトのビルドにアクセスできます。
[ソース管理] このノードから、ソース コードやテキストなどの成果物にアクセスできます。プログラム開発者は、ソース管理エクスプローラを使用してソース コードのチェックインおよびチェックアウトを行います。ソース管理エクスプローラは、チーム プロジェクトのソース ファイルを表示するブラウザです。ユーザーは、多数のユーザー定義のカスタム ツールを実装できます。
チーム プロジェクトの設定およびプロパティは、チーム プロジェクトごとに異なります。チーム プロジェクトのプロパティは、Visual Studio の [チーム] メニューで設定します。このプロパティでは、チーム プロジェクトのメンバとそのアクセス権を識別するグループとアクセス許可の設定を定義します。たとえば、あるソフトウェア開発者はチーム プロジェクトのドキュメント X だけを変更するアクセス権を持ち (ドキュメント Y を変更するアクセス権を持たない)、同じチーム プロジェクトに含まれる別のソフトウェア開発者はドキュメント X と Y の両方を変更するアクセス権を持つとします。グループを割り当てることにより、チーム プロジェクト内に異なるサブチームを設定できるため、必要なタスクをより適切に管理できます。チーム プロジェクトの設定には、チーム プロジェクト内の成果物の仮想階層構造によるグループ化も含まれます。分類構造に、チーム プロジェクト、およびチーム プロジェクトのコンポーネントまたは機能を構成するライフ サイクルのイテレーションが含まれることもあります。また、トラッキングやレポート作業を容易にするため、作業項目およびその他の成果物 (テスト ケースなど) を、構造体/階層構造に照らして分類することもできます。
ソース管理ポリシーは、ソース管理の設定を容易にします。ソース管理の設定は、チェックアウト設定、チェックイン ポリシー、およびチェックイン メモの動作を決定します。ソース管理の設定では、チェックアウトできる成果物およびチェックアウトを実行できるメンバを定義します。プロジェクトのライフ サイクル中に作成されたさまざまなバージョンの成果物を、ユーザーが過去に戻ってチェックアウトできるようにする設定を定義することもできます。