プロジェクトの追跡データ、フォーム、ワークフロー、その他のオブジェクトのカスタマイズ

更新 : 2011 年 1 月

作業項目を追跡するため 1 つ以上のオブジェクトをカスタマイズすることで、チーム プロジェクトの追跡方法と、ワークフロー、作業項目フォーム、およびデータ フィールドの設計方法をカスタマイズできます。 次の図に示すように、7 種類のオブジェクトを作成またはカスタマイズできます。 チーム プロジェクトでは、カテゴリと作業項目の種類を管理します。 チーム プロジェクト コレクションでは、グローバル リスト、リンクの種類、および作業項目フィールドを管理します。 チーム プロジェクトまたはコレクションのグローバル ワークフローをカスタマイズできます。

作業項目トラッキング オブジェクト

注意

グローバル ワークフローを定義するには、アプリケーション層サーバーでこの機能を有効にする必要があります。 したがって、このサーバーでは、この機能をサポートする Visual Studio Team Foundation Server のバージョン (Team Foundation Server 2010 Service Pack 1 (SP1) など) が実行されている必要があります。 Service Pack は、Microsoft Web サイトの「Visual Studio Team Foundation Server 2010 SP1 Beta」からダウンロードできます。 詳細については、「グローバル ワークフローのカスタマイズ」を参照してください。

データ フィールドを除き、作業項目を追跡するための各オブジェクトの定義は、XML ファイルとして Team Foundation との間でエクスポートおよびインポートできます。 ニーズに合わせて、オブジェクトの各セットを作成または変更できます。

注意

作業項目を追跡するためのオブジェクトは、Visual Studio のパワー ツールであるプロセス エディターを使用して作成および変更できます。 このツールを使用すると、グローバル リストと作業項目の種類のインポートとエクスポート、作業項目の種類の変更、およびコレクションについて定義されたフィールドのリストの確認を行うことができます。 このツールはサポートされていません。 詳細については、Microsoft Web サイトの「Team Foundation Server Power Tools April 2010 (Team Foundation Server パワー ツール (2010 年 4 月))」を参照してください。

チーム メンバーは、作業項目を使用して、プロジェクトで完了する作業を追跡できます。 メンバーは、既定の作業項目の種類 (バグ、要件、リスク、タスクなど) に基づいて、作業項目を作成できます。 チーム プロジェクトで実際に使用できる既定の作業項目の種類は、チーム プロジェクトの作成に使用されたプロセス テンプレートによって異なります。 作業項目の種類とは、その種類の作業項目を作成する基になるテンプレートです。 詳細については、「プロセス テンプレートの選択」を参照してください。

カスタマイズした作業項目の種類を既定の作業項目の種類のセットに追加すると、Team Foundation がチームで使用するプロセスに役立ち、意思疎通が円滑になります。 たとえば、プロジェクト固有のバグ、変更要求、サービス品質要求、管理するリスク、シナリオベースのタスクなどに対応する作業項目の種類を作成できます。

作業項目には、作成時に基盤として使った作業項目の種類に定義されたフィールドとビヘイビアーが含まれます。 作業項目の種類を作成するだけではなく、既存の作業項目の種類を変更することもできます。 たとえば、作業項目の種類にフィールドを追加したり、そのワークフロー動作を変更したりすると、チームが使用するプロセスのサポートを強化できます。

このトピックの内容

  • 作業の追跡に使用するオブジェクトの定義とカスタマイズ

  • カスタマイズのガイドライン

  • 関連タスク

作業の追跡に使用するオブジェクトの定義とカスタマイズ

オブジェクト

説明

関連トピック

カテゴリ

カテゴリでは、類似する作業項目を追跡する複数の作業項目の種類があり、それぞれ異なる名前で参照されている場合に、それらの作業項目の種類のグループを定義します。 同じチーム プロジェクトの 1 つ以上の作業項目の種類をグループ化して、1 つのカテゴリに入れることができます。 クエリの実行、レポートの生成、および特定のインスタンスでの既定の作業項目の種類の設定をサポートするカテゴリを定義します。 特定のカテゴリに属する作業項目を検索するには、グループ内演算子を使用します。 詳細については、「クエリ フィールド、演算子、値および変数」を参照してください。

カテゴリへの作業項目の種類のグループ化

フィールド

フィールドでは、作業の追跡に使用するデータの種類を定義します。 作業項目フィールドは、作業項目の種類のデータの追跡、クエリのフィルター条件の定義、およびレポートの生成に使用します。 組み込まれていないデータ要素、プロセス テンプレートで提供されないデータ要素、追跡するデータ要素、ワークフローの定義に使用するデータ要素、または作業項目の種類についてフォーム上に表示するデータ要素は、それぞれユーザーが定義する必要があります。 作業項目の種類またはグローバル ワークフローのデータ要素を定義するには、FIELD 要素を使用します。

各フィールドは、フィールドが含んでいるデータの型、レポートで使用されているかどうか、インデックス付きかどうかなど、1 つ以上の属性によって定義されます。 作業項目フォームを使用してフィールドに設定できる値に対して条件を制限、自動設定、または指定する省略可能な要素を指定することもできます。

フィールドの追加、削除、またはフィールドを使用してデータを追跡する方法のカスタマイズを行うことができます。 作業項目を定義する方法については、このトピックで後述する「データ フィールドの定義とカスタマイズ」を参照してください。

作業項目フィールドの定義

システム フィールドおよび MSF のプロセス テンプレートで定義済みのフィールドの使用

作業項目フィールドの追加および修正とレポート作成

グローバル リスト

グローバル リストでは、ユーザーが作業項目のフィールドに設定できる値を制御するために作業項目のすべての種類で使用できる値のリスト (選択リスト) を定義します。 多くの作業項目の種類で使用される選択リストの内容を簡単に更新するには、グローバル リストを使用します。

グローバル リストは作業項目の種類でも定義できますが、作業項目の種類の定義をインポートするときにその定義によって別の場所で定義された変更が上書きされるため、この方法は使用しないでください。 グローバル リストまたはグローバル ワークフローの定義ファイルを使用して、グローバル リストを定義およびインポートすることをお勧めします。

グローバル リストの定義

グローバル リストの追加、使用、および管理

グローバル ワークフロー

グローバル ワークフローでは、チーム プロジェクトまたはコレクションのすべての作業項目の種類で使用できるフィールドとグローバル リストを定義します。

グローバル ワークフローのカスタマイズ

リンクの種類

リンクの種類では、作業項目間にユーザーが構築できる関係を制御する規則と制限を定義します。 リンクの組み込みの種類に加え、プロジェクトの追跡要件をサポートするリンクの種類を作成することもできます。 作業項目間のリンクの作成を開始する前に、プロジェクトを計画して作業項目の状態を追跡するためにリンクをどのように使用するのかを分析しておく必要があります。

リンクの種類を使用して作業項目を関連付ける方法のカスタマイズ

プロジェクトを効果的に追跡するためのリンクの種類の選択

作業項目の種類

作業項目の種類では、チーム プロジェクトの作業の追跡に使用するオブジェクト (バグ、要件、リスクなど) を定義します。 次のコンポーネントでは作業項目の種類を定義します。

  • フィールドでは、作業項目が格納するデータの型を定義します。 フィールドを定義するには、作業項目の種類またはグローバル ワークフローの定義に FIELDS (定義) セクションを含めます。

  • ワークフローでは、作業項目がオープンまたはアクティブ状態から終了または完了状態に移行する方法を定義します。 ワークフローは、その初期状態、有効な状態、それらの状態間の有効な遷移、およびその遷移を開始するアクセス許可を持つユーザーまたはグループを定義することによって制御できます。 作業項目の種類の WORKFLOW セクションによって、作業項目の追跡方法が制御されます。

  • フォームでは、作業項目データを追跡するためにチーム メンバーがやり取りするフォームに表示されるレイアウトと内容を定義します。 作業項目の種類の定義の FORM セクションを更新すると、ユーザー インターフェイス要素の表示方法を制御できます。 作業項目の各種類に対し、フォームを 1 つだけ対応付ける必要があります。 ただし、さまざまなクライアントを対象とする場合、フォームには 1 つ以上のレイアウトを定義できます。 すべてのデータ フィールドをどのようにグループ化するかも含め、フォーム全体について記述します。

すべての WITD XML 要素のリファレンス

作業項目ワークフローの定義とカスタマイズ

作業項目フォームのデザインとカスタマイズ

作業項目の種類の追加とカスタマイズ

作業項目の種類を作成する

ページのトップへ

カスタマイズ要件の計画

作業を追跡するためのオブジェクトを定義およびカスタマイズする前に、次のセクションを確認して計画の参考にしてください。

  • カスタマイズ プロセスの基本原則

  • システム フィールド

  • データ フィールドの定義と作業項目の種類のカスタマイズ

  • 人名フィールド

  • Team Foundation と Microsoft Project 間でのフィールドのマッピング

  • 既存のフィールドの変更

  • グローバル リストとグローバル ワークフローの使用

カスタマイズ プロセスの基本原則

作業を追跡するためのオブジェクトの作成またはカスタマイズを計画している場合は、次のプロセスをできるだけ組み込むことを検討してください。

  • 作業を実施するメンバーと作業項目の追跡ワークフローに参加するメンバーの両方について、役割と責任を明確に定めます。

  • オブジェクトをカスタマイズして配置を修正したときに行った変更を自動化および文書化します。

  • ソフトウェアをテストする場合と同様に、カスタマイズしたオブジェクトをテストします。

  • プロセス テンプレートとオブジェクトのバージョン コントロールを行います。 リポジトリに格納されていない定義済みオブジェクトは配置しないでください。

  • 最初に必ず変更をテスト環境に導入します。 作業を追跡するためのオブジェクトがテスト環境と稼動環境で類似しているかまったく同じであることを確認します。

ページのトップへ

システム フィールド

作業項目のすべての種類の定義で FIELD (定義) 要素を使用して明示的に定義されていなくても、作業項目のすべての種類が参照できるシステム フィールドがいくつかあります。 システム フィールドの名前は、すべて "System" というプレフィックスで始まります (System.ID など)。 これらのフィールドの大半は追跡のために使用され、ユーザー インターフェイスからユーザーが変更できるフィールドはごく一部に限られます。 既定では、次のフィールドをすべて使用できます。

  • 識別フィールド: "タイトル""説明"、および "担当者"。 これらのフィールドは各作業項目の識別に役立ちます。フィールドの値はユーザー インターフェイスからユーザーが変更できます。 通常、これらのフィールドは作業項目の各種類のフォームに含まれています。

  • 追跡フィールド: "ID""作業項目の種類""チーム プロジェクト""バージョン"、および作業項目にリンクされている成果物の数を示すフィールド ("添付ファイル数""外部リンク数""ハイパーリンク数""関連リンク数" など)。 これらのフィールドを作業項目フォームに含める場合は、読み取り専用にする必要があります。 追跡フィールドは、作業項目または作業項目のセットの検索やレポートの生成に役立ちます。

  • 監査フィールド: "作成者""作成日""変更者""変更日"、および "履歴"。 これらのフィールドでは、作業項目を作成または変更したユーザーと、作業項目が作成または変更された日付を追跡します。 作業項目のフィールドが変更されると、"履歴" フィールドが自動的に更新されます。

  • 特殊動作フィールド: "状態""理由""区分"、および "イテレーション"。 これらの各フィールドには、固有の動作が関連付けられています。 "状態" フィールドと "理由" フィールドのビヘイビアーは、ワークフローの機構と規則によって管理されます。 区分パスとイテレーション パスは、定義されている唯一の TreePath フィールドです。 チーム プロジェクトの [区分およびイテレーション] ダイアログ ボックスで有効な値を定義します。 詳細については、「区分およびイテレーションの作成および修正」を参照してください。

詳細については、「システム フィールドおよび MSF のプロセス テンプレートで定義済みのフィールドの使用」を参照してください。

ページのトップへ

データ フィールドの定義と作業項目の種類のカスタマイズ

データ フィールドまたは作業項目の種類を定義するときは、次のガイドラインを考慮してください。

  • 組み込み済みのデータ フィールドと既に定義済みのデータ フィールドに加え、必要なデータ フィールドを決定します。 既存のフィールドの詳細については、「システム フィールドおよび MSF のプロセス テンプレートで定義済みのフィールドの使用」を参照してください。 また、witadmin listfields コマンドを使用して、プロジェクト コレクションに定義されたフィールドのリストをエクスポートすることもできます。 詳細については、「作業項目フィールドの管理 [witadmin]」を参照してください。

  • 既存のフィールド規則を変更する必要があるかどうかを判断します。

  • 既存の作業項目の種類のワークフローをチーム プロセスに必要なものと比較します。 ワークフローをまず検討してから、状態ラベルを検討します。

  • フィールドを追加またはカスタマイズする場合は、特別なロジックを実装する必要があるかどうかを判断します。

    • フィールド規則を適用するユーザーまたはグループが 1 つのみか、または複数かについてフィールド規則を制限する必要があるか。

    • 状態、遷移、または遷移の理由に基づいて、フィールド規則を制限する必要があるか。

    • フィールドを値の静的または動的リストに関連付ける必要があるか。 どのような列挙リストが必要か。また、それらのリストを作業項目の種類およびチーム プロジェクト全体でどのように共有するのか。

      静的リストを更新する必要はほとんどありません。 動的リストは、一連のユーザー名または顧客名に基づいている場合があります。 グローバル リストを使用してリストの更新に費やす時間を最小限に抑えることができるか。 Active Directory と人名フィールドを使用してリストを同期できるか。

    • 複数のチーム プロジェクトまたは複数の作業項目の種類全体で常に使用される一連のフィールドを定義する必要があるか。

      チームで複数の作業項目の種類にわたってフィールドを追跡する必要がある場合、作業項目の種類ごとではなく、グローバル ワークフローでそれらのフィールドを定義できるか。

注意

2 つ以上のフィールドに格納されたデータを計算するフィールドは定義できません。

詳細については、「作業項目フィールドの定義」を参照してください。

ページのトップへ

人名フィールド

人名の格納に使用するフィールドを定義するには、文字列型を使用します。 このフィールドの有効な名前のリストを Active Directory に格納されているリストと同期する場合は、syncnamechanges 属性を true に設定します。 また、人名の同期をサポートするように、既存の文字列フィールドの属性を変更することもできます。 詳細については、「人名のカスタム フィールドの同期の有効化」を参照してください。

ページのトップへ

Team Foundation と Microsoft Project 間でのフィールドのマッピング

Microsoft Project を使用してプロジェクト スケジュールを管理する場合、フィールドを定義してこれを作業項目フォームに追加できます。これらのフィールドは、プロジェクト計画から表示または変更できます。 チーム プロジェクトが Microsoft Solutions Framework (MSF) プロセス テンプレートに基づいている場合は、チーム プロジェクトの作成時に既定のマッピング ファイルがアップロードされています。

Team Foundation と Microsoft Project 間でのフィールドのマッピングは、Microsoft Project のフィールド マッピング ファイルで指定されます。 詳細については、「Microsoft Project のフィールド マッピングのカスタマイズ」および「Microsoft Project を使用することによるタスクのスケジュール設定およびリソースの割り当て」を参照してください。

ページのトップへ

既存のフィールドの変更

データ フィールドを定義した後でそれらのフィールドに変更を加える場合は、多少の犠牲が伴います。

作業項目の種類またはグローバル ワークフローを使用して定義したすべてのフィールドは、チーム プロジェクト コレクションに定義されます。 フィールドを定義することは、各レコードの表示名、参照名、およびその他のフィールド属性を格納するグローバル データベース テーブルに新しいレコードを追加することとほぼ同じです。 コレクションに定義されている作業項目の種類は、すべてこのテーブルを参照します。 したがって、フィールド名の変更、属性の変更、またはフィールドの削除を行うと、そのフィールドを参照するすべての作業項目の種類に影響します。

また、Team Foundation Server の 1 つの配置のすべてのコレクションで定義されている全チーム プロジェクトのレポート可能データは、すべて 1 つのリレーショナル データ ウェアハウスに書き込まれます。 次に、このデータ ウェアハウスのデータは、処理されて SQL Server Analysis Services キューブに書き込まれます。 このようにデータが 1 つのデータ ウェアハウスに集められるので、コレクション間にまたがるレポートを作成できます。 ただし、フィールドはコレクションごとに別々に管理されるので、同じレポート内参照名を割り当てられているフィールドの属性値がコレクション間で異なる場合、スキーマ競合が発生する可能性があります。

さらに、作業項目の種類にフィールドを追加したときに、同じ参照名を既に使用している作業項目の種類が別にある場合、データ型またはフィールド名をオーバーライドすることはできません。 また、次の制約が適用されます。

  • 特定の作業項目の種類からフィールドを削除した場合、そのフィールドがどの作業項目の種類からも参照されなくなっていても、コレクションまたはデータベース サーバーからは削除されません。 フィールドを削除するには、witadmin deletefield コマンドを使用してコレクションから明示的に削除する必要があります。

  • フィールドを削除する前に、そのフィールドを参照するすべての作業項目の種類およびグローバル ワークフローの定義からフィールドを削除しておく必要があります。

  • 削除したフィールドがレポートに使用されていた場合は、古いフィールドとその値を削除するために、データ ウェアハウスをビルドし直す必要があります。

ページのトップへ

グローバル リストとグローバル ワークフローの使用

一部のオブジェクトをグローバルとして定義すると、作業項目の種類の保守およびカスタマイズ作業を簡略化できます。 グローバル オブジェクトは、チーム プロジェクトまたはプロジェクト コレクションで使用できます。 グローバル オブジェクトをプロセス テンプレートに追加して、新しいチーム プロジェクトで使用できるようにすることも、他のプロジェクト コレクションにアップロードすることもできます。 計画時に、グローバル リストとグローバル フィールドをチーム プロジェクトおよび作業項目の種類でどのように使用するかを決定します。

グローバル リストを定義するときは、作業項目の種類の定義の一部として定義する方法、グローバル ワークフローの一部として定義する方法、コレクションにインポートするグローバル リストの独自の定義ファイルとして定義する方法の 3 種類の方法があります。 すべてのグローバル リストを 1 か所に保持し、既存の作業項目の種類に変更を加えるときにグローバル リストを誤って変更しないようにするために、後の 2 つの方法をお勧めします。

XML 定義ファイルを使用してグローバル ワークフローを定義し、チーム プロジェクト用またはコレクション用にインポートできます。 グローバル ワークフローには、フィールド定義とグローバル リストを含めることができます。

詳細については、「グローバル リストの定義」および「グローバル ワークフローのカスタマイズ」を参照してください。

ページのトップへ

関連タスク

タスク

関連するコンテンツ

フィールドと、作業項目を追跡するためのその他のオブジェクトに名前を付ける方法を理解する。 作業項目の追跡に使用するオブジェクトごとに表示名を指定できます。 一部のオブジェクトについては、参照名も指定する必要があります。 どちらの種類の名前も、オブジェクトの種類に基づいて定義されている要件を満たす必要があります。

作業項目の種類の要素のスキーマ定義を検索する。 作業項目の種類に関連付けられている各スキーマ要素の構文を表示できます。

追跡要件をサポートする作業項目をカスタマイズするための最適な方法を確認する。 作業項目を追跡するためのオブジェクトを変更する場合は、これらの変更によって既存のチーム プロジェクトと今後のチーム プロジェクトにどのような影響を与えるかを確認する必要があります。

作業項目の種類の定義でローカライズできるものを識別する。 作業項目の種類の定義の一部はローカライズして、ユーザーのネイティブ言語で表示できます。

作業項目を追跡するためのオブジェクトのインポート、エクスポート、および管理を行う。 witadmin コマンドライン ツールを使用して、カテゴリ、グローバル リスト、リンクの種類、作業項目の種類、作業項目フィールドに、作成、削除、インポート、およびエクスポートを実行できます。 これらのオブジェクトの管理は、各コレクションまたは各チーム プロジェクトに対して行います。

参照

概念

作業項目の追跡の新機能

バグ、タスク、およびその他の作業項目の追跡

チーム プロジェクトとプロセスのカスタマイズ

その他の技術情報

作業項目を追跡するためのオブジェクトの作業項目トラッキング プラグインによる定義およびカスタマイズ

プロセス テンプレートのカスタマイズ

履歴の変更

日付

履歴

理由

2011 年 1 月

コレクションではなくチーム プロジェクトに定義されている各オブジェクトを示す図を追加。 カスタマイズ要件の計画方法に関するセクションとグローバル ワークフローに関する情報を追加。 内容を整理し、書式を変更。

情報の拡充