ポートフォリオ バックログ レベルを追加する

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019 | TFS 2018

プロジェクトには、機能とエピックの 2 つのポートフォリオ バックログが用意されています。 ただし、1 つ以上の追加ポートフォリオ バックログが必要な場合は、それらを追加できます。

重要

この記事は、Hosted XML およびオンプレミス XML プロセス モデルのプロジェクトカスタマイズに適用されます。 継承プロセス モデルについては、「プロセスの バックログまたはボードをカスタマイズする」を参照してください。

プロセス モデルの概要については、「 作業追跡エクスペリエンスをカスタマイズする」を参照してください。

ポートフォリオ バックログは、ビジネス イニシアチブの下でバックログを整理するのに役立ちます。 バックログをポートフォリオに整理すると、下位レベルのバックログで定義された作業 (複数のチームで進行中の作業を含む) の階層ビューを取得できます。 プログラム マネージャーは、関心のあるバックログ項目の状態を追跡し、ドリルダウンしてすべての作業が表されるようにすることができます。

注意

オンプレミスの Azure DevOps プロジェクトに対してポートフォリオ バックログ機能をまだ有効にしていない場合は、 まずそれを行います

ここでは、3 つ目のポートフォリオ バックログであるイニシアティブを追加します。 これを使用すると、管理チームは優先順位を設定し、イニシアチブに属する作業の進捗状況を表示できます。

注意

Web ポータルから表示される画像は、このトピックに表示される画像と異なる場合があります。 これらの違いは、プロジェクトに対して行われた更新と、プロジェクトの作成時に選択されたプロセス テンプレート (アジャイルスクラムCMMI) に起因します。 ただし、明示的に言及していない限り、使用できる基本的な機能に変わりはありません。

有効になっている 3 つのポートフォリオ バックログのビュー

最大 5 つのレベルのポートフォリオ バックログを追加できます。 また、各チームは、 作業するバックログを選択できます。

プロセスの概要

別のポートフォリオ バックログを追加するプロセスは、使用する プロセス モデル によって若干異なります。

  • Hosted XML の場合: 最初にプロセスをエクスポートし、定義ファイルを追加または更新してから、そのプロセスをインポートして既存のプロジェクトを更新するか、それを使用してプロジェクトを作成します。
  • オンプレミス XML の場合: 最初に作業追跡定義ファイルをエクスポートし、更新してから、プロジェクトにインポートします。

この記事では、次の 5 つの手順で アジャイル プロセス に基づいてポートフォリオ バックログをプロジェクトに追加する手順について説明します。

  1. 必要なファイルをエクスポートする
  2. 作業項目の種類 Initiative の作成
  3. イニシアティブ カテゴリを使用してカテゴリを更新する
  4. ProcessConfiguration を更新してイニシアティブ ポートフォリオのバックログを追加する
  5. プロジェクトを更新し、変更を確認する

スクラムまたは CMMI プロセスに基づいてプロジェクトを操作する場合は、同じ手順を適用できます。 完了したら、ユーザー ストーリー (または製品バックログアイテムまたは要件)、機能、エピック、イニシアティブの 4 つのレベルで作業をグループ化することで、プロジェクトのポートフォリオを管理できるようになります。

詳細については、「 プロセスとプロセス テンプレートについて」を参照してください。 3 つのプロセス モデルの概要については、「 作業追跡エクスペリエンスをカスタマイズする」を参照してください。

1. 必要なファイルをエクスポートする

  1. Project Collection Administrators グループのメンバーでない場合は、管理者として追加します。 プロジェクトをカスタマイズするには、これらのアクセス許可が必要です。

  2. 必要なファイルを取得します。

2. Initiative という名前の作業項目の種類を作成する

作業項目の種類 (WIT) を作成する最も簡単な方法は、既存の WIT をコピーし、その名前を変更して、要件をサポートするように編集することです。 この例では、Epic WIT をコピーし、イニシアティブにラベルを付けます。

    - 'Epic' WIT 定義を "Initiative" というラベルの付いた XML ファイルにコピーします。 (Epic.xml ファイルは、ProcessTemplate フォルダーの WorkItem Tracking フォルダーにあります)。
    • という名前 Initiativeのファイルを編集します。
      - WIT の名前を変更します。 'WORKITEMTYPE name="Epic"' を 'WORKITEMTYPE name="Initiative"' に置き換え、説明を更新します。
      '<WORKITEMTYPE name="Initiative" >'
         '<DESCRIPTION>イニシアティブは、プログラム マネージャーが複数のチーム >の作業を効果的に管理および整理するのに役立ちます'
         '</DESCRIPTION>'
      `. . .`
      '</WORKITEMTYPE>'

      - この WIT を使用して 追跡するユーザー設定フィールド を追加します。
      - 'Features' という名前の 'Tab' セクションの名前を 'Epics' に変更し、'Filter WorkItemType="Feature"' を 'Filter WorkItemType="Epic"' に置き換えます。
      '<Tab Label="Epics">'
      '<Control Type="LinksControl" Name="Hierarchy">'
         '<LinksControlOptions>'
         '<WorkItemLinkFilters FilterType="include">'
         '<Filter LinkType="System.LinkTypes.Hierarchy" />'
         '</WorkItemLinkFilters>'
         '<WorkItemTypeFilters FilterType="include">'
            '<Filter WorkItemType="Epic" />'
         '</WorkItemTypeFilters>'
            '<ExternalLinkFilters FilterType="excludeAll" />'
            '<LinkColumns>'
                '<LinkColumn RefName="System.ID" />'
                '<LinkColumn RefName="System.Title" />'
                '<LinkColumn RefName="System.AssignedTo" />'
                '<LinkColumn RefName="System.State" />'
                '<LinkColumn LinkAttribute="System.Links.Comment" />'
                '</LinkColumns>'
         '</LinksControlOptions>'
      '</Control>'
      '</Tab>'

      この変更により、タブ コントロールはイニシアチブの子作業項目としてエピックを排他的に表示またはリンクします。



3. イニシアティブ カテゴリを使用してカテゴリを更新する

次に、Initiative カテゴリを追加します。 これにより、Initiative バックログがプロセス構成に追加されます。 アジャイル エクスペリエンスでは、カテゴリに従って WIT を管理します。

イニシアティブ カテゴリを Categories.xml ファイルに追加します。 (Categories.xml ファイルは WorkItem Tracking フォルダーにあります。

  <CATEGORY name="Initiative Category" refname="FabrikamFiber.InitiativeCategory">  
    <DEFAULTWORKITEMTYPE name="Initiative" />  
  </CATEGORY>  

このカテゴリは、定義ファイル内の任意の場所に追加できます。 カスタム カテゴリを追加するので、会社名を使用してカテゴリにラベルを付けます。

4. ProcessConfiguration を更新してイニシアティブ ポートフォリオ バックログを追加する

この最後の手順では、Initiative ポートフォリオ バックログをプロセスに追加し、フィーチャー ポートフォリオ バックログを変更して、Initiative とフィーチャーの間の階層が反映されるようにします。 プロセス構成によって、ポートフォリオ バックログ間の親子関係が決定されます。

  1. ProcessConfiguration ファイルを編集して、セクション内に新しいポートフォリオ バックログを PortfolioBacklogs 追加します。 (ProcessConfiguration.xml ファイルは、ProcessTemplate フォルダーの WorkItem Tracking/Process フォルダーにあります)。

    次の構文を追加して、Initiative カテゴリを追加します。 名前、ワークフロー状態の値、および既定の列のフィールドは、使用環境に合わせて置き換えてください。

    <PortfolioBacklog category="FabrikamFiber.InitiativeCategory" pluralName="Initiatives" singularName="Initiative" workItemCountLimit="1000">
      <States>
        <State value="New" type="Proposed" />
        <State value="Active" type="InProgress" />
        <State value="Resolved" type="InProgress" />
        <State value="Closed" type="Complete" />
      </States>
      <Columns>
        <Column refname="System.WorkItemType" width="100" />
        <Column refname="System.Title" width="400" />
        <Column refname="System.State" width="100" />
        <Column refname="Microsoft.VSTS.Scheduling.Effort" width="50" />
        <Column refname="Microsoft.VSTS.Common.BusinessValue" width="50" />
        <Column refname="Microsoft.VSTS.Common.ValueArea" width="100" />
        <Column refname="System.Tags" width="200" />
      </Columns>
      <AddPanel>
        <Fields>
          <Field refname="System.Title" />
        </Fields>
      </AddPanel>
    </PortfolioBacklog>
    

    ワークフローの状態を変更した場合は、各ワークフローの状態が、、InProgressおよび Completeのいずれかのメタ状態Proposedにマップされていることを確認します。 ワークフロー内の最後の状態は にマップする Complete必要があります。

  2. PortfolioBacklog親バックログとして指Initiativeすように Epic Category の要素を編集します。

    <PortfolioBacklog category="Microsoft.EpicCategory" pluralName="Epics"  
       singularName="Epic" parent="FabrikamFiber.InitiativeCategory"      
       workItemCountLimit="1000">   
       . . .  
    </PortfolioBacklog>
    

    中間のポートフォリオ バックログには親カテゴリを指定する必要があり、その親カテゴリはポートフォリオ バックログとして構成されている必要があります。

  3. [イニシアティブ] に使用する色を セクションに WorkItemColors 追加します。

        <WorkItemColor primary="FFCC66FF" secondary="FFF0D1FF" name="Initiative" />
    

    これにより、リストディスプレイで使用する原色として明るいピンクが割り当てられ、セカンダリカラー(現在は使用されていない)に対してパラーピンクが割り当てられます。

5. プロジェクトを更新し、新しいポートフォリオ バックログへのアクセスを確認する

  1. プロジェクトを更新します。

  2. Web ポータルを開くか更新し、イニシアティブが期待どおりにポートフォリオ バックログとして表示されることを確認します。 「バックログを整理する」を参照してください

  3. ポートフォリオ バックログで使用できるすべての機能を実行する必要があるユーザーに 高度なアクセス 権を付与します。
    ホストされる XML の場合: 「ユーザーにライセンスを割り当てる」を参照してください。

定義ファイルのインポートとエクスポート (オンプレミスの TFS のみ)

オンプレミスの TFS に接続するプロジェクトを更新する場合は、 witadmin コマンドを使用して定義ファイルをインポートおよびエクスポートします。 次のファイルをエクスポートする必要があります。

  • Epic.xml
  • Categories.xml (WorkItem Tracking フォルダーにあります)
  • ProcessConfiguration.xml (WorkItem の追跡/プロセス フォルダーにあります)

ヒント

witadmin を使用すると、定義ファイルをインポートおよびエクスポートできます。 使用できるその他のツールには、プロセス エディターが含まれます (Visual Studio のバージョンをインストールしている必要があります)。 Visual Studio Marketplace からプロセス テンプレート エディターをインストールします

ヒント

witadmin を使用すると、定義ファイルをインポートおよびエクスポートできます。 使用できるその他のツールには、プロセス エディターが含まれます (Visual Studio のバージョンをインストールしている必要があります)。 Visual Studio Marketplace から TFS プロセス テンプレート エディターをインストールします。 このバージョンのプロセス エディターを使用して、古いスタイルの作業項目フォームを変更できます。 これを使って、新しい Web フォームに関連付けられているフォームを編集することはできません。

または、GitHub から入手できるオープンソース クライアントである TFS Team Project Manager を使用することもできます。

  1. 「witAdmin: 作業を追跡するためにオブジェクトをカスタマイズおよび管理する」に記載されている手順に従って、コマンド プロンプト ウィンドウを開きます。 次に例を示します。
  1. コマンドを witadmin 入力し、表示される引数のデータを置き換える。 たとえば、WIT をインポートするには、次のようにします。

    witadmin importwitd /collection:CollectionURL /p:"ProjectName" /f:"DirectoryPath\WITDefinitionFile.xml"
    

    [CollectionURL] にはプロジェクト コレクションの URL を指定し、[ProjectName] にはコレクション内で定義されているプロジェクトの名前を指定します。 URL は、次の形式で指定する必要があります。 http://ServerName:Port/VirtualDirectoryName/CollectionName

    [DirectoryPath] には、ダウンロードしたプロセス テンプレートをWorkItem Tracking/TypeDefinitions保持するフォルダーへのパスを指定します。 ディレクトリ パスは、次の構造に従う必要があります。 Drive:\TemplateFolder\WorkItem Tracking\TypeDefinitions

    たとえば、ServiceApp WIT をインポートします。

    witadmin importwitd /collection:"http://MyServer:8080/tfs/DefaultCollection"/p:MyProject /f:"DirectoryPath/ServiceApp.xml"
    

次のコマンドを使用して、カテゴリをエクスポートおよびインポートし、構成を処理します。

witadmin exportwitd /collection:CollectionURL /p:"ProjectName" /n:TypeName /f:"DirectoryPath\WITDefinitionFile.xml"

witadmin importwitd /collection:CollectionURL /p:"ProjectName" /f:"DirectoryPath\WITDefinitionFile.xml"

witadmin exportcategories /collection:"CollectionURL" /p:"ProjectName" /f:"DirectoryPath/categories.xml"

witadmin importcategories /collection:"CollectionURL" /p:"ProjectName" /f:"DirectoryPath/categories.xml"

witadmin exportprocessconfig /collection:"CollectionURL" /p:"ProjectName" /f:"DirectoryPath/ProcessConfiguration.xml"

witadmin importprocessconfig /collection:"CollectionURL" /p:"ProjectName" /f:"DirectoryPath/ProcessConfiguration.xml"

別のポートフォリオ バックログ レベルを追加する方法を示しました。 ポートフォリオ バックログは 5 つまで追加できます。 これには、Feature と Epic の既定のバックログが含まれます。 合計すると、最上位のポートフォリオ バックログからタスクまで 7 レベルに対応しています。

5 レベルのポートフォリオ バックログに関する概念図

バックログまたはボードに別の WIT を追加する場合は、「 バックログとボードに作業項目の種類」を参照してください。

定義ファイルまたはコマンド ライン ツールの構文の詳細については、次のトピックを参照してください。

それ以外の場合は、「 作業追跡エクスペリエンスをカスタマイズ して、使用可能な他の構成とカスタマイズ オプションにアクセスする」を参照してください。

その他の質問がある場合は、「 Team Foundation Server - 作業追跡 フォーラム」を参照してください。

ポートフォリオ バックログ階層

ポートフォリオ バックログ間の階層を制御するものは何ですか?

プロセス構成では、ポートフォリオ バックログ カテゴリへの親カテゴリの割り当てによって階層が決定されます。 サポートされているのは親子関係だけです。 階層内の最も上位のカテゴリには、親の割り当てが含まれません。

ポートフォリオ バックログと WIT カテゴリ

ポートフォリオ バックログに使用するカテゴリに複数の WIT を定義できますか?

はい。 たとえば、ポートフォリオ バックログのカテゴリに Goal と Initiative という WIT を追加できます。 メイン制限は、プロセス構成の次のいずれかのセクションに割り当てられている 2 つの異なるカテゴリに同じ WIT を追加しないようにすることです。PortfolioBacklogRequirementBacklogTaskBacklog

バックログ項目の入れ子

ポートフォリオ バックログを使用するだけでなく、バックログ項目を入れ子にすることはできますか?

バックログ項目は入れ子にできますが、入れ子にすることはお勧めしません。 入れ子になったバックログ項目のドラッグ アンド ドロップ リンクはサポートされていません。 代わりに、 バックログ 項目とポートフォリオ アイテムのマッピングがサポートされます

要件カテゴリに属する階層的にリンクされたアイテムがバックログとボードに表示される方法の例については、「 バックログとボードで階層 (入れ子になった) 項目を表示する方法」を参照してください。