チームをサポートするために区分パスの代わりにチーム フィールドを使用する
チーム プロジェクトの既定の構成では、各チームが区分パスとして構成されます。 共通のバックログから多くの製品区分にわたって作業する複数のチームが組織に存在する場合、この構成では、適切な形で作業を編成できないことがあります。 組織内のチームを表すカスタム フィールドを追加することで、チームをサポートするようにアジャイル計画ツールとページを再構成し、チームと区分パスの割り当てを解除できます。
チーム フィールドをサポートするためにチーム プロジェクトをカスタマイズする場合、チーム プロジェクトと各チームの管理ページに [チーム フィールド] タブが表示されます。
このトピックでは、TFS が提供するスクラム プロセス テンプレートに基づくチーム プロジェクトを再構築する方法について説明します。 チーム プロジェクトが別のプロセス テンプレートに基づいている場合でも、そのテンプレートに TFS 2013 との互換性があれば、同様に変更することができます。 既定の構成を使用している場合でも、チーム プロジェクトを再構成できます。
witadmin のコマンド ライン ツールでは、定義ファイルのインポートとエクスポートがサポートされています。 プロセス エディターは、TFS Power Tools、または CodePlex で使用できるコミュニティ リソース プロジェクトの TFS Team Project Manager からダウンロードすれば利用可能です。
1.チームを管理するためのグローバル リストの作成
プロジェクト管理者グループのメンバーでない場合は、これらのアクセス許可を取得します。
Visual Studio またはチーム エクスプローラーがインストールされている環境でコマンド プロンプト ウィンドウを開き、次のように入力します。
cd %programfiles%\Microsoft Visual Studio 12.0\Common7\IDE
64 ビット版の Windows で、%programfiles% を %programfiles(x86)% に置き換えます。 チーム エクスプローラーは無料でダウンロードできます。
チーム プロジェクト コレクションのグローバル リストをエクスポートします。
witadmin exportgloballist /collection:"http://MyServer:8080/tfs/DefaultCollection" /f:Directory/globallist.xml"
チーム用のグローバル リストの定義を追加します。 項目で使用する予定があり、まだチームに割り当てられていない値を含めます。 グローバル リストが空の場合は、次のコードをコピーし、XML ファイルに貼り付けて、チームのラベルをサポートするように変更します。
<?xml version="1.0" encoding="utf-8"?> <gl:GLOBALLISTS xmlns:gl="https://schemas.microsoft.com/VisualStudio/2005/workitemtracking/globallists"> <GLOBALLIST name="Teams"> <LISTITEM value="Unassigned"/> <LISTITEM value="Team A"/> <LISTITEM value="Team B"/> <LISTITEM value="Team C"/> <LISTITEM value="Team D"/> </GLOBALLIST> </gl:GLOBALLISTS>
グローバル リストの定義をインポートします。
witadmin importgloballist /collection:"http://MyServer:8080/tfs/DefaultCollection" /f:Directory/globallist.xml"
グローバル リストは、チーム プロジェクト コレクション内のすべてのチーム プロジェクトに対して定義されることに注意してください。
2.作業項目の種類へのカスタム フィールドの追加
機能カテゴリ、要件カテゴリ、およびタスク カテゴリに含まれるすべての作業項目の種類 (WIT) をカスタム チーム フィールドに追加します。 TFS 2013.3 にアップグレードした場合、テスト計画カテゴリに含まれるすべての WIT にカスタム チーム フィールドを追加します。
作業項目の種類の定義をエクスポートします。 スクラムの場合は、機能、プロダクト バックログ項目、バグ、タスクの種類の定義をエクスポートします。
witadmin exportwitd /collection:"http://MyServer:8080/tfs/DefaultCollection" /p:MyProject /n:"Product Backlog Item" /f:Directory/pbi.xml witadmin exportwitd /collection:"http://MyServer:8080/tfs/DefaultCollection" /p:MyProject /n:Bug /f:Directory/bug.xml witadmin exportwitd /collection:"http://MyServer:8080/tfs/DefaultCollection" /p:MyProject /n:Task /f:Directory/task.xml witadmin exportwitd /collection:"http://MyServer:8080/tfs/DefaultCollection" /p:MyProject /n:"Test Plan" /f:Directory/TestPlan.xml
各種類に対して、グローバル リストを参照するカスタムの Team フィールドを追加します。
<FIELDS> . . . <FIELD name="Team" refname="MyCompany.Team" type="String" reportable="dimension"> <HELPTEXT>Name of the team that will do the work.</HELPTEXT> <ALLOWEXISTINGVALUE /> <ALLOWEDVALUES > <GLOBALLIST name="Teams" /> </ALLOWEDVALUES > <DEFAULT from="value" value="Unassigned" /> </FIELD> . . . </FIELDS>
ヒント
カスタム フィールドには、TFS のフィールドと区別できるような名前を付けます。"System" を refname のプレフィックスとして使用することは避けてください。また、name ラベルと refname ラベルは、それぞれ 128 文字および 70 文字以内にする必要があります。
作業項目フォームに Team フィールドを追加します。
<FORM> . . . <Group Label="Status"> <Column PercentWidth="100"> <Control FieldName="MyCompany.Team" Type="FieldControl" Label="Team" LabelPosition="Left" EmptyText="<None>" /> <Control Type="FieldControl" FieldName="System.AssignedTo" Label="Assi&gned to:" LabelPosition="Left" /> <Control FieldName="System.State" Type="FieldControl" Label="Stat&e" LabelPosition="Left" /> <Control FieldName="System.Reason" Type="FieldControl" Label="Reason" LabelPosition="Left" ReadOnly="True" /> </Column> </Group> . . . </FORM>
必要に応じて、[区分パス] フィールドを移動して、[イテレーション パス] の前または後に表示されるようにします。
更新した種類の定義をインポートします。
witadmin importwitd /collection:"http://MyServer:8080/tfs/DefaultCollection" /p:MyProject /f:Directory/pbi.xml witadmin importwitd /collection:"http://MyServer:8080/tfs/DefaultCollection" /p:MyProject /f:Directory/bug.xml witadmin importwitd /collection:"http://MyServer:8080/tfs/DefaultCollection" /p:MyProject /f:Directory/task.xml witadmin importwitd /collection:"http://MyServer:8080/tfs/DefaultCollection" /p:MyProject /f:Directory/TestPlan.xml
3.チーム フィールドを参照するためのプロセス構成の変更
ProcessConfiguration の定義をエクスポートします。
witadmin exportprocessconfig /collection:"http://MyServer:8080/tfs/DefaultCollection" /p:MyProject /f:Directory/ProcessConfiguration.xml
System.AreaPath の指定に使用されているフィールドの type="Team" を置き換えます。
<TypeField refname="MyCompany.Team" type="Team" />
(省略可能) バックログ ページでクイック追加パネルにチーム フィールドを追加します。
<RequirementBacklog category="Microsoft.RequirementCategory" parent="Microsoft.FeatureCategory" pluralName="Stories" singularName="User Story"> <AddPanel> <Fields> <Field refname="System.Title" /> <Field refname="MyCompany.Team " /> </Fields> </AddPanel> . . .
定義ファイルをインポートします。
witadmin importprocessconfig /collection:"http://MyServer:8080/tfs/DefaultCollection" /p:MyProject /f:Directory/ProcessConfiguration.xml
4.各チームのチーム フィールドの構成
Team Web Access (TWA) で、チーム フィールドに一致するチームを作成し、チーム フィールドを参照するように構成します。 Fabrikam Fiber Website チーム プロジェクトを含む各チームは、チーム フィールドを既定値で構成する必要があります。
TWA を最新の情報に更新し、チーム プロジェクトのホーム ページからプロダクト バックログ項目を開きます。 変更が適切に反映されていること、およびチームを選択できることを確認します。
グローバル リスト内にあるものと一致するチームをまだ作成していない場合は、チームを作成します。 「別のチームを追加する」を参照してください。
以前にチームを作成していた場合は、それらのチームが存在しています。 必要に応じて名前を変更できます。
チーム プロジェクトのプロダクト バックログまたはタスク ボードを開きます。 チーム区分を選択する必要があるというエラーが表示されます。
[管理] ページで、[チーム フィールド] タブを開き、既定のチームに関連付けるグローバル リストから値を選択します。
すべてのチームの既定チームへのロールアップをサポートするために、すべてのチームを選択します。
次に、チームの階層内にある各チームを、その名前に一致するチーム フィールドの値で構成します。
階層内のすべてのサブ チームに対してこの手順を繰り返します。
チーム フィールドを使用するチームに作業を割り当てる
チーム プロジェクトのプロダクト バックログ ページから、バックログ項目を作成し、それらをチームに割り当てることができます。割り当てるには、各項目を開き、[チーム] フィールドを選択します。 割り当てられた項目はチームのバックログに表示され、スプリント バックログとタスク ボードで使用できるようになります。
チームのバックログ ページから作成するバックログ項目について、TFS はチームに関連付けられた既定値をチーム フィールドに割り当てます。
Q & A
チーム フィールドを使用するようにカスタマイズしたアップグレード済みのチーム プロジェクトに合わせて機能を構成する方法を教えてください。
A: チーム フィールドを使用するようにカスタマイズしたアップグレード済みのチーム プロジェクトに合わせて機能を構成する前に、このトピックで概説している同じ変更で最新のプロセス テンプレートをカスタマイズする必要があります。 基本的な手順は次のとおりです。
TFS を最新のバージョンにアップグレードします。
チーム プロジェクトの作成に使用したテンプレートに対応する TFS プロセス テンプレートをダウンロードします。
ProcessTemplate ファイルを変更し、プロセス テンプレートの名前とバージョン番号を更新します。 次に例を示します。
<?xml version="1.0" encoding="utf-8"?> <ProcessTemplate> <metadata> <name>Microsoft Visual Studio Scrum 2013.3 with Team Field</name> <description>This template is for teams who follow the Scrum methodology and use Scrum terminology.</description> <version type="6B724908-EF14-45CF-84F8-768B5384DA45" major="3" minor="60" />
「作業項目の種類へのカスタム フィールドの追加」で説明したように、機能、要件、タスク カテゴリに割り当てた作業項目の種類について WIT 定義を更新します。 スクラム プロセス テンプレートの場合、これは機能、プロダクト バックログ項目、バグ、タスク、およびテスト計画の WIT に対応します。
「チーム フィールドを参照するためのプロセス構成の変更」で説明しているように、カスタム チーム フィールドを使用するように ProcessConfiguration ファイルを更新します。
先ほど変更した TFS プロセス テンプレートをアップロードします。
ウィザードを使用して機能を構成します。 ウィザードにより確認を求められたら、前の手順でアップロードしたプロセス テンプレートを選択する必要があります。
チーム プロジェクトに追加するチームがチーム フィールドに表示されない理由を教えてください。
A: チーム プロジェクトの [概要] ページからチーム プロジェクトに追加するチームは、チームをキャプチャするために作成したカスタム フィールドの選択リストに表示されません。 新しいチームが表示されるようにするには、「チームを管理するためのグローバル リストの作成」で作成したグローバル リストを更新する必要があります。
グローバル リストを使用して新しいチームを追加してから、「チーム設定の構成」で説明したようにそれらのチームを構成します。
他に使用できる witadmin のコマンドを教えてください。
A: すべての witadmin コマンドの一覧については、「witAdmin: 作業を追跡するためのオブジェクトのカスタマイズおよび管理」を参照してください。
プロセス テンプレートのカスタマイズに関する詳細は、どこで知ることができますか。
A: 「プロセスのカスタマイズ」を参照してください。
謝辞
区分パスから分離されたチームのカスタマイズに関するガイダンスは、シニア ALM コンサルタントおよび Microsoft Visual Studio ALM MVP である Martin Hinshel とのパートナーシップによって開発されました。