转自:http://www.scrumcn.com/scrumbase/html/?4.html
一个轻量级的软件开发方法
Scrum是一个敏捷开发框架,是一个增量的、迭代的开发过程.。在这个框架中,整个开发周期包括若干个小的跌代周期,每个小的的跌代周期称为一个Sprint,每个Sprint的建议长度2到4周。在Scrum中,使用产品Backlog来管理产品或项目的需求,产品backlog是一个按照商业价值排序的需求列表,列表条目的体现形式通常为用户故事。Scrum的开发团队总是先开发的是对客户具有较高价值的需求。在每个Sprint中,Scrum开发团队从产品Backlog中挑选最有价值的需求进行开发。Sprint中挑选的需求经过Sprint计划会议上的分析、讨论和估算得到一个Sprint的任务列表,我们称它为Sprint backlog 。 在每个迭代结束时,Scrum团队将交付潜在可交付的产品增量。
一个简单的框架
Scrum由三个角色,四种仪式,三种物件(文档)组成:
三个角色:
产品负责人(Product Owner)
Scrum Master
Scrum团队
四种仪式:
Sprint计划会议(Sprint Planning Meeting)
每日站会(Daily Scrum Meeting)
Sprint评审会议(Sprint Review Meeting)
Sprint回顾会议(Sprint Retrospective Meeting)
三种物件(文档):
产品Backlog(Product Backlog)
SprintBacklog(Sprint backlog)
燃尽图(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模型和传统模型的对比: