添加项目组合积压工作级别

Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018

你的项目配备了两个项目组合积压工作:功能和史诗。 但是,如果需要一个或多个额外的项目组合积压工作,可以添加它们。

重要

本文适用于托管 XML 和本地 XML 进程模型的项目自定义。 有关继承过程模型,请参阅 自定义进程的积压工作或板

有关流程模型的概述,请参阅 自定义工作跟踪体验

项目组合积压工作可用于根据业务计划组织积压工作。 将 积压工作组织到组合中时,可以获取在较低级别积压工作中定义的工作的分层视图,包括跨多个团队正在进行的工作。 项目经理可以跟踪感兴趣的积压工作项的状态并向下钻取,以确保表示所有工作。

注意

如果尚未为本地Azure DevOps项目启用项目组合积压工作功能,请先执行此操作

在这里,我们添加了第三个项目组合积压工作计划。 通过它,管理团队可以设置优先级并查看属于计划的工作进度。

注意

从 Web 门户看到的图像可能与本主题中看到的图像不同。 这些差异源于对项目的更新,以及创建项目时选择的过程模板-敏捷ScrumCMMI。 但是,除非明确提及,你可用的基本功能保持不变。

A view of three portfolio backlogs enabled

最多可以添加五个级别的项目组合积压工作。 而且,每个团队都可以 选择要处理哪些积压工作

过程概述

添加另一个项目组合积压工作的过程因所使用的 进程模型 而略有不同。

  • 对于 托管 XML:首先导出进程、添加或更新定义文件,然后导入该过程以更新现有项目或使用它创建项目。
  • 对于 本地 XML:首先导出工作跟踪定义文件,更新它们,然后将其导入项目。

本文逐步介绍如何在以下五个步骤中基于 敏捷流程 将项目组合积压工作添加到项目中:

  1. 导出所需的文件
  2. 创建“计划”工作项类型
  3. 使用计划类别更新类别
  4. 更新 ProcessConfiguration 以添加计划组合积压工作
  5. 更新项目并验证更改

如果基于 ScrumCMMI 进程处理项目,则可以应用相同的步骤。 完成后,你将按照以下四个级别对项目组合进行分组来管理项目组合:用户情景 (或产品积压工作项或要求) 、功能、史诗和计划。

有关三个系统进程的概述,请参阅 “选择进程”。 有关三个流程模型的概述,请参阅 自定义工作跟踪体验

1.导出所需的文件

  1. 如果你不是Project集合管理员组的成员,请以管理员身份添加。 需要这些权限才能自定义项目。

  2. 获取所需的文件:

    • 对于 托管 XML导出要更新的进程。 将文件保存到用于更新这些文件和文件夹的文件夹:类别、ProcessConfiguration 和 WorkItemTypes。
    • 对于 本地 XML导出所需的定义文件:Epic、Categories 和 ProcessConfiguration。

2. 创建名为“计划”的工作项类型

创建工作项类型 (WIT) 的最简单方法是复制现有工作项,对其重命名并编辑它以支持你的需求。 在此示例中,我们将复制 Epic WIT 并将其标记为“计划”。

  1. Epic WIT 定义复制到标记为 Initiative的 XML 文件。 (Epic.xml 文件位于 ProcessTemplate 文件夹的 WorkItem 跟踪文件夹中。)
  2. 编辑名为 Initiative..
    1. 重命名 WIT。 替换为WORKITEMTYPE name="Epic"WORKITEMTYPE name="Initiative"并更新说明。
      <WORKITEMTYPE name="Initiative" >
         <DESCRIPTION>Initiatives help program managers to effectively manage and organize work across several teams >
         </DESCRIPTION>
      . . .
      </WORKITEMTYPE>
    2. 添加想要使用此 WIT 跟踪的任何自定义字段
    3. 重命名Tab命名FeaturesEpics和替换为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. 使用计划类别更新类别

现在,添加方案类别。 这将向过程配置方案积压工作 (backlog)。 敏捷体验将根据类别管理 WIT。

将计划类别添加到Categories.xml文件。 (Categories.xml 文件位于 WorkItem 跟踪文件夹中。)

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

你可以在定义文件中的任意位置添加此类别。 由于要添加自定义类别,请使用公司名称标记该类别。

4. 更新 ProcessConfiguration 以添加计划组合积压工作

在最后一个步骤中,将方案项目组合积压工作添加到过程中,并修改功能项目组合积压工作来反映方案和功能之间的层次结构。 过程配置将决定组合积压工作中的父-子关系。

  1. 编辑 ProcessConfiguration 文件,以在 PortfolioBacklogs 节中添加新的项目组合积压工作。 (ProcessConfiguration.xml 文件位于 ProcessTemplate folder.) 的 WorkItem Tracking/Process 文件夹中

    通过添加以下语法来添加方案类别。 替换名称、工作流状态值和默认列字段以与你使用的这些项匹配。

    <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>
    

    如果修改了工作流状态,请验证每个工作流状态是否映射到其中一个元状态ProposedInProgress,以及Complete。 工作流中的最后一个状态必须映射到 Complete

  2. PortfolioBacklog编辑 Epic 类别的元素以指向Initiative父积压工作。

    <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. 更新项目:

    • 对于 托管 XML:导入进程
    • 对于本地 XML:导入按以下顺序更新的定义文件
      a. Initiative.xml
      b. Categories.xml
      c. ProcessConfiguration.xml
  2. 打开或刷新 Web 门户,并确认“计划”显示为项目组合积压工作,如预期。 请参阅 组织积压工作

  3. 向需要练习项目组合积压工作的所有功能的用户授予 高级访问权限
    对于 托管 XML: 请参阅 向用户分配许可证

仅) (本地 TFS 导入和导出定义文件

如果要更新连接到本地 TFS 的项目,将使用 witadmin 命令导入和导出定义文件。 需要导出以下文件:

  • Epic.xml
  • Categories.xml (位于 WorkItem 跟踪文件夹)
  • ProcessConfiguration.xml (位于 WorkItem Tracking/Process 文件夹中)

提示

使用 witadmin,可以 导入和导出定义文件。 可以使用的其他工具包括进程编辑器 (要求已安装版本Visual Studio) 。 从Visual Studio市场安装进程模板编辑器

或者,可以使用 TFS 团队Project管理器(可从GitHub获取的开源客户端)。

提示

使用 witadmin,可以 导入和导出定义文件。 可以使用的其他工具包括进程编辑器 (要求已安装版本Visual Studio) 。 从Visual Studio市场安装 TFS 进程模板编辑器。 可以使用此版本的进程编辑器修改旧样式的工作项窗体。 不能使用它来编辑与 新 Web 窗体关联的表单

或者,可以使用 TFS 团队Project管理器(可从GitHub获取的开源客户端)。

  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"

我们刚刚演示了如何添加另一个项目组合积压工作级别。 最多可以添加五个项目组合积压工作。 这包括功能与史诗的默认积压工作。 从顶级组合积压工作 (backlog) 到任务,总共向你提供了七个级别。

Conceptual image of 5 levels of portfolio backlog

如果要将另一个 WIT 添加到积压工作或板,请参阅 积压工作项类型和板

若要详细了解定义文件或命令行工具的语法,请参阅以下主题:

否则,请参阅 “自定义工作跟踪体验 ”以访问可用的其他配置和自定义选项。

如果有其他问题,请参阅Team Foundation Server - 工作跟踪论坛。

项目组合积压工作层次结构

哪些控制项目组合积压工作之间的层次结构?

流程配置通过将父类别分配给项目组合积压工作类别来确定层次结构。 仅支持父-子关系。 层次结构中最多类别不包含父分配。

项目组合积压工作和 WIT 类别

是否可以在用于项目组合积压的类别中定义多个 WIT?

是的。 例如,可以将“目标”和“方案”WIT 添加到组合积压工作类别。 主要限制是不要将相同的 WIT 添加到两个不同的类别,这些类别分配给以下部分之一用于进程配置:或PortfolioBacklogRequirementBacklogTaskBacklog

积压工作项嵌套

除了使用项目组合积压工作外,还可以嵌套积压工作项吗?

虽然可以嵌套积压工作项,但我们不建议这样做。 不支持嵌套积压工作项的拖放链接。 相反,我们支持 将积压工作项映射到项目组合项

有关属于“要求类别”的分层链接项在积压工作和板上的显示方式的示例,请参阅 积压工作和板如何显示分层 (嵌套) 项