什么是Scrum?

什么是Scrum?
Scrum中文网   2008-08-07 23:50:10 作者:Eric Liao 来源:Scrum中文网 文字大小:[][][]

一个轻量级的软件开发方法

Scrum是一个敏捷开发框架,是一个增量的、迭代的开发过程。在这个框架中,整个开发周期包括若干个小的跌代周期,每个小的的跌代周期称为一个Sprint,每个Sprint的建议长度2到4周。在Scrum中,使用产品Backlog来管理产品或项目的需求,产品backlog是一个按照商业价值排序的需求列表,列表条目的体现形式通常为用户故事。Scrum的开发团队总是先开发的是对客户具有较高价值的需求。在每个Sprint中,Scrum开发团队从产品Backlog中挑选最有价值的需求进行开发。Sprint中挑选的需求经过Sprint计划会议上的分析、讨论和估算得到一个Sprint的任务列表,我们称它为Sprint backlog 。  在每个迭代结束时,Scrum团队将交付潜在可交付的产品增量。

一个简单的框架

 

Scrum由三个角色,六个时间箱,四个工件组成:

三个角色:

1. 产品负责人(Product Owner)

2. Scrum Master

3. Scrum团队

六个时间箱:

1. Sprint

2. 发布计划会议(Release Planning Meeting)

3. Sprint计划会议(Sprint Planning Meeting)

4. 每日站会(Daily Scrum Meeting)

5. Sprint评审会议(Sprint Review Meeting)

6. Sprint回顾会议(Sprint Retrospective Meeting)

四个工件

1. 产品Backlog(Product Backlog)

2. 发布燃尽图(Release Burndown Chart)

3. SprintBacklog(Sprint Backlog)

4. Sprint燃尽图(Sprint Burndown Chart)

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

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

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

SCRUM理论基础

Scrum是以经验过程控制理论作为理论基础,通过迭代、增量的方法来增强产品开发的可预见性,并控制风险。Scrum经验过程控制理论的实施由三大支柱支撑:


第一:透明性(Transparency)

透明性要确保生产过程中影响工作成果的各个方面对管理工作成果的人来说是透明的。管理生产成果的人不仅要能够看到过程的这些方面,而且必须理解他们看到的内容。也就是说,当某个人在检验一个过程,并确信某一个任务已经完成时,这个完成必须等同于他们对完成定义。


第二:检验(Inspection)

开发过程中的各方面必须做到足够频繁地的检验,确保能够及时发现过程中的重大偏差。在确定检验频率时,需要考虑到检验会引起所有过程发生变化。当规定的检验频率超出了过程检验所能容许的程度,那么就会出现问题。幸运的是,软件开发并不会出现这种情况。另一个因素就是检验工作成果人员的技能水平和积极性。

第三:适应(Adaptation)

如果检验人员检验的时候发现过程中的一个或多个方面不满足验收标准,并且最终产品是不合格的,那么检验员就必须对过程或是材料进行调整。调整工作必须尽快实施以减少进一步的偏差。

Scrum中通过三个活动进行检验和适应:每日站会是用来检验完成Sprint目标的工作进展,调整以优化次日的工作价值。另外,Sprint评审和计划会议是用来检验完成发布目标的工作进展,调整以优化下一个Sprint的工作价值。最后,Sprint回顾会议是用来评审已经完成的Sprint,并且确定做出什么样的改善可以使接下来的Sprint更加高效、更加令人满意,并且工作更快乐。

Scrum的特点

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

    Scrum较传统开发模型的优点

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


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



    相关阅读:

    Scrum三个角色及其职责介绍

    Scrum的六个时间箱

    Scrum的四个工件

    Scrum术语字典

作者: fandyst
出处: http://www.cnblogs.com/todototry/
关注语言: python、javascript(node.js)、objective-C、java、R、C++
兴趣点: 互联网、大数据技术、大数据IO瓶颈、col-oriented DB、Key-Value DB、数据挖掘、模式识别、deep learning、开发与成本管理
产品:
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
原文地址:https://www.cnblogs.com/ToDoToTry/p/2179930.html