视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
敏捷软件开发模型--SCRUM
2025-09-26 22:00:14 责编:小OO
文档
敏捷软件开发模型--SCRUM 

一 什么是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与其它灵活的过程框架组合起来,比如说RUP。 

RUP(Rational Unified Process,Rational 统一过程),是一种被广泛使用的软件过程框架。它可以很好地迎合你的软件开发过程的需要,还可以容纳其他技术。Scrum是一系列有趣的,用来包装灵活软件项目的项目管理模式。

Scrum 提供了一种经验方法,它使得团队成员能够地,集中地在创造性的环境下工作。它发现了软件工程的社会意义。这一过程是迅速,有适应性,自组织的,它代表 了从顺序开发过程以来的重大变化。Scrum认为软件的开发不应使用和一般制造业相同的方法,也就是不应采用一种反复的模式。这种重复使得输入和输出参数 更加容易预测和描述,但这并不是当今软件工程的有益目标。现代软件工程的主要挑战包括上市时间,投资回报,以及影响顾客的需要等。RUP和其他敏捷软件工 程过程能够很好地迎接这些挑战。

Scrum区别于其他开发过程之处是什么?最显而易见的不同将是每天的短会,通常在每天的同一时间在同一个房间内举行。这个会议也叫Scrum,在会议中每个团队成员仅就以下三点发言:

自上次Scrum会议后你做了什么? 

从现在到下次Scrum会议的时间里你准备做什么?

你在工作中遇到了哪些困难? 

Scrum团队的组成

由 于一个Scrum团队最多由7人组成,会议应当不超过15分钟。Scrum管理者*主持会议,并且对整个项目的成败负责。他倾听每个成员的发言并设法解决 会议中提到的各种障碍。Scrum管理者在会上对障碍提出即时的解决方案或指导,使团队不断向着目标前进。Scrum会议不同于项目会议,对团队来说,它 起到了快速简报的作用。如果问题得不到解决,团队成员应向Scrum管理者或大项目成员提出质疑。 

只有团队成员可以在Scrum会议上发言,但是允许有旁听者。对于人数多于7人的项目团队,Scrum建议与其扩大团队规模不如将团队分组。分组可 依据功能,结构主体,或者应用,包括子应用等进行。分组后各个子团队就可以并行工作了,而且Scrum管理者可以通过Scrum会议对各个子团队的工作进 行同步。Scrum甚至可以兼顾在其他地方工作的团队成员。 

Scrum团队不止是一个程序员队伍,它由各种背景下的不同角色组合而成,包括商业分析者,设计师,程序员和测试者等等。更多时候,成员可以身兼多职;正确的组合决定了团队的能力和效率。

项目规划

Scrum的迭代过程被称为“疾跑”,时间为30天。在RUP中,迭代过程通常在2至6周之间,每次“疾跑”都以获得可执行可测试的代码为结束。

产品拥有者持有产品订单,他控制并区分功能的开发次序,但是工作量的评估是由Scrum团队来完成的。产品风险的所有承担者,包括Scrum团队和产品所有者,共同检视订单,然后根据优先级次序决定先开发哪一功能。除去优先级,RUP的迭代规划过程也是基于风险的。

现在团队定义的“疾跑”目标已经成为了进展控制的指导。“疾跑”过程一旦开始,团队全部与外界的交流都必须经由Scrum管理者进行。Scrum管理者务必保证团队能够专心于既定目标而不受外界干扰。

Scrum团队持有自己的“疾跑”订单,上面记录了更多关于待实现目标的具体任务的细节。在团队对“疾跑”的作用有更多了解以后,团队成员就可以调整原始的产品评估,并将“疾跑”过程中获得的信息加入到产品订单中。这些做法对Scrum进度回溯都是有益的。

Scrum团队由每天的Scrum会议,每月的“疾跑”计划和“疾跑”审查会议紧密相连,鉴于此,整个组织必然存在一种纵向的透明度。这就使得组织 上的问题和挑战清晰明显。由于团队成员都亲自观察整个项目,交流也就变得简短,迅速和有效。团队是自组织的,着眼于“疾跑”的目标,这样就最大限度发挥了 每一个团队成员的作用。Scrum管理者充当一个问题和交流的“票据交换所”,而不是一个控制整个团队的老板。

“疾跑”审查会议持续半天。在会上,团队向项目的风险承担者展示完成的功能模块。团队按照既定的“疾跑”目标来演示完成的内容。

订单,“疾跑”计划和回顾,管理承诺,每日Scrum会议,进度回溯,以及其他Scrum技术都是基于主要用于软件项目管理的进程模式的。这些模式在过去的大小项目和不同商业领域中都获得了成功。下载本文

显示全文
专题