原文:http://hi.baidu.com/lopve1314/blog/item/f9e9dacdcc2d0e1800e92857.html

Scrum是一个敏捷开发框架,是一个增量迭代的开发过程.。在这个框架整个开发周期由若干个小的跌代周期,每个小的的跌代周期称为一个Sprint,每个Sprint的长度2到4周。在每个Sprint中,Scrum的开发团队拿到一个排列好优先级的需求列表,我们称它为用户故事或者叫Sprint backlog, 所以我们先开发的是对客户具有较高价值的需求。 在每个迭代结束后,都会开发完成可交付的产品。

一个简单的框架

Scrum由三个角色,三种活动,3种交付物组成:

三个角色:

Product Owner

Scrum Master

Scrum Team

三种活动:

the sprint planning meeting

daily scrum meetings

sprint review meetings

3种产物:

the product backlog

the sprint backlog

a burndown chart

一个经历过时间考验的开发过程

Scrum最早由Jeff Sutherland在1993年提出,Ken Schwaber 在1995年OOPSLA会议上形式化了Scrum开发过程,并向业界公布。

之后,Scrum成为领先的敏捷开发方法之一,目前世界上有超过500家公司在使用Scrum。

 

Scrum的特点:

  • Scrum是一个敏捷的流程,可用于管控研发工作。
  • Scrum是现有设计流程的总结。
  • Scrum以团队为基础,是一种在需求求迅速变化情况下迭代地、增量地开发系统和产品的方法。
  • Scrum是一个控制由利益和需求冲突导致的混乱的流程。
  • Scrum是改善交流并最优化合作的方式。
  • Scrum是一种检测产品开发和生产过程中障碍并将其去除的方式。
  • Scrum是最大化生产率的一种方法。
  • Scrum适用于单一的项目到整个组织。Scrum可以控制并组织多件具有相关性的产品开发以及拥有超过千名开发者和执行者的项目实施过程。
  • Scrum能让每个参与者都对自己所做的工作以及自己做出的贡献感到骄傲,并让他们发挥到最佳水平。





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

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


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

  • Scrum是一种迭代式增量软件开发过程,通常用于敏捷软件开发。Scrum在英语的意思是橄榄球里的争球。

    虽然Scrum是为管理软件开发项目而开发的,它同样可以用于运行软件维护团队,或者作为计划管理方法:Scrum of Scrums.

    Scrum的特性

    Scrum是一个包括了一系列实践和预定义角色的过程骨架。Scrum中的主要角色包括同项目经理类似的Scrum主管角色负责维护过程和任务,产品负责人代表利益所有者,开发团队包括了所有开发人员。

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

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

    Scrum过程

    Agilo

    Agilo是建立在Trac之上的为Scrum量身定制的开发过程管理工具。

    Agilo系统中的角色

    Scrum定义了许多角色,根据猪和鸡的笑话分为两组,猪和鸡

    一天,一头猪和一只鸡在路上散步,鸡看了一下猪说,“嗨,我们合伙开一家餐馆怎么样?”,猪回头看了一下鸡说,“好主意,那你准备给餐馆起
    什么名字呢?”,鸡想了想说“餐馆名字叫火腿和鸡蛋怎么样?”,“我不这么认为。”,猪说,“我全身投入,而你只是参与而已。”
    • Product owner。产品负责人代表了客户的意愿。这保证了Scrum团队在做从业务角度来说正确的事情。产品负责人编写 用户故事,排出优先级,并放入产品订单。
    • Scrum master。 Scrum主管促进 Scrum过程,他的主要工作是去除那些影响团队交付冲刺目标的障碍。Scrum主管并非团队的领导(由于他们是自我组织的),而是负责屏蔽外界对开发团队的干扰。Scrum主管确保Scrum过程按照初衷使用。Scrum主管是规则的执行者。
    • Team。负责交付产品的团队。由5至9名具有跨职能技能的人(设计者,开发者等)组成的小团队完成实际的开发工作。
    • 用户。软件是为了某些人而创建!就像“假如森林里有一棵树倒下了,但没有人听到,那么它算发出了声音吗”,“假如软件没有被使用,那么它算是被开发出来了么?”
    • stakeholder。影响项目成功的人,但只直接参与冲刺评审过程。
    • Manager。为产品开发团体架起环境的那个人
    Agilo系统中的对象

    Agilo系统中的主要流程

    出自维基百科

    posted on 2010-01-23 17:53  冯瑞涛  阅读(974)  评论(0编辑  收藏  举报