随笔 - 71, 文章 - 0, 评论 - 387, 引用 - 16
数据加载中……

敏捷软件开发模型--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

posted on 2006-09-07 10:34 Ring 阅读(18133) 评论(24)  编辑 收藏 网摘 所属分类: F 软件工程

评论

#1楼   回复  引用  查看    

有点深
2006-09-07 10:46 | jillzhang      

#2楼   回复  引用  查看    

Ring, well done!
2006-09-07 12:46 | Eunge      

#3楼[楼主]   回复  引用  查看    

@Eunge
thank you. but it seems very very few corporates adopt it in domestic.
2006-09-07 13:47 | Ring      

#4楼   回复  引用  查看    

nice information.
2006-09-08 14:42 | CrazyCoder      

#5楼[楼主]   回复  引用  查看    

@CrazyCoder
thanks!
2006-09-08 14:56 | Ring      

#6楼   回复  引用    

@Ring,
Scrum is the most important and widely used agile method as XP. Whatever the scrum or other agiles, two core factors:

1) Coordination
C: The work item belongs to all members, but not only one. Every one should be enthusiastic on working out all work items in a sprint however some of them are not assigned to him at beginning. They have only one final goal, delivering the project on time efficiently and high quality.

2) Positivity
C: That's why in MS, PMs, developers and testers are in the same level. All members should participate the project actively. The team should be responsible for the project but not the PM only. One failed all failed!

In China, there are already some teams using Agile even XP now. Surely, scrum also seems strange to them. Have you agreed that in China, from developing technologies (application level) speaking, we're not weeker than US/UK guys. But projecting is normally 5~10 years behindhand. Most developers, PMs, and even company owners pay less attention on PROJECTING.

The developers mostly care on how to make the code beautifully and clearly. The PMs mostly care on delivering project on time. The CEOs mostly care on getting the money from customers faster. They're not wrong, but they're short eyes. They're producing software, it bases on human but not machine. It doesn't base on only one guy, but a group. So the first thing is HOW TO BUILD THE TEAM! WHAT'S THE PROCESS FOR TEAM RUNNING.

The BUILDING AND PROCESS is not the silver bullet for a employee of a company. But it should be caused by the high level managers. Frankly, most chairmen in China is not expert on software, but have a perfect relationship to sell them whatever they are!
2006-09-09 23:55 | MSN同事[未注册用户]

#7楼[楼主]   回复  引用  查看    

@MSN同事
Thanks for the comments!
I agree teamwork, Coordination is really important in today's software developing.
Another advantage of Agile is taking action to change, when the requirement change, the design and programming work will change quickly along with it, so it brings down risk.
2006-09-10 21:54 | Ring      

#8楼   回复  引用    

Frankly, most chairmen in China is not expert on software, but have a perfect relationship to sell them whatever they are!

真是有意思!
2006-09-11 23:18 | micro[匿名][未注册用户]

#9楼   回复  引用    

well done!
2006-09-27 17:44 | amerakee[未注册用户]

#10楼   回复  引用    

Sounds good, but I would guess the working pressure is too high for the fellows. Out company will adopt this recently. The software has considered everything but leisure and rest.
2007-09-25 09:27 | Aaron Yang[未注册用户]

#11楼   回复  引用    

白痴逻辑,我已经厌倦了敏捷了,这么久了,我们还没有敏捷起来,听起来又是一个银弹!让敏捷见鬼去吧,又是一个骗人的把戏!

#12楼   回复  引用    

一个好的工具是成功的一半,尤其对这些敏捷开发,更是如此.如果有哪个团队正在或将要采用Scrum,不妨试一试AgileTime,这是一个不错的工具,看得出该系统的开发人员对Scrum有很好的理解:打开www.agiletime.com.cn,然后用AT1026/demo登入.
2007-11-30 15:44 | Terry Wang[未注册用户]

#13楼   回复  引用    

需要责任心强的成员组成的团队,Sprint中如果任务太多会有点累,要量力而行
可参考:http://www.controlchaos.com/about/
2007-12-20 11:26 | chili[未注册用户]

#14楼   回复  引用  查看    

或许该软件开发方法真的与开发者个性与习惯有关.

我很认同这种开发方法,原因是开头我们的问题并不明确,没有哪一个人能够明确地列出我们的问题,只有开发中才知道,如果开发后再反馈,那太迟了,所以开发一天反馈一天,就像我们写代码,然后运行,测试,然后修改,然后再运行,测试.

但我从来没有成功地应用于团队的,因为大家对我这种思想都是反对,具体原因是什么,我也没有深入研究过.
2008-05-13 14:15 | yzx99      

#15楼   回复  引用    

Frankly, most chairmen in China is not expert on software, but have a perfect relationship to sell them whatever they are!

Perfect!
2008-06-23 13:16 | 123abc[未注册用户]

#16楼   回复  引用    

nicely summary!!

敏捷软件开发随笔 http://scrumxp.blogspot.com
2008-09-18 16:30 | 敏捷精灵[未注册用户]

#17楼   回复  引用    

请问SCRUM与传统开发模型中的迭代法有什么区别?一个SPIRIT周期最多为30天的缘由,我觉得并不是所有项目都能在一个SPIRIT中完成一个BACKLOG的。
2008-10-09 14:39 | 李进京[未注册用户]

#18楼   回复  引用    

ClearWorks,应用生命周期管理(ALM)整体解决方案,
敏捷开发的利器!软件项目开发管理开创性的、创新性的、突破传统的革命!
www.sevenuc.com
2008-10-19 13:14 | 赛文纳克[未注册用户]

#19楼   回复  引用    

@让敏捷见鬼去吧
就你这心态,什么方法都不适合你。你适合上山抢钱,不过不知道你有没有行走的能力了。

#20楼   回复  引用    

您好

能否推荐一下scrum的学习资料(从入门开始),最好是中文的,

谢先。
2009-04-05 20:47 | 鱼跃[未注册用户]

#21楼   回复  引用    

赞,写的很棒。最近正要看SCRUM的书。。(要我四天看完)。呜。。。
2009-04-30 15:46 | simaopig[未注册用户]

#22楼   回复  引用    

阐述的真不错!谢谢和大家分享!
ScrumMasterTM 认证培训(北京)

培训师:Certified Scrum Trainer™ Mishkin Berteig.

时间:2009年6月17-18-19日.(课程配备中文翻译).

地点:北京柏丽酒店

授课语言:英语

费用:人民币8500元,5月17日之前交费可享受优惠价:人民币7500元

敏捷方法为利益相关人在投资方面保证了及早、持续及快速的收益,为团队保证了高水平的令人满意的工作效率。 敏捷方法适合于各种各样的项目,包括程序开发、资料开发、新产品开发,IT项目及软件开发外包。在这三天的培训课程中,您将会学到敏捷过程推进及项目管理的基本技巧,课程主要侧重于ScrumMaster的角色(我们通常也把ScrumMaster称为敏捷项目管理者,过程推进者或团队指导)


您将学到:

在这3天的课程中,培训参加者将学到如何引领团队、项目或组织进入一个快速交付有价值业绩的过程。培训师将通过相关练习、案例研究及众多事例帮助参加者获得从传统管理实践到敏捷实践转变所需的知识、技巧、能力及洞察力。

· 敏捷项目管理实践,以便获得超值的项目· 敏捷过程及推进工具,以提高团队的生产率

· 敏捷合作方法,帮助消除团队与客户之间的隔阂

· 通过激发创造力及全面授权,提高开发团队的活力及效率

我们向每位培训参加者保证:

目标一:理解及能够描述Scrums框构的所有部分

目标二:能够向公司领导、经理及团队成员推广Scrum框架

目标三:能够使用循序渐进的过程在他们的组织里开展Scrum

目标四:当他们开展Scrum时能够克服他们在组织里所面临的典型障碍

为什么我们提供的ScrumMaster研讨课程要比市场上其他的好?

我们的敏捷项目管理/ScrumMaster研讨课程在许多方面都非常独特。以下就是您参加我们的研讨课程所能得到的:

• 为期三天(而非通常的两天)的高强度培训,包括实践、模拟、讨论及讲座• 课堂管理本身就使用了敏捷方法,这样您可以身临其境

• 研讨课程的资料侧重于ScrumMaster/Project Manager的角色,不会为了迎合其他角色而减少

• 培训师是世界上最富有经验的Scrum认证培训师之一

• 提供电子版的所有研讨资料,且可永久免费更新

• 如果您是Project Management Institue的会员,您还可以获得24 PDUs

• 可以获得Scrum Alliance签发的ScrumMaster认证,且永远不会过期• 培训费用包括Scrum Alliance的一年会员会费

• 三天培训提供午餐及茶点

注册网址:http://www.outsofting.com如果您不能网上注册,请联系我们。

Email: training@outsofting.com 86-01-87748156 fax:86-10-61007045
2009-05-06 14:09 | 敏捷爱好者

#23楼   回复  引用    

推荐站点:Scrum中文交流社区-是一个Scrum中文资料站:http://www.scrumcn.com
2009-06-06 01:52 | 游客007[未注册用户]

#24楼   回复  引用    

If use prototype plus incremental, what is the difference with scrum?
2009-06-26 15:14 | #24[未注册用户]



发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 496591




相关文章:

相关链接: