【引自青峰的博客】编者按:本文是一个系列文章,共分为基础、应用和比较三篇。本文较全面地探讨了有关把Visual Studio 2005 Team System和MS PROJECT联合起来进行协同开发的实现过程及相关注意事项。另两篇请见文章末的相关文章。
一、简介
Visual Studio 2005 Team System(VSTS)能够为一个典型的软件开发团队中的每一种角色(架构师,工程经理,开发者和测试者)提供相应的工具。例如,它支持工程经理使用他们所熟知的工具(MS PROJECT和Microsoft Excel)把工程管理数据存储于Team Foundation Server(以下简称“TFS”,是Visual Studio 2005 Team System的基本组成部件,提供协作服务器特征)内。
本文中,我们将共同探讨如何联合使用MS PROJECT与VSTS数据,并分析这样做存在的优势。
在软件开发工程中,工程经理及工程领导人通常都面临下列问题:
◆他们要花费大量的时间来跟踪例如工程计划,任务,问题,风险等工程管理数据。为此,他们需要与其他团队成员举行频繁的状态会晤以得到最新的数据。显然,在这些会晤上花费的时间将极大地影响团队的整体生产效率。
◆这些数据通常都是以MS PROJECT或Microsoft Excel形式存储的,并且需要与其它团队成员共享。这样以来,需要创建该数据的多个备份,从而导致很难得到工程状态的一个一致和同步的视图。
◆因为工程数据存在于多个文件中,因而创建工程报告几乎变成了一个以手工为主的而且是极耗费时间的过程。
如今,VSTS中的工程管理工具有助于帮助解决上面的问题。例如,工程经理可以使用MS PROJECT创建任务和其它工程管理项-例如问题和风险,并把它们保存于Team Foundation Server(TFS)中,而其他团队成员就可以在他们自己的开发环境本身(即Visual Studio)内观察和更新这些数据项了。
因为所有的这些工具都依赖于一个中央服务器上的数据,所以,通过一种工具所作的修改势必影响到其它工具。集中式的工程数据使得捕获、共享和报告更为容易,而且耗费时间相对减少。此外,MS PROJECT与VSTS的紧密集成允许两者之间进行无缝的数据传递和同步;但是,在VSTS的当前版本下,这种内置的集成仅可用于MS PROJECT客户端。如果你要求与MS PROJECT的服务器端(MS PROJECT SERVER)实现这样的集成,那么你必须手工地通过PROJECT SERVER和VSTS提供的API来实现这一目的。不过,微软计划在一个未来发行版本中提供对VSTS和PROJECT SERVER的更好的集成。
在VSTS中创建一个工程计划并与一个团队共享它的过程不同于我们更为熟悉的操作一个独立的MS PROJECT实例的过程。本文后面,我们将详细描述实现这一过程所需要的步骤,例如创建一个计划,更新和共享该计划,以及修订数据冲突等。此外,我们还将讨论平时操作MS PROJECT和VSTS时并不经常遇到的一些内容和特征。而且,我们还将对VSTS和MS PROJECT SERVER加以比较,因为这两者都允许MS PROJECT客户端操作它们的数据。
缺省情况下,VSTS和MS PROJECT的集成会限制工程经理如他们平常那样使用MS PROJECT的方式。但是,因为VSTS和MS PROJECT都提供了可扩展性特征,所以,你可以对它们进行扩展和定制以提供这些工程经理们以前比较习惯的行为。然而,这样的定制内容已经超出本文的讨论范围。
【作者注】VSTS仅能与MS PROJECT 2003协同工作,而无法与更早一些的版本协同工作。因此,为了简化起见,本文中我仅使用“MS PROJECT”来指代“MS PROJECT 2003”。
二、VSTS基本概念
为了充分地理解MS PROJECT与VSTS的集成,首先我们有必要熟悉一下VSTS的一些核心概念。
◆ Team Foundation Server(TFS)。为了支持在一个组织内部进行协作性开发,VSTS中提供了一个称为“Team Foundation Server”的服务器端组件。
◆工作项(Work Item)。VSTS把任务,问题,风险等数据都作为工作项存储于TFS中。其实,工作项就是一些工作单元,可以被分配给团队成员并存储有关该工作单元的完整信息。VSTS提供了一些预定义的工作项类型,例如任务,错误和场所。每一种工作项类型(Work Item Type,以下简称为“WIT”)都有一组特定的域和有效的状态转换。用户可以定制这些WIT,也可以定义新的WIT。MS PROJECT可以操作任何类型的工作项,并且不仅仅限于任务。
◆团队工程(Team Project)。因为一个软件开发过程中的大多数活动都是在一个工程的上下文中进行的,所以,VSTS还把所有的数据(例如角色,成员,工作项和文件)存储在工程上下文(称为“Team Project”)中。一个团队工程要求必须在VSTS内创建,用于存储关于任何软件开发工程的信息。
◆过程模板(Process Template)。团队工程是基于过程模板创建的。一个过程模板是一组xml文件,用于指定WIT定义,工程角色,工程生命周期结构,工程门户结构,源控件结构以及预定义的报告,等等。VSTS发行中提供了这样两个模板:①“MSF for Agile Software Development”;②“MSF for CMMI Process Improvement”。其中,Process模板也称为Methodology模板。
【作者注】所有在本文中描述的WIT都是符合“MSF for Agile Software Development”过程模板的。
三、联合VSTS以及单独使用MS PROJECT
(一) 单独使用MS PROJECT
当单独使用MS PROJECT时,工程经理通常遵循下面的步骤:
1. 创建一个新的工程计划并且使用进一步细化的结构填充它;
2. 通过电子邮件或其它方式与团队成员共享该工程计划;
3. 保存该工程计划。
然而,借助于VSTS,还存在另外的方法来使用工程管理数据。下面,我们按时上面的步骤来解释MS PROJECT和VSTS的集成特征。尽管这些步骤实质上都是相同的,但是,它们在执行上还是略微有些差别。
1. 工程经理通过MS PROJECT创建一个新的工程计划;
2. 在填写该工程计划前,他们连接到VSTS中的一个团队工程并且把团队工程中现有的工作项导入到工程计划中。然后,他们添加新的工作项或修改导入的工作项。
3. 最后,他们把所有的工作项出版到TFS中,以便团队成员可以在Visual Studio内各自的工作项列表中观察它们。
(二) 通过MS PROJECT插件支持VSTS集成
为了支持MS PROJECT与VSTS的集成,你需要安装一个VSTS插件。当在一台安装有MS PROJECT的机器安装任何一种VSTS团队客户端(Team Architect,Team Developer,Team Test或者Team Foundation Client)软件时,这个插件都会自动地安装。该插件将把一个新的菜单组-“Team”连同一个工具栏添加到MS PROJECT中,如图1所示。
图1:把VSTS插件安装到MS PROJECT后出现的新的Team菜单组和工具栏 |
另外,该插件还添加了许多简化操作VSTS数据的对话框。
【作者注】因为在“Team”菜单组下的工具栏按钮和菜单项执行的是相同的动作,所以,我在后面干脆使用术语“按钮”来代指工具栏按钮和菜单项。不过,的确存在两个菜单项没有相应的按钮,我会单独描述它们。
四、创建一个工程计划
有了VSTS,你就可以使用工作项(work item)来创建一个工程计划。这种方式提供了下列优点:
◆工作项存储于TFS中,这将有效地避免多个工程计划副本所导致的不一致性。
◆团队成员可以直接在Visual Studio中更新他们的工作项。这样的改变也将自动地反映到工程计划中,从而有助于减少状态会晤的次数。
◆你可以为工作项域中允许的值指定复杂的规则。这些规则并非仅仅是静态的约束;它们可以在任何时候根据一个工作项的状态进行改变,从而使工程计划的创建和维护更为一致和减少错误。
◆工作项支持复杂的查询。工程经理可以使用这些查询和MS PROJECT视图来得到高度定制的工程计划视图。
注意,仅当使用基于工作项的工程计划时才会有上面所描述的优点。当这些优点与VSTS的其它特征结合到一起时,工程管理过程将变得更为有效和简单。有关VSTS的其它工程管理特征的详细描述,请读者参考MSDN文章“Visual Studio 2005 Team System:Software Project Management”。
【相关文章】
- 探讨VSTS联合MS PROJECT协同开发之一:基础篇
- 探讨VSTS联合MS PROJECT协同开发之二:应用篇
- 探讨VSTS联合MS PROJECT协同开发之三:比较篇
【责任编辑:火凤凰 TEL:(010)68476606-8007】