第6章 敏捷流程
本章主要介绍了敏捷流程及其原则,Backlog、Burn-down、Sprint、Scrum方法论。以及什么时候选择敏捷的开发方法,什么时候选择其他方法。
1.敏捷的流程
定义:“敏捷流程”是一系列价值观和方法论的集合。
| 
 现有的做法  | 
 敏捷的做法  | 
| 
 流程和工具  | 
 个人和交流  | 
| 
 完备的文档  | 
 可用的软件  | 
| 
 为合同谈判  | 
 与客户合作  | 
| 
 执行原定计划  | 
 响应变化  | 
2.敏捷开发原则
3.敏捷的步骤
1.找出完成产品需要做的事情—Product Backlog
2.决定当前的冲刺需要解决的事情—Sprint Backlog
3.冲刺
4.得到软件的一个增量版本,发布给用户
4.如何成为敏捷的团队?
1. 自主管理:以前领导布置了任务,我们实现就可以了,现在要自己挑选任务;每次Sprint结束之后,还要总结不足,提出改进,并且自己要实施这些改进。“自主管理”不等于“没有管理”。
2. 自我组织:以前做好自己的事情就好了,安心下班。现在每个人要联合起来对项目负责,有人工作落后了还要帮助他改进,项目缺少某类资源还要自己顶上去。
3. 多功能型:以前规格说明书由PM来写,测试由测试人员来做,现在每个人都全面负责,自己搞定规格说明书,和别人沟通,同时自己搞定测试。
5.敏捷流程的经验教训
6.敏捷的试用范围
| 
 客观因素/ 最适用方式  | 
 敏捷(Agile)  | 
 计划驱动(Plan-driven)  | 
 形式化的开发方法(Formal Method)  | 
| 
 产品可靠性要求  | 
 不高,容忍经常出错  | 
 必须有较高可靠性  | 
 有极高的可靠性和质量要求  | 
| 
 需要变化  | 
 经常变化  | 
 不经常变化  | 
 固定的需求没需求可以建模  | 
| 
 团队人员数量  | 
 不多  | 
 较多  | 
 不多  | 
| 
 人员经验  | 
 有资深程序员带队  | 
 以中层技术人员为主  | 
 资深专家  | 
| 
 公司文化  | 
 鼓励变化,行业充满变数  | 
 崇尚秩序,按时交付  | 
 精益求精  | 
| 
 实际例子  | 
 写一个微博网站  | 
 开发下一版本的办公软件;给商业用户开发软件  | 
 开发底层正则表达式解析模块;科学计算;复杂系统的核心组件  | 
| 
 用错方式的后果  | 
 用敏捷的方法开发登月火箭控制程序,前N批宇航员都挂了  | 
 用敏捷方法,商业用户未必受得了两周一次更新的频率  | 
 敏捷方法的大部分招数都和这类用户无关,用户关心的是:把可靠性提高到99.999% ,不要让微笑的错误把系统搞崩溃  | 
原文:http://www.cnblogs.com/FvU1093-softwareEngineering/p/6874985.html