自定义团队项目以支持团队字段
团队项目的默认配置将每个团队配置为区域路径。 如果你的组织有几个团队通过共同的积压工作 (backlog) 进行工作并跨多个产品区域,则此配置可能不适合你希望组织执行工作的方式。 通过添加自定义字段来表示你组织中的团队,你可以重新配置敏捷计划工具和页面来支持你的团队并将工作分离到团队和区域路径。
自定义团队项目以支持团队字段时,团队字段选项卡将出现在团队项目和每个团队的管理页中。
本主题介绍如何重新配置基于 TFS 提供的 Scrum 过程模板的团队项目。 如果你的团队项目基于其他过程模板,并且该模板与 TFS 2013 兼容,则你可以进行类似更改。 即使你已使用默认配置,也可以重新配置团队项目。
witadmin 命令行工具支持定义文件的导入和导出。 还可以使用过程编辑器(可随 TFS 增强工具一起下载)或 TFS 团队项目管理器(CodePlex 上提供的社区资源项目)。
1.创建用于管理团队的全局列表
如果你不是**“项目管理员”**组的成员,请获取这些权限。
打开已安装 Visual Studio 或团队资源管理器的命令提示符窗口,然后输入:
cd %programfiles%\Microsoft Visual Studio 12.0\Common7\IDE
在 64 位版本的 Windows 上,将 %programfiles% 替换为 %programfiles(x86)%。 你可以免费下载团队资源管理器。
导出团队项目集合的全局列表。
witadmin exportgloballist /collection:"http://MyServer:8080/tfs/DefaultCollection" /f:Directory/globallist.xml"
为团队添加全局列表定义。 包含要用于项目但还没有分配给团队的值。 如果全局列表为空,则只需复制下面的代码,将其粘贴到 XML 文件中,然后进行修改来支持你的团队标签。
<?xml version="1.0" encoding="utf-8"?> <gl:GLOBALLISTS xmlns:gl="https://schemas.microsoft.com/VisualStudio/2005/workitemtracking/globallists"> <GLOBALLIST name="Teams"> <LISTITEM value="Unassigned"/> <LISTITEM value="Team A"/> <LISTITEM value="Team B"/> <LISTITEM value="Team C"/> <LISTITEM value="Team D"/> </GLOBALLIST> </gl:GLOBALLISTS>
导入全局列表定义。
witadmin importgloballist /collection:"http://MyServer:8080/tfs/DefaultCollection" /f:Directory/globallist.xml"
请注意,为团队项目集合中的所有团队项目定义全局列表。
2.向工作项类型添加自定义团队字段
将自定义团队字段添加到功能类别、要求类别和任务类别中包含的所有工作项类型 (WIT)。 而且,如果已升级到 TFS 2013.3,请将自定义团队字段添加到测试计划类别中包含的所有 WIT。
导出工作项类型定义。 对于 Scrum,请导出功能、产品积压工作 (backlog) 项、Bug 和任务的类型定义。
witadmin exportwitd /collection:"http://MyServer:8080/tfs/DefaultCollection" /p:MyProject /n:"Product Backlog Item" /f:Directory/pbi.xml witadmin exportwitd /collection:"http://MyServer:8080/tfs/DefaultCollection" /p:MyProject /n:Bug /f:Directory/bug.xml witadmin exportwitd /collection:"http://MyServer:8080/tfs/DefaultCollection" /p:MyProject /n:Task /f:Directory/task.xml witadmin exportwitd /collection:"http://MyServer:8080/tfs/DefaultCollection" /p:MyProject /n:"Test Plan" /f:Directory/TestPlan.xml
对于每种类型,请添加引用全局列表的自定义“团队”字段。
<FIELDS> . . . <FIELD name="Team" refname="MyCompany.Team" type="String" reportable="dimension"> <HELPTEXT>Name of the team that will do the work.</HELPTEXT> <ALLOWEXISTINGVALUE /> <ALLOWEDVALUES > <GLOBALLIST name="Teams" /> </ALLOWEDVALUES > <DEFAULT from="value" value="Unassigned" /> </FIELD> . . . </FIELDS>
提示
为你的自定义字段命名,以将其与 TFS 字段区分开来。不要使用“System”作为 refname 的前缀。此外,分别将 name 和 refname 标签保持为 128 个和 70 个字符。
将**“团队”**字段添加到工作项窗体。
<FORM> . . . <Group Label="Status"> <Column PercentWidth="100"> <Control FieldName="MyCompany.Team" Type="FieldControl" Label="Team" LabelPosition="Left" EmptyText="<None>" /> <Control Type="FieldControl" FieldName="System.AssignedTo" Label="Assi&gned to:" LabelPosition="Left" /> <Control FieldName="System.State" Type="FieldControl" Label="Stat&e" LabelPosition="Left" /> <Control FieldName="System.Reason" Type="FieldControl" Label="Reason" LabelPosition="Left" ReadOnly="True" /> </Column> </Group> . . . </FORM>
(可选)移动“区域路径”字段,使其显示在“迭代路径”之前或之后。
导入更新后的类型定义。
witadmin importwitd /collection:"http://MyServer:8080/tfs/DefaultCollection" /p:MyProject /f:Directory/pbi.xml witadmin importwitd /collection:"http://MyServer:8080/tfs/DefaultCollection" /p:MyProject /f:Directory/bug.xml witadmin importwitd /collection:"http://MyServer:8080/tfs/DefaultCollection" /p:MyProject /f:Directory/task.xml witadmin importwitd /collection:"http://MyServer:8080/tfs/DefaultCollection" /p:MyProject /f:Directory/TestPlan.xml
3.更改过程配置以引用“团队”字段
导出 ProcessConfiguration 定义。
witadmin exportprocessconfig /collection:"http://MyServer:8080/tfs/DefaultCollection" /p:MyProject /f:Directory/ProcessConfiguration.xml
为用于指定 System.AreaPath 的字段替换 type="Team"。
<TypeField refname="MyCompany.Team" type="Team" />
(可选)将团队字段添加到积压工作 (backlog) 页的快速添加面板。
<RequirementBacklog category="Microsoft.RequirementCategory" parent="Microsoft.FeatureCategory" pluralName="Stories" singularName="User Story"> <AddPanel> <Fields> <Field refname="System.Title" /> <Field refname="MyCompany.Team " /> </Fields> </AddPanel> . . .
导入定义文件。
witadmin importprocessconfig /collection:"http://MyServer:8080/tfs/DefaultCollection" /p:MyProject /f:Directory/ProcessConfiguration.xml
4.为每个团队配置团队字段
创建并配置 Team Web Access (TWA) 中的团队以匹配和引用团队字段。 每个团队(包括团队项目 Fabrikam Fiber 网站)都必须针对团队字段配置了默认值。
刷新 TWA,并从团队项目主页中打开产品积压工作 (backlog) 项。 验证更改是否按预期方式显示以及你是否可以选择团队。
如果你尚未创建团队以匹配全局列表中的项目,现在执行此操作。 请参阅添加另一个团队。
如果你之前已创建过团队,那么它们将继续存在。 你可以根据需要对其进行重命名。
打开团队项目的产品积压工作 (backlog) 或任务板。 你将看到一个错误,指示你需要选择一个团队区域。
在管理页上打开**“团队字段”**选项卡并从全局列表中选择要与默认团队关联的值。
若要支持所有团队到默认团队的汇总,请选择所有团队。
接下来,使用与其名称匹配的团队字段值配置团队层次结构中的每个团队。
对层次结构中的所有子团队都重复此步骤。
使用团队字段将工作分配给团队
可从团队项目的产品积压工作 (backlog) 页创建积压工作 (backlog) 项,并且可通过打开每个项并选择“团队”字段来将这些项分配给团队。 分配的项目将出现在团队的积压工作 (backlog) 上,然后他们可以使用其冲刺 (sprint) 积压工作 (backlog) 和任务板来处理这些项目。
对于从团队的积压工作 (backlog) 页创建的积压工作 (backlog) 项,TFS 会将与团队关联的默认值分配给团队字段。
问题解答
如何针对已自定义为使用团队字段的升级后的团队项目配置功能?
**答:**你需要先使用本主题中概述的相同更改来自定义最新的过程模板,然后才能为已自定义为使用团队字段升级后的团队项目配置功能。 下面是基本步骤:
将 TFS 升级到最新版本。
下载 TFS 过程模板,该模板对应于用于创建团队项目的模板。
修改 ProcessTemplate 文件,并更新过程模板名称和版本号。 例如:
<?xml version="1.0" encoding="utf-8"?> <ProcessTemplate> <metadata> <name>Microsoft Visual Studio Scrum 2013.3 with Team Field</name> <description>This template is for teams who follow the Scrum methodology and use Scrum terminology.</description> <version type="6B724908-EF14-45CF-84F8-768B5384DA45" major="3" minor="60" />
按照将自定义团队字段添加到工作项类型中所述,为分配给功能、要求和任务类别的工作项类型更新 WIT 定义。 对于 Scrum 过程模板,这将对应于功能、产品积压工作 (backlog) 项、Bug、任务和测试计划 WIT。
按照更改过程配置以引用团队字段中所述,更新 ProcessConfiguration 文件以使用自定义团队字段。
上载 TFS 过程模板,该模板刚刚已修改。
使用向导配置功能。 在验证时,该向导应选择在上一步中上载的过程模板。
为何添加到团队项目中的团队未显示在“团队”字段中?
**答:**你从团队项目的“概述”页添加到团队项目中的团队将不会显示在你创建是用来捕获团队的自定义字段的选取列表中。 你必须为要显示的新团队更新在创建用于管理团队的全局列表中创建的全局列表。
使用全局列表添加新团队,然后按配置团队设置中所述对这些团队进行配置。
我能使用哪些其他的 witadmin 命令?
**答:**有关所有 witadmin 命令的列表,请参见 witAdmin:自定义和管理用于跟踪工作的对象。
我可以从何处了解有关过程模板的详细信息?
**答:**请参见 自定义过程模板。
信用
已与 Martin Hinshel(高级 ALM 顾问和 Microsoft Visual Studio ALM MVP)合编了自定义从区域路径分离的团队指南。