http://www.21cnlib.com/xiazai/other/2010/03-14/628231.html
Scrum 是一种迭代式增量软件开发过程,通常用于敏捷软件开发 。Scrum在英语的意思是橄榄球里的争球。
虽然Scrum是为管理软件开发项目而开发的,它同样可以用于运行软件维护团队,或者作为计划管理方法:Scrum of Scrums .
历史
他们将这种新的’整体性方法与 橄榄球 相比较,前者各阶段相互重叠,并且由一个跨职能团队在不同的阶段完成整个过程,而后者整个团队“tries to go to the distance as a unit, passing the ball back and forth” 。
他们对来自汽车,照片机器,计算机和打印机等产业的案例进行了研究。
Scrum 的特性
Scrum过程
Scrum是一个包括了一系列实践和预定义角色的过程骨架。Scrum中的主要角色包括:
在每一次冲刺(一个15到30天的周期,其长度由开发 团队决定)当中,开发团队创建可用的(可以随时推出)软件的一个增量。每一个冲刺所要实现的功能来自产品订单(product backlog)。产品订单是按照优先级排列的要完成的工作的概要的需求,那些订单项会被加入一次冲刺由冲刺计划会议决定。 在会议中,产品负责人告诉开发团队他需要完成产品订单中的哪些订单项。开发团队决定在下一次冲刺中他们能够承诺完成多少订单项。[4] ?在冲刺的过程中,没有人能够变更冲刺订单(sprint backlog),这意味着在一个冲刺中需求是被冻结的。
管理Scrum过程有很多实施方法,从即时贴、白板,一直到软件包。Scrum最大的好处之一是它非常容易学习,而且启动Scrum应用并不需要太多的投入。
Scrum 中的角色
Scrum当中定义了许多角色。按照对开发过程的参与情况,这些角色被分为两组,即猪 组和鸡 组。这个分组方法的由来是一个关于猪和鸡合伙开餐馆的笑话[4] :
一天,一头猪和一只鸡在路上散步。鸡对猪说:“嗨,我们合伙开一家餐馆怎么样?”猪回头看了一下鸡说:“好主意,那你准备给餐馆起什么名字呢?”鸡想了想说:“叫‘火腿和鸡蛋’怎么样?”“那可不行”,猪说:“我把自己全搭进去了,而你只是参与而已。”
“ 猪 “ 组的角色
猪 ?是在Scrum过程中全身投入项目的各种角色,他们在项目中承担实际工作。他们有些像上边那个笑话里的猪,要把自己身上的肉贡献出来。
产品负责人
产品负责人代表了客户的意愿。这保证了Scrum团队在做从业务角度来说正确的事情。产品负责人编写?用户故事 ,排出优先级,并放入产品订单。
Scrum 主管(或促进者)
Scrum主管促进?Scrum 过程,他的主要工作是去除那些影响团队交付冲刺目标的障碍。Scrum主管并非团队的领导(因为团队是自我组织的),而是一个负责屏蔽外界对开发团队的干扰的角色。Scrum主管确保Scrum过程被按照初衷使用。Scrum主管是规则的执行者。
开发团队
负责交付产品的团队。一个团队通常由5至9名具有跨职能技能的人(设计者,开发者等)组成,承担实际的开发工作。
“ 鸡 “ 组的角色
鸡 ?并不是实际Scrum过程的一部分,但是必须考虑他们。?敏捷 ?方法的一个重要方面是使得用户和利益相关者参与到过程中的时间。参与每一个冲刺的评审和计划,并提供反馈对于这些人来说是非常重要的。
用户
软件是为了人而开发的。有人说,“假如森林里有一棵树倒下了,但没有被人听到,那么它算是发出了声音吗?”同样地,人们可以说,“假如软件没有被使用,那么它算是被开发出来了么?”
利益相关者(客户,提供商)
影响项目成功的人,但只直接参与冲刺评审过程。
经理
为产品开发团体搭建环境的人。
Scrum 会议
在冲刺中,每一天都会举行项目状况会议,被称为“scrum”或“每日站立会议”。每日站立会议有一些具体的指导原则:
在会议上,每个团队成员需要回答三个问题:[4]
每一个冲刺完成后,都会举行一次冲刺回顾会议,在会议上所有团队成员都要反思这个冲刺。举行冲刺回顾会议是为了进行持续过程改进。会议的时间限制在4小时。
Scrum提倡所有团队成员坐在一起工作,进行口头交流,以及强调项目有关的规范(disciplines),这些有助于创造自我组织的团队。
Scrum的一个关键原则是承认客户可以在项目过程中 改变主意,变更他们的需求,而预测式和计划式的方法并不能轻易地解决这种不可预见的需求变化。同样,Scrum采用了经验方法– 承认问题无法完全理解或定义,而是关注于如何使得开发团队快速推出和响应不断出现的需求的能力最大化。
文档
产品订单
产品订单(product backlog ) 是整个项目的概要文档。产品订单包括所有所需特性的粗略的描述。产品订单是关于将要创建的什么产品。产品订单是开放的,每个人都可以编辑。产品订单包括粗 略的估算,通常以天为单位。估算将帮助产品负责人衡量时间表和优先级(例如,如果”增加拼写检查”特性的估计需要花3天或3个月,将影响产品负责人对该特 性的渴望).
冲刺订单
冲刺订单(sprint backlog )是大大细化了的文档,包含团队如何实现下一个冲刺的需求的信息。任务被分解为以小时为单位,没有任务可以超过16个小时。如果一个任务超过16个小时,那么它就应该被进一步分解。冲刺订单上的任务不会被分派,而是由团队成员签名认领他们喜爱的任务。
燃尽图
燃尽图 (burn down chart)是一个公开展示的图表,显示当前冲刺中未完成的任务数目,或在冲刺订单上未完成的订单项的数目。不要把燃尽图与挣值图 相混淆。A burn down chart could be flat for most of the period covered by a sprint and yet the project could still be on schedule.
自适应的项目管理
以下是一些Scrum的通用实践:
Scrum 术语
下面是Scrum用到的术语[4] :
角色
产品负责人 ?
负责维护产品订单的人,代表利益相关者的利益。
Scrum 主管 ?
为Scrum过程负责的人,确保scrum的正确使用并使得Scrum的收益最大化。
开发团队 ?
由负责自我管理开发产品的人组成的跨职能团队。
Scrum 团队
产品负责人,Scrum主管和开发团队。
工件
冲刺燃尽图 ?
在冲刺长度上显示每天进展的图。
产品订单 ?
按照优先级排序的高层需求。
冲刺订单
要在冲刺中完成的任务的清单。
其他
冲刺 ?
一个时间周期(通常在2周到1个月之间),开发团队会在此期间内完成所承诺的一组订单项的开发。
Scrum 在其他领域的应用
虽然Scrum最初只应用于软件开发,它也可以被成功地应用于其他产业。现在Scrum通常被认为是一种用于开发任何产品或管理人和工作的迭代式的,增量的过程。
Scrum 用于产品开发
将Scrum应用于产品开发是在《”T新新产品开发游戏 “》(哈佛商业评论 86116:137-146, 1986年)第一次提出,之后野中郁次郎 和竹内弘高 合著的《”创造知识的企业 “》(牛津大学出版社,1995年)进行了详细的阐述。今天Scrum被用于开发金融产品,互联网产品,以及医药产品。
Scrum 用作营销项目管理方法
由于市场营销 通常以项目的方式运作,许多一般项目管理的原则应用在市场营销上。市场营销也可以像项目管理 技术那样进行优化。?以Scrum方法进行市场营销 被认为有助于克服市场营销经理们所遇到的问题。短时和固定的会议对于小的市场营销团队来说很重要,这是因为团队的每一个成员都可以了解其他人在做些什么,以及整个团队在朝着什么方向前进。Scrum在市场营销中应用可以: