敏捷软件开发模型--SCRUM

转载 2007年10月16日 09:09:00

一 什么是Scrum?

Scrum (英式橄榄球争球队), 软件开发模型是敏捷开发的一种,在最近的一两年内逐渐流行起来。

Scrum的基本假设是:

开 发软件就像开发新产品,无法一开始就能定义软件产品最终的规程,过程中需要研发、创意、尝试错误,所以没有一种固定的流程可以保证专案成功。Scrum 将软件开发团队比拟成橄榄球队,有明确的最高目标,熟悉开发流程中所需具备的最佳典范与技术,具有高度自主权,紧密地沟通合作,以高度弹性解决各种挑战, 确保每天、每个阶段都朝向目标有明确的推进。

Scrum 开发流程通常以 30 天(或者更短的一段时间)为一个阶段,由客户提供新产品的需求规格开始,开发团队与客户于每一个阶段开始时挑选该完成的规格部分,开发团队必须尽力于 30 天后交付成果,团队每天用 15 分钟开会检查每个成员的进度与计划,了解所遭遇的困难并设法排除。


二 Scrum较传统开发模型的优点

Scrum模型的一个显著特点就是响应变化,它能够尽快地响应变化。下面的图片使用传统的软件开发模型(瀑布模型、螺旋模型或迭代模型)。随着系统因素(内部和外部因素)的复杂度增加,项目成功的可能性就迅速降低。


下图是Scrum模型和传统模型的对比:
      

三 Scrum模型

一)  有关Scrum的几个名词

backlog: 可以预知的所有任务, 包括功能性的和非功能性的所有任务。

sprint:一次跌代开发的时间周期,一般最多以30天为一个周期.在这段时间内,开发团队需要完成一个制定的backlog,并且最终成果是一个增量的,可以交付的产品。

sprint backlog:一个sprint周期内所需要完成的任务。

scrumMaster: 负责监督整个Scrum进程,修订计划的一个团队成员。

time-box: 一个用于开会时间段。比如每个daily scrum meeting的time-box为15分钟。

sprint planning meeting: 在启动每个sprint前召开。一般为一天时间(8小时)。该会议需要制定的任务是:产品Owner和团队成员将backlog分解成小的功能模块,  决定在即将进行的sprint里需要完成多少小功能模块,确定好这个Product Backlog的任务优先级。另外,该会议还需详细地讨论如何能够按照需求完成这些小功能模块。制定的这些模块的工作量以小时计算。

Daily Scrum meeting:开发团队成员召开,一般为15分钟。每个开发成员需要向ScrumMaster汇报三个项目:今天完成了什么? 是否遇到了障碍? 即将要做什么?通过该会议,团队成员可以相互了解项目进度。

Sprint review meeting:在每个Sprint结束后,这个Team将这个Sprint的工作成果演示给Product Owner和其他相关的人员。一般该会议为4小时。

Sprint retrospective meeting:对刚结束的Sprint进行总结。会议的参与人员为团队开发的内部人员。一般该会议为3小时。



二)实施Scrum的过程简单介绍

1) 将整个产品的backlog分解成Sprint Backlog,这个Sprint Backlog是按照目前的人力物力条件可以完成的。
2) 召开sprint planning meeting,划分,确定这个Sprint内需要完成的任务,标注任务的优先级并分配给每个成员。注意这里的任务是以小时计算的,并不是按人天计算。
3) 进入sprint开发周期,在这个周期内,每天需要召开Daily Scrum meeting。
4) 整个sprint周期结束,召开Sprint review meeting,将成果演示给Product Owner.
5) 团队成员最后召开Sprint retrospective meeting,总结问题和经验。
6) 这样周而复始,按照同样的步骤进行下一次Sprint.

整个过程如下图所示:




The diagrams in this article are all from web site: http://www.controlchaos.com.  Thanks very much!

参考:
http://www.controlchaos.com/about/
http://www.microsoft.com/Taiwan/msdn/columns/200311softdev.htm

软件开发模型——Scrum敏捷开发初了解

Scrum 核心价值观  承诺(Commitment):承诺不只是把一项工作分配给团队,也不是简单的答应去完成。它是建立在目标之 上的来自内心的接受和应许,这里只有“做”和“不做”,没有...
  • ouyangshima
  • ouyangshima
  • 2013年07月11日 19:45
  • 2069

敏捷软件开发模型--SCRUM

一 什么是Scrum? Scrum (英式橄榄球争球队), 软件开发模型是敏捷开发的一种,在最近的一两年内逐渐流行起来。 Scrum的基本假设是: 开发软件就像开发新产品,无法一开始...
  • Kaitiren
  • Kaitiren
  • 2014年03月14日 12:47
  • 1625

敏捷开发实战(二)--你真的了解Scrum吗?

随着敏捷开发越来越流行,人人都在谈敏捷,人人也都在学习scrum等敏捷开发方法。。。...
  • jiuqiyuliang
  • jiuqiyuliang
  • 2015年06月30日 00:06
  • 15888

SCRUM敏捷开发教程

大家好,我是煎饼哥,本期向大家介绍一个关于敏捷开发的方法,叫做scrum,相信资深的产品经理都接触过类似的项目管理方法。   scrum敏捷开发,是一个美国统计学教授记录了多年工作经验,总结出来的...
  • bamboolsu
  • bamboolsu
  • 2015年11月25日 12:18
  • 1490

Scrum敏捷开发简介

Scrum是一种灵活的敏捷软件开发管理过程。这个名词来源于英式橄榄球。Scrum方法由Ken Schwaber和 Jeff Sutherland 提出,它将软件开发团队比作橄榄球队,全队有明确的最高目...
  • xiaoxian8023
  • xiaoxian8023
  • 2014年02月16日 23:46
  • 15211

Scrum敏捷实践

1、Scrum 是什么 Scrum是英语中橄榄球运动的一个专业术语,表示“争球”。现在特指一种敏捷开发的模型。 Scrum,它不是一种方法,也不是一项构建产品的技术,而是一个框...
  • gokeibi
  • gokeibi
  • 2014年11月02日 20:12
  • 1060

ScruM与精益(Lean) 软件开发及应用

Scrum在众多的敏捷方法中更多地提供的是一个框架,而精益(Lean)开发则更多地提供了一种思想。二者能很好的结合并相得益彰。 Scrum和精益(Lean)软件开发   传统的软件工程模型...
  • rongwenbin
  • rongwenbin
  • 2015年09月01日 16:29
  • 1013

敏捷开发之Scrum扫盲篇

敏捷开发之Scrum扫盲篇 现在敏捷开发是越来越火了,人人都在谈敏捷,人人都在学习Scrum和XP...   为了不落后他人,于是我也开始学习Scrum,今天主要是对我最近阅读的相关资料,根据自...
  • lsd200624101033
  • lsd200624101033
  • 2016年06月14日 07:34
  • 613

敏捷软件开发模型--SCRUM

一 什么是Scrum? Scrum (英式橄榄球争球队), 软件开发模型是敏捷开发的一种,在最近的一两年内逐渐流行起来。 Scrum的基本假设是: 开发软件就像开发新产品,无法一开始...
  • yefengmeander
  • yefengmeander
  • 2013年05月29日 22:02
  • 784

敏捷软件开发模型--SCRUM

一 什么是Scrum? Scrum (英式橄榄球争球队), 软件开发模型是敏捷开发的一种,在最近的一两年内逐渐流行起来。 Scrum的基本假设是: 开发软件就像开发新产品,无法一开始...
  • jfkidear
  • jfkidear
  • 2013年03月14日 13:00
  • 574
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:敏捷软件开发模型--SCRUM
举报原因:
原因补充:

(最多只允许输入30个字)