在我14年的编程生涯中,我从瀑布模型迁移到了迭代模型,然后又迁移到了Scrum,最后迁移到了Scrum-ban。下面是瀑布式的软件开发流程,迭代式的软件开发流程和Scrum软件开发流程的示意图。关于Kanban和Scrum-ban,我会在将来的博文中详细说明。在这篇文章中,我主要想通过一个Demo,来说明如何使用Microsoft Visual Studio Scrum 1.0,Microsoft Visual Studio Scrum 1.0是专门为Scrum团队构建的流程模板。
(图1:瀑布式的软件开发流程,迭代式的软件开发流程和Scrum软件开发流程的示意图)
瀑布式的开发方法风险性较高,而且和敏捷方法比起来,瀑布式的开发方法成本更高,但是效率却更低。如果采用瀑布式的开发方法,在创造任何真正的商业价值以前,首先需要建立一些文档。换句话说,直到项目结束以前,你都无法创造任何的价值。说什么产品开发是瀑布式的,或者项目预期的时间表在很久以后,这些都是在混淆视听。推迟创造商业价值的时间点很明显是这种开发方法的一大劣势。
想想80-20法则:80%的产品价值来自于20%的产品功能。从这方面来考虑的话,我们能想到要构建一个只有20%功能的软件产品吗?是的,我们可以交付一个只有20%功能的“版本1”,以后,我们再交付一个功能略多一些的“版本2”,再以后,我们再交付一个“版本3”。这种方法的好处是开发20%的功能并不会花费100%的项目时间和预算:我们可以在项目的早期创造更多的价值。
迭代式的瀑布开发方法致力于交付一个sprint的工作,而不是一系列具有商业价值的,可用的小版本。根据我的经验,在这种开发流程中,最常见的问题是你交付了很多代码,但是一直把它们放到那里,直到最后一分钟才开始测试它们。这样的话,解决一个问题要比预期花费更长的时间,最终,你会错过最后期限,并且你可能什么也交付不出来。
这种开发方法的另外一个常见的弊病是“过度承诺”。如果使用这种分阶段的方式,当一个阶段即将结束的时候,要估算和一个具体的用户故事/功能相关的总体效果是很困难的。你可能被迫要对每个阶段做出估算(例如:在抛开测试的情况下,单独估算开发的时间)——这没有什么意义,因为每个阶段都不是独立的,它们是一个有机的整体。例如,如果你通过测试发现了一个问题,你必须要回到开发阶段来处理这个问题。整个团队必须要把注意力集中在需要交付最终的目标上,而不是把注意力集中在一些独立的阶段上。值得注意的是,在这种环境下,velocity和燃烧图并没有太大的用处——你无法从早期的警告中获得好处,因为在这个sprint结束以前,你无法知晓自己是否走在正轨上。
Scrum开发方法致力于交付经过全面测试的,独立的,具有一定价值的,但是功能较少的版本。这样的话,我的风险就被分散了——如果一个功能出现了问题,那么它不会影响到其他的功能。话虽这样说,我们仍然需要规划我们的迭代工作,在每次迭代结束的时候,我们都要发布一个新版本。
让我们看一个具体的例子,如果我们让同一个团队开发两个项目,这两项目的需求相同,项目周期也相同(比如说:都是一年),但是其中一个项目使用瀑布式的开发流程来开发,而另一个项目使用Scrum流程来开发。
假设,你对Scrum和瀑布式的开发流程都很熟悉,如果你观察一下这两个项目在6个月以后的交付情况,那会是一件相当有趣的事情。在6个月以后,使用瀑布式的开发流程的那个项目也许已经到达了这样一个阶段:需求分析已经全部完成了,设计也完成了,编程已经开始了,并且已经完成一半了。如果我是一个客户,这个阶段能给我带来多少商业价值呢?这还用考虑吗?
于此同时,Scrum的项目团队给需要完成的任务划分了优先级,在每个sprint(通常每两个月进行4个Scrum周期)以后,都会交付一个可用的产品。Scrum致力于在小的迭代周期内交付可用的产品,这样不仅可以在项目生命周期中的任意时刻提供最好的商业价值,而且在开发过程中还允许做出变更,这些变更可以在将来的sprint中处理。
Microsoft Visual Studio Scrum 1.0流程模板
几周以前,微软发布了Microsoft Visual Studio Scrum 1.0,它是专门为Scrum团队构建的流程模板。下面采用step by step的方式来说明如何下载和安装Microsoft Visual Studio Scrum 1.0,以及如何为项目团队构建Scrum开发流程。
步骤1:下载Microsoft Visual Studio Scrum 1.0流程模板
有两种方式可以下载这个模板。
选择1:可以从这个链接直接下载:
http://visualstudiogallery.msdn.microsoft.com/en-us/59ac03e3-df99-4776-be39-1917cbfc5d8e
选择2:可以通过Visual Studio 2010来下载Microsoft Visual Studio Scrum 1.0,步骤如下:
1,打开VS 2010
2,在“Tools”菜单上,点击“Extension Manager”
3,在Extension Manager中,在左面的窗格中,点击“Online Gallery”
4,在Online Gallery中,展开“Tools”,然后选择“Process Templates”
5,在右边的窗格中,选择“Microsoft Visual Studio Scrum 1.0”,然后点击“Download”按钮。
6,这会把Microsoft_Visual_Studio_Scrum_1.0.MSI下载到你在下载对话框中指定的目录下。
7,双击Microsoft_Visual_Studio_Scrum_1.0.MSI文件开始安装。
8,在默认情况下,MSI会在如下路径安装必需的文件:C:\Program Files (x86)\Microsoft\Microsoft Visual Studio Scrum 1.0(我使用的是64位的Windows7操作系统)
步骤2:在Visual Studio 2010中运行Process Template Explorer
如果你已经连接到了Team Foundation Server,请忽略步骤A到步骤D,直接从步骤“1”开始。
前提条件:下面的步骤需要连接到Team Foundation Server。在我的例子中,我把Microsoft Team Foundation Server 2010安装到了本地,一台运行Windows 7的PC上。下面是连接到Team Foundation Server(team project collection)的一些步骤。
步骤A:在Visual Studio中,在“Team”菜单上,点击“Connect to Team Foundation Server”。
注意:如果你没有看到这个选项,那说明你没有安装Team Explorer。如果你想看到“connect to Team Foundation Server”这个选项,那么你必须安装Team Explorer才可以。
步骤B:在“Connect to Team Project”对话框中,在“Select a Team Foundation Server”下拉列表中,选择一个包含了你要使用的team project collection的服务器。
注意:如果下拉列表是空的,那么你可以点击“Servers”按钮来手动输入服务器的连接设置。你可以联系你的Team Foundation管理员,或是team project管理员来获取连接设置。
步骤C:从目录列表中选择你要把team project添加到其中的project collection的名字。
步骤D:点击“Connect”。Team Explorer会显示你选择的team project。下面是我的team project的截图。
1,在VS 2010种,点击“Team”菜单
2,选择“Team Project Collection Settings”-〉Process Template Manager。
或者,在Team Explorer窗口中,在那个collection上点击右键,然后选择“Team Project Collection Settings”-〉Process Template Manager.
3,点击“Upload”按钮,然后选择安装Microsoft Visual Studio Scrum 1.0流程模板的那个文件夹(默认情况下,这个文件夹是:C:\Program Files (x86)\Microsoft\Microsoft Visual Studio Scrum 1.0\Process Template)。点击“Select Folder”
4,安装以后,点击“Make Default”按钮,让它成为默认的流程模板。Microsoft Visual Studio Scrum 1.0应该出现在Process Template Manager的列表中,如图所示:
建立一个Team Project
1,在Team Explorer,右击一个project collection,然后点击“New Team Project”。
或者,打开“File”菜单,指向“New”,然后点击“Team Project”
2,在“Specify the Team Project Settings”页面上,在“What is the name of the team project?”框中,给你的team project输入一个名字,然后输入关于这个项目的一些描述。
3,点击“Next”。在“Select a Process Template”页面上,在“Which process template should be used to create the team project?”列表中,选择“Microsoft Visual Studio Scrum 1.0”模板。点击“Finish”。
下列任务会自动地完成:
为你的team project建立一个SharePoint站点
为你的team project建立一个空的版本控制文件夹
Team Explorer会显示下面的信息:
要开始使用Scrum流程,可以参考这个站点:http://msdn.microsoft.com/en-us/library/ff731587.aspx
【原文标题】:
Scrum Process for Software Development using Microsoft Visual Studio Scrum 1.0 Process Template