通过


添加项目组合积压项层级

Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022

你的项目包括两个项目组合积压工作:功能和史诗。 如果需要更多项目组合积压工作,可以添加它们。

重要

本文适用于托管 XML 和本地 XML 进程模型的项目自定义。 有关继承过程模型,请参阅 为流程自定义待办事项或看板

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

使用项目组合待办事项在业务项目下组织待办清单。 将 积压工作组织到项目组合中时,可获取在较低级别积压工作中定义的工作的分层视图,包括多个团队正在进行的工作。 项目经理可以跟踪感兴趣的积压项目的状态,并深入分析以确保所有工作都有所体现。

注意

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

本示例添加了第三个项目组合积压工作——计划。 通过使用它,管理团队可以设置优先级并查看属于计划的工作进度。

注意

Web 门户中的映像可能与本文中的图像不同。 这些差异是由于对项目进行的更新以及创建项目时使用的过程模板(敏捷ScrumCMMI)造成的。 除非明确提及,否则基本功能保持不变。

已启用三个项目组合积压工作屏幕截图。

最多可以添加五个项目组合积压,包括默认的特性和史诗积压。 总共,此结构提供从顶级项目组合积压工作到任务的七个级别。 每个团队都可以 选择要处理哪些积压工作

项目组合积压工作五个级别的示意图。

若要将另一种工作项类型添加到待办事项或看板,请参阅 向积压工作项和板添加工作项类型

过程概述

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

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

本文将指导你通过以下五个步骤在项目中基于 敏捷流程 添加项目组合待办事项:

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

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

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

1. 导出所需的文件

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

  2. 获取所需的文件:

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

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

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

  1. Epic WIT 定义复制到标记的 InitiativeXML 文件。 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>
      

      此更改会导致选项卡控件以独占方式显示或链接到作为倡议子工作项的史诗。

使用"倡议类别"更新类别

添加倡议类别。 此类别将项目待办事项添加到流程配置。 敏捷体验将根据类别管理 WIT。

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

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

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

  2. 修改 Epic Category 的PortfolioBacklog元素,设置为指向Initiative作为父待办事项。

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

    中间组合积压工作需要指定父类别,必须将其配置为组合积压工作。

  3. 将“用于 Initiative 的颜色”添加到 WorkItemColors 部分。

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

    这将分配一个亮粉色作为列表中显示的主要颜色,并分配一个较浅的粉色作为次要颜色(目前未使用)。

5. 更新项目并验证对新项目组合积压工作的访问权限

  1. 更新项目:

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

  3. 向需要使用产品组合待办事项的所有功能的用户授予 高级访问权限 。 对于 托管 XML: 请参阅 向用户分配许可证

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

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

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

提示

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

  1. 根据 witAdmin:自定义和管理用于跟踪工作的对象中提供的说明打开命令提示符窗口。 例如:

输入 witadmin 命令,用您的数据替换所示的参数。 例如,若要导入 WIT,

witadmin

对于 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"

常见问题

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

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

问:我可以在用于项目组合待办工作类别中定义多个工作项类型(WIT)吗?

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

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

答:虽然可以嵌套积压工作项,但不建议嵌套。 不支持将嵌套积压工作项拖放链接。 而是使用 将积压工作项映射到项目组合项

有关属于“需求类别”的分层链接项如何显示在待办事项列表和看板上的示例,请参阅 待办事项列表和看板如何显示分层(嵌套)项