使用过程模板简化团队项目

来源:互联网 发布:结构方程模型软件 编辑:程序博客网 时间:2024/06/05 09:15

Brian A. Randell

本文将介绍以下内容:
  • 过程模板基础知识
  • MSF Agile 和 MSF CMMI 模板
  • 自定义过程模板
  • 创建自己的模板
本文使用以下技术: 
Visual Studio Team Foundation Server 2008
过程模板 
深入了解 MSF 模板 
自定义过程模板 
创建自己的模板 
编辑自定义的模板 
现在,您可以在 Team Foundation Server (TFS) 中收集和跟踪团队项目内部的所有工作和项目。团队项目仅仅是一个存储容器,用来存储和划分开发项目期间所跟踪和使用的所有项目。使用 Team Foundation Client (TFC) 中的“新建团队项目”向导可帮助您进行收集和跟踪。
此向导非常简单。单击“文件”|“新建团队项目”启动该向导。打开之后,必须提供团队项目的名称。单击“下一步”使用组合框选取过程方法模板。再次单击“下一步”并添加说明,该说明将由 SharePoint 显示在门户的主页上。再一次单击“下一步”,您可以选择确定定义版本控制的方式。您可以选择创建新树干,通过从现有树干中分支来创建新树干,也可以选择不创建新树干。做出决定之后单击“完成”,几分钟后,您即可获得一个可以随时使用的新团队项目。
如果仅仅是这么简单,那么本文应该是一篇非常短小的文章。我的编辑极有可能会拒绝支付报酬,甚至会重新考虑我在专栏的地位。但是,并不像所说的这么简单。实际上,使用 Visual Studio Team System (VSTS) 时,开发项目是否具有良好的开端,选择过程模板的向导页面起关键作用。这是因为过程模板定义团队项目的初始结构和内容。

过程模板
如前所述,通过团队项目可以集中管理您所在团队的所有项目。当然,您在团队项目中存储版本控制的项目(如源文件)。您还管理和存储所有工作项和工作项查询。您将文档存储在 SharePoint 文档库中,它们是团队项目门户的一部分。最后,针对数据仓库运行报告以跟踪团队的工作情况。
过程模板定义包含在团队项目中的默认项目模板。具体来说,它定义您可以使用的工作项类型,还定义 SharePoint 站点的用户界面和结构,以及加载到文档库中的默认文档 — 文件和模板。它还为报告服务站点提供默认报告,并定义默认的安全组、区域、迭代和版本控制设置。最后,过程模板将说明性指南作为 SharePoint 站点的一部分来提供。
首次安装 TFS 时,您会发现它提供了两个过程模板。在 TFS 的 2008 版本中,它们的正式名称分别是 Microsoft Solutions Framework (MSF) for Agile Software Development (MSF Agile) 和 MSF for CMMI Process Improvement (MSF CMMI)。
MSF 使用很强的客户交互促进迭代开发过程。MSF 的当前版本是版本 4.0,并且影响 TFS 过程指南,尽管它具有自己丰富的一组 MSF 指导资源。您可以在 Michael Turner 编写的《Microsoft Solutions Framework Essentials》(Microsoft Press,2006)一书中进一步查找有用的信息。
Microsoft 过程模板中包括的说明性指南深入探讨了运行开发项目和构建工作流的方法。本指南着重介绍了开发过程,而不是 Visual Studio 或 TFS 的机制。您可以通过团队项目的 SharePoint 门户主页上的“过程指南”链接访问该指南。对于 MSF Agile 和 MSF CMMI 来说,本指南还可以从 Microsoft 上单独下载。

深入了解 MSF 模板
一种简单的区分 MSF Agile 与 MSF CMMI 过程模板的方法是一个灵活,一个正规。这两种模板都基于属于七个逻辑区域的团队成员定义不同的角色。MSF Agile 模板定义了八个角色作为其团队模型的一部分。相比之下,MSF CMMI 定义了的角色数量相当多,为 20 个。如图 1 所示,CMMI 模板通过更多特定角色扩展了各个逻辑区域。这些角色包括经理和其他不属于核心开发团队的相关人员。
区域角色CMMIAgile体系结构基础结构架构师YN体系结构解决方案架构师YN开发构建工程师YN开发开发经理YN开发开发主管YN产品管理审核员YN产品管理产品经理YN产品管理发起人YN产品管理行业专家YN项目管理集成项目管理 (IPM) 总监YN测试测试经理YN用户体验用户培训专家YN用户体验用户体验架构师YN开发数据库开发人员YY开发开发人员YY产品管理业务分析师YY项目管理项目经理YY发行工作数据库管理员YY发行工作发行经理YY测试测试人员YY体系结构架构师NY用户体验业务分析师NY
除了角色之外,您还会发现工作项有许多差别(请参见图 2),其中包括为每个模板提供的实际工作项类型的差别。Microsoft 从以下四个方面描述每个工作项类型:用途、字段、工作流和布局。因此,即使两个模板都包含一个错误工作项时,从根本上说它们的类型也不同。实际上,MSF Agile 与 MSF CMMI 工作项的主要区别在于表示为状态和转换的工作流。如果深入了解 MSF Agile 错误的过程指南并检查“状态和转换”部分,您会注意到 MSF Agile 错误有三种状态和 23 种转换(请参见图 3)。而 MSF CMMI 错误有四种状态和 17 种转换(请参见图 4)。
工作项类型说明CMMIAgile更改请求更改请求标识对产品或基准的某部分所做的提议更改。YN问题问题工作项记录可能会妨碍工作或当前正妨碍产品工作的事件或情形。YN要求要求捕获并跟踪解决客户问题产品所需执行的操作。YN审核审核工作项记录设计或代码审查的结果。YN错误错误是通知系统中可能存在或已存在问题的工作项。YY风险风险是将来可能会对项目产生负面后果的任何可能事件或情况。YY任务任务工作项通知需要执行某项工作。YY服务质量要求服务质量要求说明系统的特征,如性能、负载、可用性、压力、可访问性、可服务性和可维护性。NY方案方案是记录整个系统中用户交互的单个途径的一种工作项。NY
图 3 MSF Agile 错误状态和转换
图 4 MSF CMMI 错误状态和转换
例如,您会注意到 CMMI 错误开始时处于已提议状态,而 MSF Agile 错误一旦创建就处于活动状态。这两种类型的错误的另一个差别就是用途。Microsoft 使用 MSF Agile 错误捕获所有错误的各方面信息。如果仔细查看非自定义的 MSF Agile 错误,您会发现它包含名为 Issue 的布尔字段。对于 CMMI 过程模板,Microsoft 创建单独的 Issue 工作项类型。这仅仅是一个差别示例。但是,使用团队项目时,上述这些差别将影响您所在团队的工作流。
每个 MSF 工作项类型在名为“过程指南”的文档中都有专门的部分进行介绍。过程指南分为两节:工作流和活动工作流通常是与给定角色相关的活动的逻辑流。活动是重点解决特殊任务的一组步骤。
每个活动都包含进入和退出条件,并且与一个或多个角色以及一个工作流相关联。例如,如果查看 MSF Agile 中的“重现错误”活动,您会发现它是“修复错误”工作流的一部分并且开发人员是唯一的参与角色。其他活动(如“确定迭代长度”,该活动还是 MSF Agile 模板的“计划迭代”工作流的一部分)都包含负责角色(项目经理)和参与角色(开发人员和数据库开发人员)。
根据您的团队和过程的成熟程度,您可以采用指南中提供的所有建议或一部分建议,也可以不采用建议。但是,重要的是要意识到 Microsoft 已经设计了每个模板附带的工作项、报告和文档,以便用于各个模板指南的设计。因此,您应该查看文档,并判断出哪些适合您的团队,哪些不适合您的团队。然后,您可以决定希望使用所提供的框架,还是根据团队需要对其进行调整。

自定义过程模板
尽管您的团队可以使用现成的一个 Microsoft 模板,但很可能要改进一些内容。大多数团队首先要做的工作是自定义工作项。除此之外,还要创建和自定义签入策略、SharePoint 门户站点和报告。
在我最开始所撰写的《MSDN 杂志》专栏文章中,我高度赞扬了 Team System 丰富的自定义功能集的优点,过程模板也不例外。几乎每个过程模板都可以更改和自定义。实际上,有一种好方法可以让您了解可以执行哪些自定义操作:花点时间探索两个更热门的第三方模板,它们高度体现了 Scrum 开发方式的优点。
Conchango 发布了第一个 Scrum 公共模板(我对此有一定的了解),并提供了适用于 TFS 2005 和 TFS 2008 的模板版本。截止到发稿时,Conchango 向社区免费提供了这两个版本的模板,但是要求注册才能获得下载链接。
下载模板之后,您需要提取内容并运行安装程序包。配置后,您会发现模板在“新建团队项目”向导中显示为一个选项。如果创建团队项目,您会注意到该模板的 TFS 2008 版本定义了六种自定义工作项类型、16 项团队工作项查询、15 个报告、一个 SharePoint 模板和自己的过程指南。
第二个热门模板是 VSTS Scrum 过程模板(轻型 Scrum)。VSTS MVP Mike Azocar、Steven Borg 和 Willy-Peter Schaub 将此模板作为社区驱动的项目。与 Conchango 模板类似,项目所有者已使此模板可用于 TFS 2005 和 TFS 2008。此外,他们还提供了支持与 Microsoft Project Server 2007 VSTS Connector 协同使用的版本。
轻型 Scrum 模板的 TFS 2008 版本附带了六种自定义工作项类型、18 项团队工作项查询、5 个报告、一个 SharePoint 模板和自己的过程指南。要安装此模板,必须先安装 SharePoint 模板。安装完毕后,使用“过程模板管理器”安装其余的轻型 Scrum 模板,过程模板管理器可通过 Visual Studio 内部的“团队”|“Team Foundation Server 设置”访问。将轻型 Scrum 模板解压缩到某个文件夹,然后打开“过程模板管理器”,单击“上载”按钮。导航到包含 ProcessTemplate.xml 文件的文件夹后,单击“上载”按钮(请参见图 5)。
图 5 导入轻型 Scrum 模板(单击图像可查看大图)
通过这两种 Scrum 模板,您都可以很好地了解可能的自定义级别。如果搜索 Internet,您还会发现其他模板。一些 VSTS MVP 已经建立了名为“Templex”的 CodePlex 项目来创建社区驱动的过程模板库。

创建自己的模板
尽管您可以获取文档并手动建立自己的过程模板,但与我合作的大部分客户都发现从现有的 Microsoft 模板开始更简单。我将介绍此方法帮助您入门。
首先,创建一个目录以下载一个 Microsoft 过程模板。如果认真对待,则应该在下载之后在版本控制中配置一个位置以签入模板。借助“团队”菜单中的“TFS 设置”菜单项,使用“过程模板管理器”将 MSF Agile 模板下载到 C:\PMT。“过程模板管理器”创建一个名为“MSF for Agile Software Development–v4.2”的文件夹。在此文件夹中,您会看到六个文件夹和一个 XML 文件 — ProcessTemplate.xml(请参见图 6)。
图 6 下载 MSF Agile 过程模板的结果(单击图像可查看大图)
大多数文件夹及其内容都很容易理解。您使用一些 XML 文件描述过程模板及其内容。这些 XML 文件与实际项目(如报告定义文件、HTML 文档等)一起定义过程模板。图 7 列出了配置文件及其所在位置和用途。
文件夹\文件用途%root%\ProcessTemplate.xmlProcessTemplate.xml 定义模板的核心结构。它引用除 FileMapping.xml 以外的所有其他文件。Classification\Classification.xmlClassification.xml 定义模板的区域和迭代。此外,它引用 FileMapping.xml。Classification\FileMapping.xmlFileMapping.xml 将工作项字段映射到 Microsoft Project 中的字段。Groups and Permissions\GroupsandPermissions.xmlGroupsandPermissions.xml 定义默认组及其权限。Reports\ReportsTasks.xmlReportsTasks.xml 定义 Reporting Services 报告定义的列表。Version Control\VersionControl.xmlVersionControl.xml 定义版本控制存储库中的权限、默认签入说明以及默认签出行为。Windows SharePoint Services\WssTasks.XMLWssTasks.xml 定义要使用的 SharePoint 站点模板(您必须已经安装)。此外,它还定义文档库、文件夹以及任何文件(包括模板的过程指南)。WorkItem Tracking\workitems.xmlWorkitems.xml 定义工作项类型以及过程模板的团队工作项查询的列表。此外,它还包含新团队项目应该在团队项目创建期间创建的所有默认工作项的定义。
您可以通过多种方式修改 XML 文件。当然,可以使用任何文本编辑器(如 Notepad)。如果您习惯手动编辑 XML,而且喜欢使用 Visual Studio XML 编辑器,则可以通过下载 Visual Studio 2008 SDK 与 XSD 文件联系起来。您会在 %SDK Install Folder%\VisualStudioTeamSystemIntegration\Process Templates\ProcessTemplateSchemas 找到 XSD 文件。此外,还可以在 %SDK Install Folder%\VisualStudioTeamSystemIntegration\Work Item Tracking\WorkItemTrackingSchemas 找到包含工作项定义和全局列表的 XSD 文件。您可以在 MSDN 上找到过程模板架构文档。
您可能会发现,随 VSTS 2008 TFS Power Tools(“基本 Power Tool 工具”中有详细说明)提供的可视“过程模板编辑器”更为方便(尤其是在您刚刚接触整个过程时)。您可以从 Visual Studio 内部的“工具”菜单中访问“过程模板编辑器”。
在打开下载模板中的任何文件之前,您应该将文件夹重命名为希望用于模板的名称 — 例如“MSDN Magazine Agile 1.0”。完成重命名并安装最新版本的 Power Tools 后,单击 Visual Studio 中的“工具”|“过程模板”|“打开过程模板”打开 ProcessTemplate.xml 文件。此时会打开模板设计器。将名称和说明更改为合理内容(请参见图 8),然后保存更改。如果关闭设计器并重新打开该文件,则编辑器将显示新名称。编辑器左侧的树视图提供了对图 7 中描述的核心文件以及所有工作项类型定义和工作项查询的访问。
图 8 编辑新模板的名称和说明(单击图像可查看大图)
开始编辑时,主要“过程模板编辑器”提供的大部分项目都很容易理解。如前所述,工作项通常是更改的第一个大项目。在树视图中,选择“工作项类型定义”节点下方的“错误”工作项。Visual Studio 会在“工作项类型”定义编辑器中打开该工作项类型。编辑器允许您使用普通文本框控件更改名称和说明。
工作项编辑器包含三个选项卡(请参见图 9),可提供对工作项类型定义的访问:字段、布局和工作流。此外,单击“查看 XML”按钮可轻松查看类型的 XML 表示形式。您会在整个编辑器中看到此按钮,对于您来说,这是了解更改原始 XML 文件所产生的效果的好方法。随着您的不断熟悉,您可能会发现编辑 XML 文件比使用“过程模板编辑器”更加快捷方便。
图 9 编辑“错误”工作项类型(单击图像可查看大图)
“字段”选项卡列出了工作项类型使用的所有字段。Microsoft 将字段定义为包含名称、类型和引用名称。您可以将引用名称视为字段的完全限定名称。该名称必须至少包含两部分,由句点隔开。引用名称在工作项查询中充当列显示名称。
单击“新建”按钮可以添加新字段。在“字段定义”对话框中,填写字段(请参见图 10),然后单击“确定”。“名称”和“类型”字段很容易理解。您可以选择的其他有效数据类型包括 DateTime、Double、History、HTML、Integer、PlainText、String 和 TreePath。History 和 TreePath 是分别专用于历史字段和区域与迭代字段的控件。使用工作项实例时,将鼠标指针悬停在字段上时会出现“帮助文本”。
图 10 新字段定义的值
“可报告”字段控制 TFS 是否将字段导出到 TFS 数据仓库,以便您能够将其包含在报告中。如果您决定使其成为“可报告”字段,则选择“Dimension”、“Detail”还是“Measure”非常重要。您可以对 DateTime、Double、Integer 和 String 字段使用“Dimension”。如果您希望使用字段进行筛选,请选择一个“Dimension”字段。当字段使用一组标准值时,此选项最合适。
如果您希望报告的字段包含大量文本,请使用“Detail”选项。TFS 不会将“Detail”字段放在数据仓库多维数据集中,而是只放在关系仓库数据库中。您可以对 DateTime、Double、Integer 和 String 字段使用“Detail”字段。
最后,如果您希望使用公式(例如求和或计数)或对字段执行类似的操作,请使用“Measure”字段(仅支持 Double 和 Integer 数据)。如果选择“Measure”,您要从公式字段中选择一个选项。值得注意的是,当前文档指出只有求和公式有效,这是不正确的。
请切记,将“可报告”属性应用到字段后,无法对其进行更改。但是,可以在使用字段后对其应用“可报告”属性。使工作项的字段成为“可报告”后,对该工作项所做的任何修订都将保存在仓库中(如果存在)。但是,TFS 不会将字段设置为“可报告”之前所做的更改回填到仓库中。
创建字段后,您要指定它应该出现在表单的什么位置。单击“工作项类型”编辑器中的“布局”选项卡。您可以单击“预览表单”按钮以查看当前工作项。在树视图中,向下移动直到看到“TabPage - 详细信息”节点。您会在该节点下看到“组”节点,再下面是两个“列”节点。
在第一个列节点下的“组 - 常规”节点中,您会看到一个“列”节点。右键单击该节点,然后选择“新建控件”。选择新添加的控件节点,并使用右侧的“属性网格”将 FieldName 更改为 MSDN.Mag.Beverage。将标签更改为 Beverage,然后预览结果。如果您对结果满意,请保存所做更改,然后关闭所有打开的编辑器。
使用“过程模板编辑器”,单击“上载”按钮,并导航到包含已修改的 ProcessTemplate.xml 文件的文件夹。上载模板后,运行“新建团队项目”向导,并创建名为 MSDNMagDemo 的团队项目。(我建议您使用 Virtual PC 映像进行测试,在上文中提到的 Team System 的“基本 Power Tool 工具”文章中有相关介绍。)创建团队项目后,添加新的“错误”工作项并切换到“详细信息”选项卡。您会看到新字段。请关闭新的“错误”工作项,但不保存。

编辑自定义的模板
假设您希望将该新建字段更改为包含允许饮料的特定列表。此外,您希望能够对该字段运行报告。由于您希望此更改对刚刚创建的团队项目和任何新团队项目生效,因此您需要多做一些额外的工作。
首先,单击“过程编辑器”|“工作项类型”|“从文件打开 WIT”重新打开“错误”工作项模板。导航到 C:\PMT\MSDN Magazine Agile 1.0\WorkItem Tracking\TypeDefinitions 并选择 Bug.xml 文件。查找并选择“Beverage”字段,然后选择字段列表顶部的工具栏中的“打开”命令。将“可报告”字段值更改为“Dimension”。
接下来,单击“规则”选项卡,然后单击工具栏上的“新建”。从“选择规则类型”对话框中可以看到,每个字段都可以应用许多规则。选择“ALLOWEDVALUES”,并单击“确定”。在“ALLOWEDVALUES”对话框中,单击“新建”。在“列表项编辑”中,输入“Coffee”,然后单击“确定”。再重复两次该操作,将“Soda”和“Juice”添加到列表中(随意创建或根据项目的许可情况)。完成该列表后,单击“确定”关闭“ALLOWEDVALUES”对话框。单击“确定”关闭“字段定义”对话框,并使用 Visual Studio“文件”菜单上的“保存”命令保存更改。
此时,您已更改磁盘上的文件。您需要按照先前的步骤重新上载模板。在未对 ProcessTemplate.xml 文件进行任何其他更改的情况下尝试重新上载时,您会收到此模板已存在的警告。单击“是”覆盖该模板的先前副本。
这解决了新团队项目的问题。但是,您需要修复 MSDNMagDemo 团队项目中的现有“错误”工作项模板。单击“过程编辑器”|“工作项类型”|“从文件服务器导入 WIT”。在“导入工作项类型定义”对话框中,单击“浏览”按钮,并选择位于 C:\PMT\MSDN Magazine Agile 1.0\WorkItem Tracking\TypeDefinitions 处的 Bug.xml 文件。然后,在要导入到树的“项目”的团队项目列表中,选择 MSDNMagDemo 团队项目,并单击“确定”。如果不显示 MSDNMagDemo 团队项目,您需要关闭并重新启动 Visual Studio。
在尝试添加新的“错误”之前,必须右键单击“团队资源管理器”窗口中 MSDNMagDemo 团队项目节点下的“工作项”文件夹并选择“刷新”,以刷新“工作项”定义缓存。图 11 显示了您应该看到的界面。
图 11 已完成的包含新 Beverage 字段的“错误”工作项(单击图像可查看大图)
我希望您已经了解到,Microsoft 为提供工具及其说明性指南付出了多么大的努力。我建议您花点时间了解一下这两个内置模板(或由社区提供的模板)。给自己一点时间,了解一下选择模板对您的团队和整个开发过程的意义。

Brian A. Randell 是 MCW Technologies LLC 的一名高级顾问。他主要从事 Microsoft 技术方面的讲解、培训和撰写工作。Brian 是 Pluralsight 的 Applied Team System 课程的作者,同时也是 Microsoft MVP。您可以通过 Brian 的博客 mcwtech.com/cs/blogs/brianr 与他联系。
原创粉丝点击