文档介绍:Scrum敏捷软件开发过程
2008-12-03
Jinghua Li
Quality Manager
TietoEnator Corporation
T&M MDR MID
jinghua.******@
目录
什么是敏捷软件开发?
敏捷方法的项目计划
敏捷项目管理和传统项目管理
为什么使用敏捷?
Scrum概述
Scrum的角色
Scrum实践和工作产品
敏捷开发中的估计方法
测试驱动开发
Scrum应用
支持工具和模版
一些常见的误解
2
整理课件
敏捷开发方法
什么是敏捷软件开发?
敏捷软件开发是软件项目的一个概念框架.
有许多建立在敏捷概念上的方法,如 Scrum 和 Extreme Programming (XP).
与僵化的、重量级的、官僚式的方法形成对照,比如瀑布模型(指纯粹形式的)
最大限度地降低短期固定时间的迭代式软件的开发风险.
4
整理课件
敏捷宣言(2001年)
人和交互胜过过程和工具.
Individuals and interactions over processes and tools
可以工作的软件胜过完备的文档.
Working software over comprehensive documents
客户协作胜过合同谈判.
Customer collaboration over contract negotiation
随时应对变化胜过遵循计划.
Responding to change over following a plan
5
整理课件
敏捷过程的限制
敏捷软件开发过程包含过程、原则、工具,和最重要的-人
因此
诚信是基础
没有过程能够对诚信进行有效地约束
诚信与否是有效实施敏捷过程的最大限制
6
整理课件
使用敏捷方法的项目计划
Product Backlog
(Features)
5
2
1
3
8
5
8
∑32
Initial Size
Estimates
As Story Points
Long term planning (best guess at the moment):
32 SP of functionality, Team Velocity 8 SP/Sprint 4 Sprints
Target Sprint for each PBL item set, feasible implementation
Order.
Sprint Backlog
(Tasks)
8
5
8
3
1
“Sprintful” of top-
priority PBL to the
next Sprint
More accurate
estimates
as man hours
Short term planning (commitment by Team):
May be constantly
updated
Scope frozen new PBL items to next Sprint
7
整理课件
敏捷项目管理和传统项目管理
传统项目管理:
事先对整个项目进行估计、计划、分析
反对变更; 变更需要重新估计、重新规划
严密的合同来减少风险, 如果改变需求要走 CR 流程.
项目作为一个“黑盒子” ,对客户与供应商的可视性差.
产品化和测试阶段是分离的.
文档和计划驱动的方法.
软件交付时间晚, 意识到风险的时间晚.
敏捷项目管理:
对整个项目做一个粗略的估计,每一次迭代都有详细的计划.
鼓励变化, 客户价值驱动开发.
信任和赋予权力;合约使变更变得简单,增加价值.
客户和开发人员之间是紧密的连续的合作关系
每次迭代都产生可交付的软件
专注于交付软件.
第一次迭代就可交付能工作的版本,风险发现的早.
8
整理课件
为什么采用敏捷? –预期的收益
采用敏捷方法得当的话,可以:
更加透明; 随时跟踪项目的状态和进展情况,及早发现问题和风险 .
快速交付, 每次迭代都能交付可运行的软件.
最高风险和最高优先级的需求,最优先进行开发.
改善应对变更能力, 减少大量的重计划.
改善项目沟通.
更好的客户参与, 避免错误的假设.
总之:
提高了生产率; 减少“浪费” (不需要的文档,重复工作等) ,项目的每次迭代都有明确的目标.
提高客户满意度; 短期内产生成效, 按预期交付软件, 每次迭代结束产生可以运行的软件.
改善员工的满意度; 团队精神,减少官僚,能够规划和管理自己的工作,减少“恐慌” ,稳定的工作量(可持续的步伐).
9
整理课件
敏捷方法何时有效?