基于Visual Studio 2010进行敏捷/Scrum模式开发

根据Forrester Research今年第二季度的一份研究报告,在超过1000名专业开发人员中,采用敏捷模式进行软件开发的已经有10.9%采用了Scrum模式,在所有的敏捷开发模式中名列首位,而在所有的软件项目管理模式中,敏捷模式更是被35%的开发人员所采用。当然,研究报告为我们呈现的仅仅是一个统计学的观点,到底你的开发团队应该采用什么样的开发模式,这还是要根据各自不同的开发环境,人员构成,公司架构以及文化背景来决定。

图1:Forrester 关于敏捷模式的调查报告

Visual Studio 2010 是微软在2010年4月发布的全新一代的集成开发环境,配合同时发布的Team Foundation Server 2010(TFS——团队服务器) ,为开发团队提供了全面的应用程序生命周期管理(ALM)工具和平台。在2010这个版本中,对于敏捷,或者说Scrum模式的支持是前所未有的。虽然微软的Visual Studio Team System从2005年开始发布的时候就提供了敏捷流程模板(也就是MSF Agile)模板,但是2008版之前的这个敏捷流程模板都是基于MSF(微软解决方案框架)的;这个框架是微软针对自己的研发团队的最佳实践进行抽取总结出来的,与广大敏捷开发社区里面所流行的很多敏捷方法并不是很契合,造成了开发团队在实施的时候有很多不适用的地方。因此,微软在开发2010版本的过程中,大量的听取了敏捷开发社区中的声音,在自己的MSF Agile 5.0的模板中进行很多针对敏捷,更确切的说是Scrum开发模式的改进,使得2010版本中所集成的MSF Agile 5.0的模板非常适合我们来进行Scrum模式的开发组织。当然,微软的产品为了追求通用性,在MSF Agile 5.0的模板中并没有完全采用Scrum模式通行的名称和流程;同时,微软在两周前又发布了一个纯粹的Scrum流程模板以供那些希望完全使用Scrum 模式的开发团队使用,当然这个模板现在仍然是Beta版。

我个人认为,开发团队采用哪一个模板并不是最重要的,重要的是我们需要在开发过程中不断地改进过程,并对这个模板进行定制,以便适合我们自己的开发流程。这也是为什么TFS所提供的是一个模板,因为它的目的就是希望我们在这个模板的基础上不断的改进,最终找到适合

自己开发团队的流程。其实这也很符合Scrum模式的理念;简单一点来说,Scrum模式是一种针对复杂项目的流程组织方式的框架,其目标是为了让我们开发出更高质量的软件产品。围绕的这个目标,Scrum模式为我们提供一个团队模型,一系列工具和一个简单的流程。在这样一个框架之下,Scrum模式要求我们不断地改进流程以达到适合团队的最佳状态,这种对改进的要求也是Scrum模式区别于其他开发流程的重要特点之一。

为什么Scrum模式适合软件开发?

软件行业至今已经有超过40年的历史,很多在软件工程中的管理方法都是在不断摸索中改进而来的。早期的软件行业由于规模有限,绝大多数属于作坊型,几个人在一起靠着自己的聪明才智创造出软件产品;但是当团队规模不断扩大的时候,开发人员开始需要一种模型来组织越来越庞大的团队,满足越来越复杂的需求。因为没有经验可循,软件开发团队将很多传统工业工程的方法借鉴到软件行业,因而出现像“瀑布式”的模型。“瀑布式”模型要求我们在实际的开发工作开始之前进行很多非常细致的设计和计划,力图将不可控的开发过程细化成可以控制的颗粒,以达到对复杂项目的总体控制目的。但是“瀑布式”模型忽视了软件项目的一个本质特点,那就是需求的不确定性;我们不可能像造汽车一样在上生产线之前把所有的零件都设计好,所有的流程都规定好,再进行装配;因为任何软件在实际进行编码之前都没有人知道这些代码应该如何实现,而且每一个开发人员的水平不同,习惯不同,写出的代码也是不同的;再加上客户对于软件的需求也是在不断变化的,一年之前的业务流程很可能在一年之后就产生的变化,如果还按照之前的需求进行开发,那么交付的时候肯定是无法满足要求的;更重要的事,在客户没有看到或者实际操作软件产品之前,他们永远也不能明确地告诉你他们要的到底是什么。因为这种种原因,造成了软件开发不可能采用传统的工程方法进行组织,因为其本身是一种需要依赖于开发人员智慧的探索性行为,也造成了我们的软件项目中有很大一部分是失败的。

Scrum模式的出现正是基于对于软件开发行为本质的认识,提供了一种松散的框架,让我们使用一种探索性的流程方法来组织本来就是探索性的开发过程;从根本上满足了软件开发本身对于流程的需求。这种方法论实际上是基于爱德华?戴明所提出的戴明环的管理方法;戴明环理论提出:人类在进行任何复杂活动时,获得成功的最有效过程要经过:Plan 计划– Do执行 – Check 检查– Act改进,四个子过程,并不停的迭代以便找到最佳的方法来解决问题。这个理论不是针对软件开发提出的,但是软件开发本身其实就是最典型的复杂活动。

图2:Scrum的流程

时间: 2024-08-30 06:36:20

基于Visual Studio 2010进行敏捷/Scrum模式开发的相关文章

应用Visual Studio 2010辅助敏捷测试(上)

敏捷软件开发是近些年来比较热门的话题,<敏捷宣言>四条主要精神和十二条基本准则概括了敏捷开发的基本思想.围绕着这些基本概念和思想,产生了一系列的轻量级方法,如:极限编程.测试驱动开发.Scrum.特性驱动开发等.虽然具体名称.过程和侧重点不尽相同,但是相对于非敏捷的开发方法而言,它们都更强调面对面的沟通.团队不同角色之间的紧密协作.频繁交付新的可用的软件版本.紧凑而自我组织型的团队等.敏捷开发只是提供了一个思想和方法论,而要在实际的工程中正确运用它,并真正显现出它的优点和产生实际的效果,这对于

一起谈.NET技术,应用Visual Studio 2010辅助敏捷测试(上)

敏捷软件开发是近些年来比较热门的话题,<敏捷宣言>四条主要精神和十二条基本准则概括了敏捷开发的基本思想.围绕着这些基本概念和思想,产生了一系列的轻量级方法,如:极限编程.测试驱动开发.Scrum.特性驱动开发等.虽然具体名称.过程和侧重点不尽相同,但是相对于非敏捷的开发方法而言,它们都更强调面对面的沟通.团队不同角色之间的紧密协作.频繁交付新的可用的软件版本.紧凑而自我组织型的团队等.敏捷开发只是提供了一个思想和方法论,而要在实际的工程中正确运用它,并真正显现出它的优点和产生实际的效果,这对于

应用Visual Studio 2010辅助敏捷测试(下)

随着需求的不断变化和迭代的深入,代码库不可避免的会有频繁的签入和签出,此时测试人员一项很重要的任务就是要预防回归问题发生.执行手工测试用例可以帮助我们预防及和发现回归问题,但是它的执行效率太低,无法胜任频繁执行的要求.这时就我们需要考虑采用自动化测试用例完成这项工作.决定是否采用自动化测试是有很多因素决定,其中很重要的一条就是自动测试的收益,下面的公式从概念上解释了如何来计算这个收益,当收益值大于1的时候,实施自动化测试就是合算的:否则,就是不合算的. 图1:计算收益公式 这其中,开发和维护自动

一起谈.NET技术,应用Visual Studio 2010辅助敏捷测试(下)

随着需求的不断变化和迭代的深入,代码库不可避免的会有频繁的签入和签出,此时测试人员一项很重要的任务就是要预防回归问题发生.执行手工测试用例可以帮助我们预防及和发现回归问题,但是它的执行效率太低,无法胜任频繁执行的要求.这时就我们需要考虑采用自动化测试用例完成这项工作.决定是否采用自动化测试是有很多因素决定,其中很重要的一条就是自动测试的收益,下面的公式从概念上解释了如何来计算这个收益,当收益值大于1的时候,实施自动化测试就是合算的:否则,就是不合算的. 图1:计算收益公式 这其中,开发和维护自动

一起谈.NET技术,Visual Studio 2010中敏捷开发流程模板的应用

本文将会为您讲述如何使用TFS 2010 MSF Agile 5.0流程模板为迭代项目而提供的工作簿.首先,让我们看一看Visual Studio 2010 IDE中的Team Explorer插件: 接下来,我们将会进入到SharePoint project portal中,为大家展示Team Explorer是如何模拟它的结构的.我们首先右击名字是Team Project的标题的那个节点,如下图所示: 这会让我们进入到SharePoint project portal中,如下图所示.注意Te

Visual Studio 2010中敏捷开发流程模板的应用

本文将会为您讲述如何使用TFS 2010 MSF Agile 5.0流程模板为迭代项目而提供的工作簿.首先,让我们看一看Visual Studio 2010 IDE中的Team Explorer插件: 接下来,我们将会进入到SharePoint project portal中,为大家展示Team Explorer是如何模拟它的结构的.我们首先右击名字是Team Project的标题的那个节点,如下图所示: 这会让我们进入到SharePoint project portal中,如下图所示.注意Te

Visual Studio 2010:测试驱动的开发

概述 测试驱动开发 (Test Driven Development, TDD),通常也称作测试驱动设计,是一种开发方法.在该方法中,开发人员首先编写单元测试,然后编写实际系统代码来确保可以顺利通过单元测试.可以将单元测试看作是系统行为的小型规范:首先编写单元测试可以让开发人员仅编写足够通过测试的代码,有助于确保系统的紧凑.轻量,并能明确专注于满足已确定的需求. TDD 的步调是"红色.绿色和重构."红色表示失败测试的可视显示--最初编写的测试并不会通过,因为您还没有为它编写任何代码.

一起谈.NET技术,基于Visual Studio 2010 阐述C#4个特性

Csharp4.0与以往版本基础体现了强大的性能优势,主要体现在以下四个方面: 1. 通过委托成员来实现接口 在C# 4.0中可以通过委托来实现某个成员的接口,例如下面的代码: public class Foo : IList { private List _Collection implements IList; public Foo() { _Collection = new List(); } } 被封闭的成员可以用委托实现一个或多个接口,多个接口用逗号分隔.这么做可以去掉很多冗余的代码,

基于Visual Studio 2010 阐述C#4个特性

Csharp4.0与以往版本基础体现了强大的性能优势,主要体现在以下四个方面: 1. 通过委托成员来实现接口 在C# 4.0中可以通过委托来实现某个成员的接口,例如下面的代码: public class Foo : IList { private List _Collection implements IList; public Foo() { _Collection = new List(); } } 被封闭的成员可以用委托实现一个或多个接口,多个接口用逗号分隔.这么做可以去掉很多冗余的代码,