Scrum

目录

  • 1 什么是Scrum
  • 2 Scrum的提出及发展
  • 3 Scrum的特性
  • 4 Scrum的角色设定
  • 5 Scrum的应用

什么是Scrum

  Scrum是指一种迭代式增量软件开发过程,通常用于敏捷软件开发。虽然Scrum是为管理软件开发项目而开发的,它同样可以用于运行软件维护团队,或者作为计划管理方法。Scrum之间的合作称为“Scrum of Scrums”。

Scrum的提出及发展

  1986年,竹内弘高和 野中郁次郎阐述了一种新的整体性的方法 ,该方法能够提高商业新产品开发的速度和灵活性。他们将这种新的整体性方法与橄榄球相比较,前者各阶段相互重叠,并且由一个跨职能团队在不同的阶段完成整个过程,而后者整个团队"tries to go to the distance as a unit, passing the ball back and forth"。

  1991年,DeGrace和Stahl在《Wicked Problems, Righteous Solutions》一书中将这种方法称为 Scrum,在竹内弘高和野中郁次郎的文章中提到的橄榄球术语。

  1990年代初,肯·施瓦伯在其公司使用了一种方法Advanced Development Methods(先进开发方法),这种方法后来发展为Scrum。同时,杰夫·萨瑟兰在Easel公司开发了一种类似的方法,并首次称之为Scrum。

  1995年,在奥斯汀举办的OOPSLA '95上,萨瑟兰和施瓦伯联合发表了论文首次提出了Scrum概念。施瓦伯和萨瑟兰在接下的几年里合作,将上述的文章,他们的经验,以及业界的最佳实践融合起来,形成我们现在所知的Scrum。

  2001年,施瓦伯与 麦克·比窦(Mike Beedle)合著了《敏捷软件开发-使用Scrum过程》一书,介绍了Scrum方法。

Scrum的特性

  Scrum是一个包括了一系列实践和预定义角色的过程骨架。Scrum中的主要角色包括:

  Scrum Master是Scrum教练和团队带头人,确保团队合理的运作Scrum,并帮助团队移除实施中的障碍;

  产品负责人(Product Owner),确定产品的方向和愿景,定义产品发布的内容、优先级及交付时间,为产品投資報酬率(ROI)负责;

  开发团队(Team),一个跨职能的小团队,人数5-9人,团队拥有交付可用软件需要的各种技能。

  在每一次冲刺(一个15到30天的周期,其长度由开发团队决定)当中,开发团队创建可用的(可以随时推出)软件的一个增量。每一个冲刺所要实现的功能来自产品订单(product backlog)。产品订单是按照优先级排列的要完成的工作的概要的需求,哪些订单项会被加入一次冲刺将由冲刺计划会议决定。 在会议中,产品负责人告诉开发团队他需要完成产品订单中的哪些订单项。开发团队决定在下一次冲刺中他们能够承诺完成多少订单项。在冲刺的过程中,没有人能够变更冲刺订单(sprint backlog),这意味着在一个冲刺中需求是被冻结的。

  管理Scrum过程有很多实施方法,从即时贴、白板,一直到软件包。Scrum最大的好处之一是它非常容易学习,而且启动Scrum应用并不需要太多的投入。

Scrum的角色设定

  Scrum当中定义了许多角色。按照对开发过程的参与情况,这些角色被分为两组,即猪组和鸡组。这个分组方法的由来是一个关于猪和鸡合伙开餐馆的笑话:

  一天,一头猪和一只鸡在路上散步。鸡对猪说:“嗨,我们合伙开一家餐馆怎么样?”猪回头看了一下鸡说:“好主意,那你准备给餐馆起什么名字呢?”鸡想了想说:“叫‘火腿和鸡蛋’怎么样?”“那可不行”,猪说:“我把自己全搭进去了,而你只是参与而已。”

  "猪"组的角色to产品负责人

  猪 是在Scrum过程中全身投入專案的各种角色,他们在專案中承担实际工作。他们有些像上边那个笑话里的猪,要把自己身上的肉贡献出来。

  产品负责人代表了客户的意愿。这保证了Scrum团队在做从业务角度来说正确的事情。产品负责人编写 用户故事,排出优先级,并放入产品订单。

  Scrum主管(或促进者)to开发团队

  Scrum主管促进 Scrum过程,他的主要工作是去除那些影响团队交付冲刺目标的障碍。Scrum主管并非团队的领导(因为团队是自我组织的),而是一个负责屏蔽外界对开发团队的干扰的角色。Scrum主管确保Scrum过程被按照初衷使用。Scrum主管是规则的执行者。

  负责交付产品的团队。一个团队通常由5至9名具有跨职能技能的人(设计者,开发者等)组成,承担实际的开发工作。

  "鸡"组的角色to用户

  鸡 并不是实际Scrum过程的一部分,但是必须考虑他们。 敏捷 方法的一个重要方面是使得用户和利益相关者参与到过程中的实践。参与每一个冲刺的评审和计划,并提供反馈对于这些人来说是非常重要的。

  软件是为了人而开发的。有人说,“假如森林里有一棵树倒下了,但没有被人听到,那么它算是发出了声音吗?”同样地,人们可以说,“假如软件没有被使用,那么它算是被开发出来了么?”

Scrum的应用

  Scrum用于产品开发

  将Scrum应用于产品开发是在《T新新产品开发游戏》(哈佛商业评论 86116:137-146, 1986年)第一次提出,之后野中郁次郎和竹内弘高合著的《创造知识的企业》(牛津大学出版社,1995年)进行了详细的阐述。今天Scrum被用于开发金融产品互联网产品,以及医药产品

  Scrum用作营销项目管理方法

  由于市场营销通常以專案的方式运作,许多一般專案管理的原则应用在市场营销上。市场营销也可以像專案管理技术那样进行优化。以Scrum方法进行市场营销被认为有助于克服市场营销经理们所遇到的问题。短时和固定的会议对于小的市场营销团队来说很重要,这是因为团队的每一个成员都可以了解其他人在做些什么,以及整个团队在朝着什么方向前进。Scrum在市场营销中应用可以:

  在早期发现可能的问题,可以更快地,最小损失地应对问题。 根据Scrum的主要原则 “没有问题被扫入地毯下”,Scrum鼓励每一个团队成员描述他所遇到的困难,而这个困难可能会对整个团队的工作造成影响。

  降低财务风险。 在每一个冲刺周期的开始,企业所有者可以不付出任何代价的改变任何市场营销的因素:包括增加投资以扩大顾客数量,减少投资直至未知风险被减轻,或用于支持其他活动

  使得市场营销计划更灵活。采用冲刺的短期市场营销计划可以更加有效。如果一种促销方法在冲刺过程中显示无效,市场营销经理有机会将其换成另一种促销方法。向每一个团队成员说明每一个小的,但重要的任务的交付时间也变得更容易。

阅读数:343