配置 Azure Boards 以支持 SAFe® 计划和项目组合

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

本教程将指导你完成将具有单个团队的新项目转换为一个配置为支持 Scaled Agile Framework (SAFe®) 计划和项目组合的项目的步骤。 具体而言,你将了解如何通过完成以下任务来配置 Azure Boards 以支持 SAFe® 计划和项目组合:

  • 定义敏捷、计划和项目组合团队
  • 配置区域路径的层次结构以支持团队
  • 定义迭代路径以支持 SAFe® 发布训练、PI、冲刺 (sprint) 和 IP
  • 配置每个团队以支持 SAFe®

你需要是项目管理员组的成员才能进行这些配置。

完成这些核心配置后,可以考虑自定义项目以支持特定的业务需求。 自定义选项在自定义 Azure Boards 以支持 SAFe® 中进行了介绍。

提示

如果你计划添加自定义工作项类型、组合积压工作或工作流;你可能想要先进行这些自定义,然后定义和配置你的团队。

如果你是 Azure Boards 新手,建议在添加和配置团队之前,查看关于团队和敏捷工具关于区域和迭代(冲刺 (sprint))路径。 此外,两篇有关团队结构和敏捷文化的出色文章是使用 DevOps 规划高效工作负载简介构建高效、以客户为中心的团队

注意

本文是适用于 Azure Boards 和 Azure DevOps Services 的一系列 Scaled Agile Framework® 教程中的其中一个。 大多数指南同时适用于云版本和本地版本。 但是,某些功能和过程特定于云版本或最新版本的 Azure DevOps Server。

了解团队层次结构

在本文中,我们将从一个项目和一个团队(两者都名为“Fabrikam”)开始,一直到以下九个团队。

团队,列表

注意

Azure Boards 不支持团队的层次结构。 但是,通过配置本文中所述的区域路径,可以有效地创建一种类型的团队层次结构。 层次结构是通过区域路径的结构定义的。

然后,我们将配置以下层次结构的区域路径,并配置每个团队的区域路径。 此配置支持每个团队的积压工作 (backlog) 视图和层次结构中的视图汇总。

区域路径和团队配置

提示

如果需要添加大量团队、区域路径和迭代,可能需要使用命令行或编程工具。 请参阅本文后面提供的命令行和编程工具

所有团队可以都管理他们自己的工作负载和优先级,同时清楚地了解其工作如何支持项目组合团队的积压工作 (backlog) 中管理的这些长篇故事。 同时,项目组合团队可以监控其自己的看板上的积压工作 (backlog) 的进度、在其积压工作 (backlog) 中安排项的优先级和查看跨版本培训的进度。

虽然上述内容可能听起来很复杂,但它实际上只需要很少的配置就可以设置好团队并开始工作。 若要从一个项目开始使用一个默认团队,请先定义每个团队,同时自动为该团队创建默认区域路径。 然后,将扁平区域路径集重新配置为分层结构。 接下来,定义迭代路径以支持所需的发布结构以及要使用的项目和 Agile 团队。 最后,配置每个团队并填充团队的成员身份。

定义团队

首先,我们将添加每个团队,为每个团队创建默认区域路径。 在本文的后面部分,我们会将这些区域路径配置到必要的层次结构中。 此结构将以下 SAFe® 团队映射到 Azure Boards 团队:

  • 项目组合团队 -> 默认顶级团队,Fabrikam 团队(已经定义)
  • 项目团队 -> 辅助级团队,Fiber 套件和服务套件
  • 敏捷团队 -> Fiber 套件和服务套件下定义的第三级团队。

你需要是项目管理员才能完成这些步骤。 如果你需要更详细的指南,请参阅项目组合管理

逐个添加每个团队。

注意

以下过程使用预览版的“新建团队页面”用户界面。 若要启用此功能,请参阅管理或启用功能

  1. 在 Web 门户中,选择“项目设置”并打开“团队”。

    打开“项目设置”,然后打开“团队”

  2. 选择“新建团队”。

    创建具有其自己的区域路径的子团队

  3. 为团队提供一个名称,并选择性地提供说明。

    在这里,我们添加 App 团队。 选择团队管理员,并确保选中“使用团队名称创建区域路径”复选框。 (可选)添加团队成员。

    添加 App 团队。

    将团队的 Scrum Master、计划经理或项目组合经理指派为团队管理员。 作为团队管理员,他们可以配置团队的工具,以支持其敏捷做法和业务需求。

  4. 重复步骤 2 和 3 以定义所有团队。

  5. 可选。 如果你有两个或更多项目组合团队,请为每个项目组合团队创建一个团队。

配置区域路径

为了支持团队层次结构,你现在需要将在定义团队的第一步中创建的区域路径配置到层次结构中。

  1. 在“项目设置”页中,选择“项目配置”,然后选择“区域”。 应会看到区域路径的简单列表。

    区域路径的简单列表

  2. 你需要在顶部“区域路径”下选择每个功能团队的区域路径,并将其移动到它所属的区域路径层次结构下。

    可以将每个区域路径拖放到其所属的父节点下。 例如,在这里,我们将 Migrate 节点拖动到 Fiber Suite 节点。

    区域路径,拖放到父节点

    相反,可以打开“区域路径”的上下文菜单,选择“编辑”,然后选择要将它移动到的节点。

  3. 对剩余的敏捷团队区域路径重复步骤 2 和 3。

    如果已定义两个或更多项目组合团队,则需要更改将每个计划团队的区域路径移到其相应的项目组合团队的区域路径下。

  4. 完成后,区域路径结构应如下图所示。

    重要

    此结构显示区域路径归敏捷团队、计划团队和项目组合团队所有。 如果我们将每个团队配置为其区域路径的唯一所有者,我们将在本文稍后更正此结构。

    分层区域路径

定义迭代路径

若要跟踪版本的进度,请创建您的迭代路径结构。 与区域路径不同,多个团队可以共享相同的迭代路径结构。 共享迭代结构可以让多个团队以相同的冲刺 (sprint) 节奏、向着相同的发布训练工作。

重要

删除、重命名或移动迭代路径会导致关联的历史数据丢失。

如果您的默认团队已经有迭代,您可以重命名它们。 你需要创建迭代结构支持整个团队结构,而不只是一个团队。

  1. 在“项目设置”页中,选择“项目配置”,然后选择“迭代”。

  2. 在与项目同名的默认迭代下,创建一个表示第一个项目增量 (PI) 的子迭代。 (可选)为 PI 添加开始和结束日期,但请记住,迭代会进一步分解为冲刺。

    创建子迭代。

  3. 接下来,为 PI 内的每个冲刺 (sprint) 创建子迭代。 设置这些冲刺 (sprint) 的日期,使其相对应于敏捷团队的节奏。

    迭代页,创建 IP 冲刺 (sprint) 迭代

  4. 继续根据需要添加任意数量的迭代,以满足所有团队的时间框节奏结构。

    完成后,应具有类似于下图的结构。

    “迭代”页,迭代列表

    提示

    可以拖放“迭代路径”来构建迭代,类似于“配置区域路径”下的步骤 2 所示。 Azure Boards 始终按每个父节点下的日期顺序列出迭代路径。

配置团队

现在已定义团队、区域路径和迭代路径,下一步是配置每个团队。 你需要为每个团队配置以下设置。

  • 活动积压工作 (backlog)
  • 处理 bug
  • 设置默认迭代路径
  • 选择团队迭代路径

下表列出了要基于团队级别进行的建议设置。


配置

敏捷功能团队

计划类型

项目组合团队

积压工作 (backlog) 导航级别

功能、情景

功能、情景

长篇故事

处理 bug

bug 是按要求管理的

bug 未在积压工作 (backlog) 和版块上进行管理

bug 未在积压工作 (backlog) 和版块上进行管理

默认迭代

@CurrentIteration

@CurrentIteration

@CurrentIteration

积压工作 (backlog) 迭代

Fabrikam

Fabrikam

Fabrikam

所选迭代

冲刺 (sprint) 1 到冲刺 (sprint) 4,IP 冲刺 (sprint)

PI 1、PI 2、PI 3

Areas

包括子区域

排除子区域

排除子区域


注意

通过将“默认迭代”设置为“@CurrentIteration”,根据当前日期将从团队的积压工作 (backlog) 或版块中创建的所有工作项分配给当前迭代。 通过将积压工作 (backlog) 迭代设置为根目录 Fabrikam,指示只有区域路径充当工作项的筛选器,以便显示在团队积压工作和版块上。

  1. 在“项目设置”页中,选择“团队配置”。

    从“团队”选择器中选择要配置的团队。

    团队配置文件,选择“迭代”和“区域”链接

  2. 在“常规”页上,取消选中不希望处于活动状态的积压工作 (backlog)。

    例如,对于项目组合团队,仅选中“长篇故事”复选框。

    团队配置、常规、积压工作 (backlog) 导航级别、仅长篇故事

    对于计划团队和敏捷团队,请取消选中“长篇故事”复选框。

    团队配置、常规、积压工作 (backlog) 导航级别、功能和情景

  3. 对于计划和项目组合团队,请选择“处理 bug”单选按钮,如下所示。

    团队配置、常规、处理 bug、不跟踪

    此外,对于敏捷团队,请选择“处理 bug”选项来跟踪 bug 以及要求。

    敏捷团队配置、常规、处理 bug、不跟踪

  4. 选择“迭代”选项卡以配置团队的迭代。

    对于敏捷团队,按如下所示配置设置。

    团队配置、迭代、选择冲刺 (sprint)

    对于计划团队,仅选择 PI 迭代。

    团队配置、迭代、选择 PI

  5. 对于计划团队和项目组合团队,请选择“区域”选项卡,将默认设置从“包括子区域”更改为“排除子区域”。

    打开 上下文菜单,然后选择“排除子区域”。

    团队配置、区域、排除子区域

    注意

    由于我们创建了每个团队,并选中了“使用团队名称创建区域路径”,因此每个团队都已经使用其默认区域路径进行了预配置。 此区域路径充当每个团队的积压工作 (backlog) 和版块上显示的工作项的主筛选器。

  6. 根据需要对需要配置的每个团队重复步骤 2 至步骤 5。

  7. 为所有团队完成步骤 5 后,验证区域路径-团队结构。 选择“项目配置”和“区域”。 区域路径和团队结构现在应如下所示,其中每个团队拥有自己的区域路径,并且不与其他任何团队共享。

    项目配置、区域

配置团队以支持共享服务

对于支持其他多个团队(如 UX Design 团队)的团队,请按照以下步骤中所述配置团队。

  1. 为每个共享服务团队添加一个团队。 有关详细信息,请参阅定义团队

  2. 返回到“项目配置”>“区域路径”页,并在每个共享服务区域路径下,为共享服务支持的每个敏捷团队添加子区域路径。 有关详细信息,请参阅本文前面提供的配置区域路径

    例如,此处我们在 UX Design 区域路径下添加四个子区域路径,每个子区域路径对应于 UX Design 团队支持的每个敏捷团队。

    共享服务子区域路径

  3. 按照配置团队中所述,将每个共享服务团队配置为敏捷功能团队。

  4. 对于每个敏捷团队,打开“团队配置”>“区域”页,如配置团队的步骤 5 所示。 选择“选择区域”并为相应的团队添加子区域路径。

    在这里,我们将 UX Design\App 子区域路径添加到 App 功能团队。

    预算估算汇总

  5. 返回到“项目配置”>“区域路径”页,并验证每个共享服务区域路径的“区域路径”结构是否按预期显示。

    对于 UX Design 团队,结构应如下所示。

    共享服务区域路径和团队结构

    显示在共享区域路径上的工作项会显示在关联团队的积压工作 (backlog) 和版块上。

命令行和编程工具

可以使用 Azure DevOps 命令行工具添加或更新以下项目:

使用编程工具

可以使用 Azure DevOps REST API 添加或更新以下项目:

后续步骤