转自:http://www.cnblogs.com/sanjia/p/scrum_introduction.html
Scrum介绍
摘要
如今,项目管理的步伐越来越快。项目管理需要更灵活、更积极地,向应客户的需求。使用敏捷项目管理方法,项目经理可以在不影响价值、质量和商业规则的前提下实现所有目标,Scrum是一种迭代增量式的软件开发过程,用于敏捷软件开发。Scrum是一个包括一系列实践和预定义角色的过程框架。本文从瀑布模型出发,介绍了scrum的主要要素、过程以及遇到的挑战。
Scrum主要角色:
- Product Owner
- Scrum master
- 团队
Scrum过程:
- 建立Product backlog
- Sprint 计划会议
- 编写Sprint Backlog
- 每日例会
- Sprint演示(评审)
- Sprint回顾
关键词: 软件工程、敏捷开发、Scrum
目录
一、瀑布模型
在传统瀑布模型的开发中,我们倾向于对项目做全局的详细分析,然后做出整体的schedule,开发人员按照这个schedule进行后续的开发。瀑布模型有以下缺点:
- 在项目的各个阶段反馈太少
- 只有在项目的生命周期结束后才能看到项目的成果
- 通过过多的强制完成日期和里程碑来跟踪各个项目阶段
- 瀑布模型不能够很快的适应客户的需求变更
二、敏捷开发
在次基础上人们引出了敏捷(Agile)开发的理念,Agile (敏捷)开发整体概念的产生是基于一种方法更接近人类活动现实情况,以便取得更好效果的信念上。Agile(敏捷)强调构建可以即时操作的软件,相对于在构建前花费许多时间记录规格要求。Agile(敏捷)注重小型多职能的团队决策权,相对于大型层次和部门职能的划分,Agile(敏捷)注重快速迭代,并且其中结合尽可能多的客户反馈。
敏捷宣言:
- 个体与交互 胜过 过程和工具
- 可用的软件 胜过 完备的文档
- 客户协作 胜过 合同谈判
- 响应变化 胜过 遵循计划
敏捷价值观:沟通,简单,反馈,勇气,尊重
三、Scrum
Scrum是众多快速发展的Agile (敏捷)方式之,Scrum这个名字来源于英式橄榄球的一种争球方式,为什么要取这个名字?如图3-1所示。这种敏捷开发方法跟Scrum有相似的地方,迭代,反馈,快速反应和有效的沟通。Scrum是一个轻量级的软件工程过程,是一个软件管理框架。
3.1 Scrum简介
Scrum是一个敏捷开发过程框架,是一套追求迭代开发、持续集成的开发管理方法。在Scrum中,整个开发周期包含若干个小的迭代周期,每个小的迭代周期称为一个sprint(冲刺)。Scrum的重要支柱之一是当Scrum开发团队确认承诺任务后,产品所有者 (Product Owner)在此Sprint期间不可以添加新的需求。
3.2 Scrum的角色
- 产品负责人 (Product Owner)
产品负责人是利益相关方的代表,他的工作重点是产品的业务方面。他负责给出一份明确的,可度量的,合理的产品 Backlog(product backlog),并从业务角度出发对Backlog 中各项问题按优先级排序。Scrum开发团队总是优先开发对客户具有较高价值的需求。
- Scrum Master
Scrum Master 是整个团队的导师和组织者,他负责提高团队的开发效率。
- 明确把握开发进度。
- 保证Scrum团队中各个角色及职责的良好协作。解决团队开发中的障碍。
- 做为团队和外部的接口,屏蔽外界对团队成员的干扰。
- 保证开发过程按计划进行,组织每日站会、Sprint计划会议、Sprint评审会议和Sprint回顾会议。
- 团队
负责交付产品的团队。一个团队通常由5至9名具有跨职能技能的人(设计者,开发者等)组成,承担实际的开发工作。