将工作项类型添加到积压工作和板
Azure DevOps Services |Azure DevOps Server 2022 - Azure DevOps Server 2019 |TFS 2018
重要
本文适用于托管 XML 和本地 XML 进程模型的项目自定义。 有关继承进程模型,请参阅 自定义流程的积压工作或板。 有关流程模型的概述,请参阅 自定义工作跟踪体验。
为了满足选择的业务流程,你的团队可能需要跟踪其他工作项类型, (WIT) 作为要求或任务。 这样,你可以添加它们,并在产品和冲刺积压工作或看板和任务板中跟踪它们。
例如,你可能希望根据目标客户跟踪不同类型的要求,或者根据源跟踪不同类型的 bug。 在这里,Fabrikam Fiber 团队添加了服务应用 WIT 来跟踪支持其客户服务团队的工作。
提示
如果只想向积压工作和版块添加 bug,请参阅 在积压工作和版块上显示 bug 以做出团队的选择。 如果要添加另一个 WIT 和项目组合积压工作,请参阅 添加项目组合积压工作级别。
若要添加 WIT 以要求、任务或 bug 的形式进行跟踪,请执行相应的步骤:
注意
建议将 WIT 添加到以下类别之一,并且只添加到以下类别之一:“要求类别”、“任务类别”或“Bug 类别”。 系统会阻止你向“要求类别”和“任务类别”添加相同的 WIT。 添加到 Bug 类别的 WIT 将遵循 为团队设置的 bug 行为。
自定义序列
托管 XML 进程模型自定义序列
注意
如果通过导入/导出定义文件来自定义过程,请使用以下指南。 否则,如果通过管理 UI 自定义进程,请参阅 添加或修改进程的自定义工作项类型。
你将对进程定义文件进行更改,然后导入该过程以更新现有项目或使用该过程创建项目。
本地 XML 进程模型自定义序列
首先导出工作跟踪定义文件,对其进行更新,然后将其导入到项目中。
- 如果你不是项目管理员或项目集合管理员组的成员, 请添加 。
- 更新项目以 启用最新功能
- 从项目导出以下对象:
- 要添加到积压工作和板 (的 WIT(如果尚未创建), 请立即执行此操作)
- ProcessConfiguration
- 如果你不熟悉自定义工作跟踪对象,请熟悉以下资源:
添加 WIT 以像要求一样跟踪它
添加到要求类别的 WIT 显示在产品积压工作和看板中。 必须确保 WIT 定义包含支持敏捷规划工具的必填字段。
将进程 (托管 XML) 或定义文件导出 (本地 XML) ,如 “第一步”中所述。
编辑 WIT 定义以支持规划工具。
用于添加或更新的自定义/语法
Stack Rank 字段 (Agile、CMMI)
<FIELD name="Stack Rank" refname="Microsoft.VSTS.Common.StackRank" type="Double" reportable="dimension"> <HELPTEXT>Work first on items with lower-valued stack rank. Set in triage. </HELPTEXT> </FIELD>
积压工作优先级 字段 (Scrum)
<FIELD name="Backlog Priority" refname="Microsoft.VSTS.Common.BacklogPriority" type="Double" reportable="detail" />
“值区域” 字段
<FIELD name="Value Area" refname="Microsoft.VSTS.Common.ValueArea" type="String"> <REQUIRED /> <ALLOWEDVALUES> <LISTITEM value="Architectural" /> <LISTITEM value="Business"/> </ALLOWEDVALUES> <DEFAULT from="value" value="Business" /> <HELPTEXT>Business = delivers value to a user or another system; Architectural = work to support other stories or components </HELPTEXT> </FIELD>
CMMI) (“要求类型”字段
<FIELD name="Requirement Type" refname="Microsoft.VSTS.CMMI.RequirementType" type="String" reportable="dimension"> <REQUIRED /> <ALLOWEDVALUES> <LISTITEM value="Scenario" /> <LISTITEM value="Quality of Service" /> <LISTITEM value="Functional" /> <LISTITEM value="Operational" /> <LISTITEM value="Interface" /> <LISTITEM value="Security" /> <LISTITEM value="Safety" /> <LISTITEM value="Business Objective" /> <LISTITEM value="Feature" /> </ALLOWEDVALUES> <DEFAULT from="value" value="Functional" /> </FIELD>
WORKFLOW
节 更新或验证节,WORKFLOW
如下所示:- Agile、User Story:添加从
Active
到Removed
和Resolved
到Removed
的转换;删除在 state= 时填充Activated By
和Activated Date
字段的规则Resolved
- Scrum、产品积压工作项:添加从
Committed
到 的转换Removed
如果已自定义 ,WORKFLOW
请确保在 ProcessConfiguration 部分中定义所需的状态到 metastateRequirementBacklog
映射。
FORM
节 添加或验证以下字段是否已添加到FORM
节:- 敏捷:
<Control FieldName="Microsoft.VSTS.Scheduling.StoryPoints" Type="FieldControl" Label="Story Points" LabelPosition="Left" /> <Control FieldName="Microsoft.VSTS.Common.ValueArea" Type="FieldControl" Label="Value area" LabelPosition="Left" />
- Cmmi:
<Control Type="FieldControl" FieldName="Microsoft.VSTS.Scheduling.Size" Label="Size" LabelPosition="Left" /> <Control Type="FieldControl" FieldName="Microsoft.VSTS.CMMI.RequirementType" Label="Type" LabelPosition="Left" /> <Control FieldName="Microsoft.VSTS.Common.ValueArea" Type="FieldControl" Label="Value area" LabelPosition="Left" />
- Scrum:
<Control FieldName="Microsoft.VSTS.Scheduling.Effort" Type="FieldControl" Label="Effort" LabelPosition="Left" /> <Control FieldName="Microsoft.VSTS.Common.ValueArea" Type="FieldControl" Label="Value area" LabelPosition="Left" />
- Agile、User Story:添加从
编辑类别定义。 将 WIT 添加到“要求”类别。 此处添加服务应用。
<CATEGORY name="Requirement Category" refname="Microsoft.RequirementCategory"> <DEFAULTWORKITEMTYPE name="User Story" /> <WORKITEMTYPE name="Service App" /> </CATEGORY>
更新或验证要添加的 WIT 的 ProcessConfiguration 定义:
RequirementBacklog
部分。 具体而言,请确保满足以下条件:- 将每个工作流状态的开头映射到
type="Proposed"
- 将每个你希望在看板上显示的中间工作流状态映射到
type="InProgress"
- 将每个工作流状态的结尾映射到
type="Complete"
- 确保只有一个状态映射到
type="Complete"
例如,添加“挂起”工作流状态:
<States> <State value="New" type="Proposed" /> <State value="Active" type="InProgress" /> <State value="Pending" type="InProgress" /> <State value="Resolved" type="InProgress" /> <State value="Closed" type="Complete" /> </States>
- 将每个工作流状态的开头映射到
将 WIT 颜色定义添加到 ProcessConfiguration
WorkItemColors
部分。 例如:<WorkItemColor primary="FF33CC33" secondary="FFD6F5D6" name="Service App" />
更新项目:
添加 WIT 以像任务一样跟踪它
添加到任务类别的 WIT 显示在冲刺积压工作和任务板上。 添加的 WIT 必须指定必填字段以支持敏捷规划工具。
将进程 (托管 XML) 或定义文件导出 (本地 XML) ,如 “第一步”中所述。
编辑 WIT 定义以支持规划工具。
用于添加或更新的自定义/语法
Stack Rank 字段 (Agile、CMMI)
<FIELD name="Stack Rank" refname="Microsoft.VSTS.Common.StackRank" type="Double" reportable="dimension"> <HELPTEXT>Work first on items with lower-valued stack rank. Set in triage. </HELPTEXT> </FIELD>
**积压工作优先级** 字段 (Scrum)
<FIELD name="Backlog Priority" refname="Microsoft.VSTS.Common.BacklogPriority" type="Double" reportable="detail" />
活动 字段 (敏捷、Scrum)
<FIELD name="Activity" refname="Microsoft.VSTS.Common.Activity" type="String" reportable="dimension"> <HELPTEXT>Type of work involved</HELPTEXT> <SUGGESTEDVALUES> <LISTITEM value="Development" /> <LISTITEM value="Testing" /> <LISTITEM value="Requirements" /> <LISTITEM value="Design" /> <LISTITEM value="Deployment" /> <LISTITEM value="Documentation" /> </SUGGESTEDVALUES> </FIELD>
CMMI) (规则字段
<FIELD name="Discipline" refname="Microsoft.VSTS.Common.Discipline" type="String" reportable="dimension"> <ALLOWEDVALUES> <LISTITEM value="Analysis" /> <LISTITEM value="User Experience" /> <LISTITEM value="User Education" /> <LISTITEM value="Development" /> <LISTITEM value="Test" /> </ALLOWEDVALUES> </FIELD>
“剩余工时 ”域 (所有)
<FIELD name="Remaining Work" refname="Microsoft.VSTS.Scheduling.RemainingWork" type="Double" reportable="measure" formula="sum"> <HELPTEXT> An estimate of the work remaining to complete the task (in person hours) </HELPTEXT> </FIELD>
(Agile、CMMI) 的其他计划字段
<FIELD name="Original Estimate" refname="Microsoft.VSTS.Scheduling.OriginalEstimate" type="Double" reportable="measure" formula="sum"> <HELPTEXT> The original estimate of work required to complete the task (in person hours)</HELPTEXT> </FIELD> <FIELD name="Remaining Work" refname="Microsoft.VSTS.Scheduling.RemainingWork" type="Double" reportable="measure" formula="sum"> <HELPTEXT>An estimate of the work remaining to complete the task (in person hours) </HELPTEXT> </FIELD> <FIELD name="Completed Work" refname="Microsoft.VSTS.Scheduling.CompletedWork" type="Double" reportable="measure" formula="sum"> <HELPTEXT> The work that has been completed for this task (in person hours) <HELPTEXT> </FIELD> <FIELD name="Start Date" refname="Microsoft.VSTS.Scheduling.StartDate" type="DateTime" reportable="dimension" /> <FIELD name="Finish Date" refname="Microsoft.VSTS.Scheduling.FinishDate" type="DateTime" reportable="dimension" />
WORKFLOW
部分
更新或验证 节,WORKFLOW
如下所示:- Agile、User Story:添加从
Active
到Removed
和Resolved
到Removed
的转换;删除在 state= 时填充Activated By
和Activated Date
字段的规则Resolved
- Scrum、产品积压工作项:添加从
Committed
到 的转换Removed
如果已自定义 ,WORKFLOW
请确保在 ProcessConfiguration 部分中定义所需的状态到 metastateTestBacklog
映射。
FORM
部分
添加或验证是否已将以下字段添加到FORM
节:- 敏捷:
<Control FieldName="Microsoft.VSTS.Scheduling.StoryPoints" Type="FieldControl" Label="Story Points" LabelPosition="Left" /> <Control FieldName="Microsoft.VSTS.Common.ValueArea" Type="FieldControl" Label="Value area" LabelPosition="Left" />
- Cmmi:
<Control Type="FieldControl" FieldName="Microsoft.VSTS.Scheduling.Size" Label="Size" LabelPosition="Left" /> <Control FieldName="Microsoft.VSTS.Common.ValueArea" Type="FieldControl" Label="Value area" LabelPosition="Left" />
- Scrum:
<Control FieldName="Microsoft.VSTS.Scheduling.Effort" Type="FieldControl" Label="Effort" LabelPosition="Left" /> <Control FieldName="Microsoft.VSTS.Common.ValueArea" Type="FieldControl" Label="Value area" LabelPosition="Left" />
- Agile、User Story:添加从
编辑类别定义。 将 WIT 添加到“任务”类别。 此处添加服务任务。
<CATEGORY name="Task Category" refname="Microsoft.TaskCategory"> <DEFAULTWORKITEMTYPE name="Task" /> <WORKITEMTYPE name="Service Task" /> </CATEGORY>
更新或验证 ProcessConfiguration 定义:
TaskBacklog
要添加的 WIT 部分。
具体而言,请确保满足以下条件:- 将每个工作流状态的开头映射到
type="Proposed"
- 将要在任务板上显示的每个中间工作流状态映射到
type="InProgress"
- 将每个工作流状态的结尾映射到
type="Complete"
- 确保只有一个状态映射到
type="Complete"
例如,添加
Blocked
工作流状态:<States> <State value="New" type="Proposed" /> <State value="Active" type="InProgress" /> <State value="Blocked" type="InProgress" /> <State value="Resolved" type="InProgress" /> <State value="Closed" type="Complete" /> </States>
- 将每个工作流状态的开头映射到
将 WIT 颜色定义添加到 ProcessConfiguration
WorkItemColors
部分。 例如:<WorkItemColor primary="FFF2CB1D" secondary="FFF6F5D2" name="Service Task" />
更新项目:
确认可以将 WIT 添加到任务板。 打开任务板页面,或刷新页面(如果已打开)。
应能够选择“任务”或“服务任务”作为用户情景的链接工作项。
在任务板上,拖动工作项以更新其状态。 你会注意到,无法将某个项拖到状态无效的列中。 例如,不能将“任务”拖到“已阻止”状态,或将“任务”拖入已解析状态。 如果希望使用这些状态,请将它们添加到工作流定义以获取相应的 WIT 定义。
将 WIT 添加到 Bug 类别
将基于 团队设置处理添加到 Bug 类别的 WIT。 由于这些 WIT 可能被视为要求或任务,因此它们必须同时满足要求和任务的敏捷规划工具要求。
(托管 XML) 或定义文件 (本地 XML) 导出进程,如 “第一步”中所述。
编辑 WIT 定义以支持规划工具,方法是满足 添加 WIT 作为要求进行跟踪 的步骤 2 和 添加 WIT 作为任务进行跟踪。
编辑类别定义。 将 WIT 添加到 Bug 类别。 此处添加两个 WIT。
<CATEGORY name="Bug Category" refname="Microsoft.BugCategory"> <DEFAULTWORKITEMTYPE name="Bug" /> <WORKITEMTYPE name="Service Bug" /> <WORKITEMTYPE name="Feedback" /> </CATEGORY>
更新或验证 ProcessConfiguration 定义:
BugWorkItems
要添加的 WIT 部分。具体而言,请确保满足以下条件:
- 将每个工作流状态的开头映射到
type="Proposed"
- 将你希望在看板或任务板上显示的每个中间工作流状态映射到
type="InProgress"
- 将每个工作流状态的结尾映射到
type="Complete"
- 确保只有一个状态映射到
type="Complete"
例如,添加
Investigate
工作流状态:<States> <State value="New" type="Proposed" /> <State value="Active" type="InProgress" /> <State value="Investigate" type="InProgress" /> <State value="Resolved" type="InProgress" /> <State value="Closed" type="Complete" /> </States>
- 将每个工作流状态的开头映射到
将 WIT 颜色定义添加到 ProcessConfiguration
WorkItemColors
部分。 例如:<WorkItemColor primary="FFF2CB1D" secondary="FFF6F5D2" name="Service Bug" /> <WorkItemColor primary="FFFF00FF" secondary="FFFFCCFF" name="Feedback" />
更新项目:
选择团队设置以跟踪 bug 的方式。
确认 WIT 按预期显示在积压工作和板上,并且你可以按预期通过积压工作添加它。
(本地 XML) 导入和导出定义文件
使用 witadmin 命令导入和导出定义文件。 有关详细信息,请参阅 witAdmin:自定义和管理用于跟踪工作的对象。
提示
使用 witadmin,可以 导入和导出定义文件。 可以使用的其他工具包括进程编辑器 (要求你已安装 Visual Studio) 版本。 从 Visual Studio 市场安装进程模板编辑器。
提示
使用 witadmin,可以 导入和导出定义文件。 可以使用的其他工具包括进程编辑器 (要求你已安装 Visual Studio) 版本。 从 Visual Studio 市场安装 TFS 进程模板编辑器。 可以使用此版本的进程编辑器来修改旧式工作项表单。 不能使用它来编辑与 新 Web 窗体关联的表单。
或者,可以使用 TFS 团队项目经理,这是 GitHub 提供的开源客户端。
- 根据 witAdmin:自定义和管理跟踪工作的对象中提供的说明打开命令提示符窗口。 例如:
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"
使用以下命令导出和导入 WIT、类别和进程配置:
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 作为项目组合积压工作,请参阅 添加项目组合积压工作。
有关可用于 自定义工作跟踪 对象的所有选项的概述,请参阅自定义工作跟踪体验。
若要了解如何在积压工作或板上显示分层或嵌套元素,请参阅 积压工作和板如何显示分层 (嵌套) 项。