Azure DevOps Services
注意
使用 传递计划 来跟踪依赖项,而不是依赖项跟踪器。 依赖项跟踪器扩展不是 Azure Boards 支持的一项功能,并且没有产品团队支持它。 如果您在使用扩展时有任何疑问、建议或问题,请访问 Azure DevOps 市场的依赖项跟踪器扩展 页面。 依赖项跟踪器扩展仅适用于 Azure DevOps 服务。
依赖项跟踪器扩展有助于管理跨团队、项目和组织的依赖项。 它提供可筛选视图来显示团队消耗和生成的所有依赖项。 这些视图允许跟踪依赖项的状态和计划,以便评估依赖项对产品可交付结果的风险。
使用依赖项跟踪器可在迭代或发布开始时规划依赖项,并在开发期间跟踪状态。 对于任何给定的依赖项,都涉及以下各方:
- 使用者:需要并启动工作请求的功能团队。
- 生产者:致力于交付工作的功能团队。
每个工作请求和工作可交付结果都定义为一个工作项。 工作项按“后续项 + 前置项”链接类型或其他定向链接类型进行链接。 有关详细信息,请参阅 链接类型参考 “链接的生产与消费”。
提示
虽然任何工作项类型都可以参与依赖项跟踪,但你可能希望将依赖项限制为特定类型,例如功能、长篇故事、用户情景或错误。 可以通过 配置依赖项跟踪器来创建限制。
在依赖项跟踪器中,可以选择不同的视图和筛选器,向下钻取以了解具体细节。 以下部分介绍了这些视图和选项:
- 筛选器选项
- 向下钻取
- 使用依赖项
- 创建依赖项
- 时间线
- Risk Graph
建议的用法和关键术语
使用依赖项跟踪器可视化和跟踪以下工作项:
- 团队正在交付的工作的可交付结果的依赖项。
- 您团队对其他团队的依赖,用于团队正在进行的工作的交付。
- 其他团队对你们团队交付的工作的依赖性。
组织中的所有团队都可以参与跟踪依赖项。
注意
依赖项跟踪器不会替换同意完成这项工作所需的人员交互。 它提供了更易用的规划和跟踪功能。 各方应在将依赖项添加到依赖项跟踪器之前就依赖项达成一致。
关键术语
- 依赖项:团队 A 为了能够执行他们正在尝试的工作,需要团队 B 提供的工作支持。
-
使用者:要求完成工作的团队。
- 消费者拥有该工作的参与度和跟踪 - 由于这是其方案所需的工作,因此使用者需要提交、监视和跟踪工作的状态。
- 消费者负责将工作输入到 Azure Boards,然后将该工作请求提交给生产者。
- 消费者负责管理他们请求的工作,以便他们了解任何重大更改和调整。
-
制作人:正在做这项工作的团队。
- 将工作提交给制作人后,制作人将拥有该工作项。
- 生成者负责维护 Azure Boards 中的工作项。
- 生产者掌握工作项的状态和迭代。
- 一旦工作项移交,使用者不应更改这些值。
- 将工作提交给制作人后,制作人将拥有该工作项。
- 顺序编排:需要生产团队完成他们的工作,然后使用团队才能开始他们的工作。
先决条件
| 类别 | 要求 |
|---|---|
| 工具 | 为要跟踪依赖项的组织安装的依赖项跟踪器扩展。 |
| 权限 | - 若要查看依赖项:成为项目中 Project Valid Users 组的成员。 - 若要创建依赖项:参与依赖项链接的两个项目的 参与者 组的成员。 - 若要修改配置: 项目集合管理员 组的成员。 |
| 身份验证 | 所有组织都通过相同的 Microsoft Entra ID 对用户进行身份验证。 |
| Services | 已启用Azure Boards 服务。 |
| 配置和自定义任务 | - 设置区域路径和团队来参与依赖项跟踪。 - 为项目配置迭代路径/冲刺,并将其分配给参与依赖项跟踪的工作项。 此要求对于时间线视图生成有意义的数据至关重要。 - 根据需要自定义流程以支持任何其他工作项或字段。 - 依赖项跟踪器 配置为支持业务需求并满足任何自定义需求。 |
重要
依赖项跟踪器的默认配置支持敏捷流程。 如果项目基于其他进程或自定义了流程,则可能需要修改配置。 请参阅本文后面的 “配置依赖项跟踪器 ”。
打开依赖项跟踪器扩展
打开定义您团队的项目的 Web 门户。
选择 Boards>依赖项跟踪器。
从下拉菜单中选择与要查看其依赖项的团队对应的 区域 。
只能对那些为项目定义的区域路径进行筛选。
筛选选项
通过输入关键字或者使用一个或多个字段,筛选每个支持的视图。 提供的字段包括“状态”、“工作项类型”和“迭代路径”。 根据您输入的关键字,筛选器功能按照任何可见的列字段列出工作项。
若要显示筛选器工具栏,请选择
筛选器图标。
通过选择筛选器图标来打开和关闭筛选器。 若要查看更多筛选器,请使用筛选器列表末尾的箭头。
从每个字段的下拉菜单中选择一个或多个值。 使用以下值填充这些字段:
- 工作项类型:选择要查看的工作项类型的一个或多个复选框。 这些是配置为参与依赖项跟踪的工作项类型。 默认工作项类型包括:长篇故事、功能、用户情景和 bug。 若要修改配置,请参阅 依赖项跟踪器的配置。
- 状态:选择要查看的工作项状态的一个或多个复选框。 下拉列表包括为所选视图中显示的所有工作项类型定义的所有工作流状态。
- 迭代:选择要查看的迭代路径的一个或多个复选框。 下拉列表包括 为项目配置 的所有迭代路径,以及当前视图中列出了工作项。
- 优先级:选择要查看的优先级的一个或多个复选框。 分配给工作项的优先级值。
- 合作伙伴:为其定义工作项的合作伙伴组织。
筛选选项取决于为依赖项跟踪器定义的 配置 ,并对应于所选视图中满足筛选条件的工作项。 例如,如果没有任何工作项分配给冲刺 (sprint) 4,则“冲刺 (sprint) 4”选项不会显示在迭代路径的筛选器选项中。
可以在所选区域中删除依赖项,这将排除您团队内的依赖项。
查看向下钻取选项
多个视图通过向下钻取提供交互式可视化效果。 本文后面的选项卡式视图说明介绍了这些功能。
创建依赖项
依赖项表示一个团队依赖于另一个团队的工作。 两个团队都应在各自的区域路径中跟踪自己的工作。 通过链接依赖于其他团队的工作,可以可视化和跟踪依赖项。
选择 “新建依赖项”。
如果合作伙伴团队位于其他组织中,请选择 “合作伙伴帐户”。 可以通过配置依赖项跟踪器来启用或禁用合作伙伴帐户选项。
按 ID 搜索工作项,或输入工作项标题中包含的关键字。 在以下示例中,链接用户情景和 bug。
- 制作者是致力于交付工作的团队。
- 使用者是需要或依赖于工作的团队。
- 创建依赖项链接的最快方法是在搜索框中键入生成者和使用者工作项 ID,然后选择“保存”。
(可选)您可以选择新建来添加工作项,然后将它们互相链接为依赖项。 在以下示例中,将创建两个新功能并链接它们。
如果依赖关系的一部分没有工作项,可以根据需要创建一个新的工作项。
选择“保存”。 只有在选择要链接的两个工作项后,“ 保存 ”按钮才可用。
在“成功确认”对话框中,选择“ 查看依赖项”。
你链接的工作项会突出显示。
在以下示例中,Fabrikam Fiber/Service Delivery/Voice 团队依赖于 MyFirstProject 团队来交付其
User Story 706: Cancel order form完成Bug 390: Cancel order form。
手动创建链接
还可以使用“ 链接 ”选项卡链接工作项来创建后续链接和前置链接。 前导任务是工作项的生成者,或者是必须首先显示的项。 后续者是工作项的接受者,或依赖于第一项的项目。
注意
后继和前驱链接类型(消耗和产生)是依赖项跟踪器使用的默认链接类型。 如果使用托管 XML 进程模型自定义项目,则可以在依赖项跟踪器配置中指定不同的链接类型。 有关详细信息,请参阅本文后面的 “配置依赖项跟踪器 ”,以及 链接用户情景、问题、bug 和其他工作项。
删除依赖项链接
可以通过从链接的工作项中选择
作图标,并从菜单中选择 “删除依赖项链接 ”选项来删除依赖项。
(可选)可以从工作项的 “链接 ”选项卡中删除链接。
创建依赖项的查询
若要打开一组依赖的工作项,请通过 批量编辑以相同的方式选择它们。
从其中一个选定的链接工作项中选择操作图标,然后从菜单中选择“在查询中打开”。
此时会打开一个新选项卡,显示“查询结果”页。
还可以通过选择 “工作项”和“直接链接 ”查询类型并选择任何工作项类型来创建自定义查询。
选择 “复制到 HTML ”,将所选工作项作为格式化表复制到剪贴板。
依赖项消耗视图
“ 使用依赖项 ”视图显示团队依赖于其他团队或区域路径的工作。
条形图上的每一列都表示另一个区域路径,该路径通过所选 区域视图的工作流状态生成依赖项。 该表显示了唯一的依赖项的数量。 它还列出了参与跟踪的依赖项的筛选视图的所有工作项。
在该表中,可以完成以下操作。
- 通过选择条形图图中的区域路径条和进度状态之一来筛选工作项列表。
- 展开或折叠工作项列表,使用
展开和
折叠图标显示依赖工作项的完整列表。 - 通过打开 “列选项”添加或删除列字段。
- 通过选择显示:消费者在顶部或生产者在顶部,调整工作项序列。
生成依赖项视图
“ 生成依赖项 ”视图显示其他团队或区域路径依赖于所选区域的工作。
条形图上的每一列都表示另一个区域路径,该路径按所选 区域视图的工作流状态使用依赖项。 该表显示了唯一的依赖项的数量,并列出了跟踪依赖项的筛选视图中包括的所有工作项。
在该表中,您可以完成与“Consuming Dependencies”视图中相同的操作。
“时间线”选项卡
“ 时间线 ”选项卡提供依赖项的日历视图。 时间线视图处于 beta 阶段。
重要
要使时间线显示有意义的数据,请将依赖的工作项分配给迭代路径,并将开始日期和结束日期分配给这些迭代路径。
时间线视图有两个版本: 正确的流 和 不正确的流。 每个版本都显示颜色编码的工作流状态。 可以在 依赖项跟踪器配置中自定义颜色代码。
“正确流”视图
“正确流”视图显示按正确顺序排列的依赖项。 后续工作项在前置工作项之后完成。
“错误流”视图
“错误流”视图显示不符合顺序的依赖项。 至少有一个前置工作项是在其后续工作项完成后才完成的。
风险图
Risk Graph 提供从使用者团队到生成者团队或从生成者到使用者之间的依赖关系的可视化效果。 该图让团队可一目了然地了解依赖项的数量和关联的风险级别。 此外,风险图视图还展示了链接依赖项并将其阶梯式上升到情景的值。
有两个视图:从中消耗 和 生成供给。 可以配置工作流状态颜色编码。 线条的宽度指示该区域中存在多少个依赖项。 链接越厚,依赖项越多,图例中所示。
使用来源
生成对象
根据特定依赖项进行筛选
可以通过选择其中一个依赖项向下钻取到特定内容。
配置依赖项跟踪器
若要修改配置,请成为项目集合管理员组的成员。 对配置所做的所有更改都会应用于组织中定义的所有项目。
若要更改配置,请选择
齿轮图标并修改列出的语法。 完成后,请选择保存。
可以修改的主要属性汇总如下:
- 用于创建依赖项链接的链接类型。 默认值为后续任务/前导任务链接类型。 仅在使用 托管 XML 进程模型 自定义工作跟踪时进行自定义。
- 工作项和工作项类型
- 参与依赖项跟踪的工作项类型
- 工作项类别状态到颜色的映射
- 工作项工作流状态和颜色的映射
- 依赖项列表中的默认字段列
- 默认筛选器选择:
- 选定的依赖项工作项类型
- 选定的迭代路径
- 已启用选项:
- 时间线
- 新依赖关系链接
- 跨帐户(组织)依赖项
- 跨帐户依赖项切换默认状态
- 风险图配置:
- 与有风险(红色)工作项关联的工作项状态
- 与中性(灰色)工作项关联的工作项状态
- 与正常进行(绿色)的工作项关联的工作项状态
有关完整列表和说明,请参阅本节后面的 属性说明 。
启用或禁用“新建依赖项”选项
该 newDependencyButtonEnabled 属性启用或禁用 “新建依赖项 ”链接选项。 启用后,链接将显示在依赖项跟踪器页上。 禁用后,用户无法从跟踪器创建依赖项,他们只能查看通过其他方式创建的依赖项。 默认值为 true (已启用)。
启用或禁用跨组织链接
该 crossAccountConfigs 属性启用或禁用“新建依赖项”对话框中的跨组织依赖项链接。 默认值为 true (已启用)。
若要禁用它,请在 JSON 配置中将以下语法设置为 false。
{
"crossAccountConfigs": {
"crossAccountDependencyEnabled": false,
"crossAccountDependencyToggleDefaultState": false, //default state for cross account toggle
"crossAccountDependencyToggleOnText": "Cross-account dependencies on",
"crossAccountDependencyToggleOffText": "Cross-account dependencies off"}
}
跨帐户链接需要使用特殊链接类型,并且你应仅将其与 “新建依赖项 ”选项协调使用。
属性说明
下表描述了配置文件中指定的每个属性项。
属性/说明
默认/示例
consumesLinkName
指定用于创建从生成者到使用者的链接的链接类型。
System.LinkTypes.Dependency-Reverse
producesLinkName
指定用于创建从使用者到生成者的链接的链接类型。
System.LinkTypes.Dependency-Forward
queryFields
指定自定义字段以替代依赖项跟踪器用于返回链接工作项结果的系统字段。 默认情况下,系统引用名称用于返回以下字段的值:
areaPath- 区域路径assignedTo- 分配给id-Idareapath- IterationIDareapath- 迭代路径areapath-优先areapath-状态areapath-标签teamProject- 团队项目title-标题workItemType- 工作项类型
如果使用自定义字段代替系统字段之一,请输入替换:
{
title: "Custom.Title",
assignedTo: "Custom.AssignedTo"
}
dependencyWorkItemTypes
指定参与依赖项跟踪的工作项类型。 在“创建依赖项”对话框中,只能创建列出的工作项类型。
默认值:
[
"Epic",
"Feature",
"User Story",
"Bug"
]
如果使用 Scrum 过程,请将条目更改为:
[
"Epic",
"Feature",
"Product Backlog Item",
"Bug"
]
selectedDependencyWorkItemTypes
将初始焦点限制为依赖跟踪器显示或列出的那些工作项类型。 根据默认的“Any”,将显示或列出包含依赖项链接类型的任何工作项类型。 用户可以通过筛选来更改焦点。
默认值:
Any
若要将工作项类型限制为仅长篇故事和功能,请指定:
[
"Epic",
"Feature"
]
selectedReleases
将初始焦点限制为分配给等于或低于指定版本的那些迭代路径的工作项。 基于空白默认值,不应用任何限制。 用户可以通过筛选来更改焦点。
默认值:
[]
若要将 Fabrikam 项目的工作项类型限制为版本 1 和版本 2,请指定:
[
"Fabrikam/Release 1",
"Fabrikam/Release 2",
]
workItemCategoriesAndColors
根据工作项的类别和工作流状态,指定用于表示工作项的颜色。 有关详细信息,请参阅如何在积压工作和面板中使用工作流状态和状态类别。
默认值:
{
"Proposed": {
"displayName": "Proposed",
"color": "#a6a6a6"
},
"InProgress": {
"displayName": "In Progress",
"color": "#00bcf2"
},
"Completed": {
"displayName": "Completed",
"color": "#9ac70b"
},
"Removed": {
"displayName": "Removed",
"color": "#d9242c"
},
"Resolved": {
"displayName": "Resolved",
"color": "#ff9d00"
}
}
工作项显示状态和显示颜色
将工作流状态映射到用于显示工作流的颜色。 如果自定义工作流状态,或使用的流程用了不同的工作流状态,必须更新此属性。
默认值:
{
"New": {
"textColor": "rgb(112, 112, 112)",
"chartColor": "rgb(112, 112, 112)",
"states": [
"New"
]
},
"Active": {
"textColor": "rgb(0, 122, 204)",
"chartColor": "rgb(0, 122, 204)",
"states": [
"Active",
"Resolved"
]
},
"Closed": {
"textColor": "rgb(16, 124, 16)",
"chartColor": "rgb(16, 124, 16)",
"states": [
"Closed"
]
},
"Removed": {
"textColor": "rgb(204, 41, 61)",
"chartColor": "rgb(204, 41, 61)",
"states": [
"Removed"
]
},
"Other": {
"textColor": "rgb(178, 178, 178)",
"chartColor": "rgb(178, 178, 178)",
"states": []
}
}
风险评估值
指定 Risk 字段值。 “风险”字段指定对成功完成用户情景的相对不确定性的主观分级。 它为敏捷流程定义,但你可以将其添加到其他进程中使用的工作项类型。
默认值:
["1-High", "2-Medium", "3-Low"]
partnerAccounts
可选配置,用于指定创建跨帐户依赖项时,可从“依赖项”对话框中选择哪些Azure DevOps组织。 如果未指定此配置,对话框将基于你访问的先前组织生成列表。
默认值:
[]
示例:
["account-1", "account-2"]
timelineEnabled
启用或禁用“时间线”视图。
默认值:
true
newDependencyButtonEnabled
启用或禁用 “新建依赖项 ”链接以创建新的链接依赖项。
默认值:
true
crossAccountConfigs
(1)启用或禁用支持在其他合作伙伴帐户中创建新的工作项依赖关系,以及(2)在“创建依赖关系”对话框中指定合作伙伴帐户选项的默认状态。
默认值:
{
"crossAccountDependencyEnabled": true,
"crossAccountDependencyToggleDefaultState": false
}
如果不想创建属于其他组织的依赖项,请将此配置更改为:
{
"crossAccountDependencyEnabled": false,
"crossAccountDependencyToggleDefaultState": false
}
priorityValues
指定 Priority 字段值。 “优先级”字段指定对与业务相关的 bug、问题、任务或用户情景的主观分级。 大多数积压工作项类型和进程定义此字段,但你可以将其添加到其他进程中使用的工作项类型。
默认值:
["0","1","2","3","4","(blank)"]
defaultColumns
指定用于显示依赖项列表的字段列和顺序。
默认值:
[
"Id",
"Area Path",
"Dependency Title",
"State",
"Consumers",
"Producers"
]
riskAnalysisEnabled
指定是否启用风险功能。 如果设置为 true,则必须定义 riskAssessmentValues 属性。
默认值:
False
风险评估值
默认值:
[]
riskGraphConfig
将工作流状态映射到图形上显示的三个“风险”区域之一:
atRisk“红色”、“neutral灰色”和onTrack“绿色”。
默认值:8
{
"atRisk": [
"Removed"
],
"neutral": [
"New"
],
"onTrack": [
"Active",
"Resolved",
"Closed",
"Other"
]
}
添加或删除参与依赖项跟踪的工作项类型中使用的工作流状态。
iterationDepth
指定依赖项跟踪器查询以生成“时间线”视图的迭代路径的分层深度。
默认值:8A 深度 3 对应于:Fabrikam/Release 1/Sprint 20。
默认配置语法
{
"consumesLinkName": "System.LinkTypes.Dependency-Reverse",
"producesLinkName": "System.LinkTypes.Dependency-Forward",
"queryFields": {},
"dependencyWorkItemTypes": [
"Epic",
"Feature",
"User Story",
"Bug"
],
"selectedDependencyWorkItemTypes": "Any",
"selectedReleases": "",
"workItemCategoriesAndColors": {
"Proposed": {
"displayName": "Proposed",
"color": "#a6a6a6"
},
"InProgress": {
"displayName": "In Progress",
"color": "#00bcf2"
},
"Completed": {
"displayName": "Completed",
"color": "#9ac70b"
},
"Removed": {
"displayName": "Removed",
"color": "#d9242c"
},
"Resolved": {
"displayName": "Resolved",
"color": "#ff9d00"
}
},
"workItemDislayStatesAndDisplayColors": {
"New": {
"textColor": "rgb(112, 112, 112)",
"chartColor": "rgb(112, 112, 112)",
"states": [
"New"
]
},
"Active": {
"textColor": "rgb(0, 122, 204)",
"chartColor": "rgb(0, 122, 204)",
"states": [
"Active",
"Resolved"
]
},
"Closed": {
"textColor": "rgb(16, 124, 16)",
"chartColor": "rgb(16, 124, 16)",
"states": [
"Closed"
]
},
"Removed": {
"textColor": "rgb(204, 41, 61)",
"chartColor": "rgb(204, 41, 61)",
"states": [
"Removed"
]
},
"Other": {
"textColor": "rgb(178, 178, 178)",
"chartColor": "rgb(178, 178, 178)",
"states": []
}
},
"riskAssessmentValues": [],
"releases": [],
"partnerAccounts": [],
"timelineEnabled": true,
"newDependencyButtonEnabled": true,
"crossAccountConfigs": {
"crossAccountDependencyEnabled": true,
"crossAccountDependencyToggleDefaultState": false
},
"priorityValues": [
"0",
"1",
"2",
"3",
"4",
"(blank)"
],
"defaultColumns": [
"Id",
"Area Path",
"Dependency Title",
"State",
"Consumers",
"Producers"
],
"riskGraphConfig": {
"atRisk": [
"Removed"
],
"neutral": [
"New"
],
"onTrack": [
"Active",
"Resolved",
"Closed",
"Other"
]
},
"iterationDepth": 8
}