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

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

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

重要

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

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

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

注意

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

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

注意

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

已启用三个项目组合积压的视图

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

过程概述

添加另一个项目组合积压工作的过程略有不同,具体取决于所使用的 流程模型

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

本文将指导你完成在以下五个步骤中基于 敏捷流程 将项目组合积压工作添加到项目:

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

如果基于 ScrumCMMI 过程处理项目,则可以应用相同的步骤。 完成后,可以通过将工作分组到以下四个级别来管理项目组合:用户案例 (或产品积压工作项或要求) 、功能、长篇故事和计划。

有关更多详细信息,请参阅 关于流程和流程模板。 有关三个流程模型的概述,请参阅 自定义工作跟踪体验

1. 导出所需的文件

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

  2. 获取所需的文件:

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

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

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

    - 将“Epic”WIT 定义复制到标记为“计划”的 XML 文件。 (Epic.xml文件位于 ProcessTemplate 文件夹的 WorkItem 跟踪文件夹中。
    • 编辑名为 的文件 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. 将类别更新为计划类别

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

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

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

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

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

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

  1. 编辑 ProcessConfiguration 文件以在 PortfolioBacklogs 节中添加新的项目组合积压工作。 (ProcessConfiguration.xml 文件位于 ProcessTemplate 文件夹的 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>
    

    如果已修改工作流状态,请验证每个工作流状态是否映射到 、 InProgressComplete的元状态之Proposed一。 工作流中的最后一个状态必须映射到 Complete

  2. PortfolioBacklog编辑 Epic Category 的元素,以指向 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 Tracking 文件夹)
  • ProcessConfiguration.xml (位于 WorkItem Tracking/Process 文件夹)

提示

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

  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) 到任务,总共向你提供了七个级别。

组合积压工作的 5 个级别的概念图

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

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

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

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

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

什么控制着项目组合积压工作之间的层次结构?

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

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

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

是的。 例如,可以将“目标”和“方案”WIT 添加到组合积压工作类别。 main限制是不要将相同的 WIT 添加到分配给以下部分之一的两个PortfolioBacklog不同类别:、 RequirementBacklogTaskBacklog

嵌套积压工作项

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

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

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