目 录
第 1章 概述 1
1.1 软件是新产品开发 2
1.2 后续内容预告 4
1.3 Web资源 4
1.3.1 主要的链接或文章网站 4
1.3.2 更多的特别网站 5
第 2章 迭代和渐进 7
2.1 迭代开发 7
2.2 风险驱动和客户驱动的迭代计划 9
2.3 时间箱迭代开发 10
2.4 迭代期间,外部利益相关者不能变更迭代内容 11
2.5 渐进开发和自适应开发 11
2.6 渐进需求分析 12
2.7 早期排名前十的高级需求和技能分析 13
2.8 渐进和自适应计划 13
2.9 增量交付 15
2.10 渐进交付 15
2.11 **常见的错误 16
2.12 特定的迭代和渐进方法 16
2.12.1 Evo 16
2.12.2 UP 16
2.12.3 其他方法 17
2.13 后续内容预告 17
2.14 推荐读物 17
第3章 敏捷 18
3.1 敏捷开发 18
3.2 方法的分类 19
3.3 敏捷宣言和原则 20
3.3.1 敏捷宣言 20
3.3.2 敏捷原则 20
3.4 敏捷项目管理 21
3.5 拥抱沟通和反馈 22
3.6 以人为本的编程 22
3.7 简单的实践和项目工具 23
3.8 经验型过程与规定型过程 23
3.9 基于原则与基于规则 24
3.10 可持续规程-人员接触 24
3.11 团队是一个复杂的自适应系统 24
3.12 敏捷是在夸大其词吗 25
3.13 特定的敏捷方法 25
3.13.1 Scrum 26
3.13.2 XP 26
3.13.3 Crystal方法 26
3.13.4 敏捷建模 27
3.13.5 其他方法和实践 28
3.14 后续内容预告 28
3.15 推荐读物 29
第4章 故事 30
第5章 动机 35
5.1 如果问题不是太多,就不要修复它 35
5.2 软件项目中变化的事实 36
5.3 迭代开发的关键动机 37
5.4 迭代地迎接需求挑战 39
5.5 瀑布型的问题 41
5.5.1 问题:“完成”前期的需求规格说明就万事大吉 43
5.5.2 问题:迟到的集成和测试 43
5.5.3 问题:“可靠的”前期进度和估算 43
5.5.4 问题:“计划工作,按计划工作”的价值 44
5.6 后续内容预告 44
第6章 证据 45
6.1 概要 46
6.2 研究的证据 47
6.2.1 迭代与渐进研究 47
6.2.2 规模研究 50
6.2.3 有关变化的研究 51
6.2.4 瀑布型失败的研究 53
6.2.5 生产力的研究 54
6.2.6 质量和缺陷的研究 55
6.3 早期历史项目的证据 56
6.3.1 1970年以前 57
6.3.2 20世纪70年代 58
6.3.3 20世纪80年代之后 61
6.4 标准团体的证据 62
6.5 专家和思想领袖的证据 65
6.5.1 Harlan Mills 66
6.5.2 Tom Gilb 66
6.5.3 Frederick Brooks 67
6.5.4 Barry Boehm 68
6.5.5 James Martin 68
6.5.6 Tom DeMarco 69
6.5.7 Ed Yourdon 70
6.6 迭代开发的商业案例 70
6.7 瀑布型有效是历史的偶然 72
6.8 后续内容预告 75
6.9 推荐读物 75
第7章 Scrum 76
7.1 方法概览 77
7.1.1 分类 77
7.1.2 介绍 78
7.2 生命周期 79
7.3 工件、角色和实践 80
7.3.1 角色 81
7.3.2 实践 82
7.3.3 核心实践 82
7.3.4 Scrum会议:细节 84
7.3.5 Scrum会议的价值 85
7.3.6 工件 86
7.3.7 其他实践和价值观 88
7.4 价值观 88
7.5 常见错误和误解 89
7.5.1 Scrum项目失败是怎么回事 89
7.5.2 什么时候你知道自己并不了解Scrum 90
7.6 样板项目 90
7.7 过程混合 91
7.7.1 Scrum + Evo 91
7.7.2 Scrum + UP 91
7.7.3 Scrum + XP 92
7.8 采用的策略 92
7.9 现实与幻想 93
7.10 优势与其他 93
7.10.1 优势 93
7.10.2 其他 94
7.11 历史 94
7.12 后续内容预告 95
7.13 推荐读物 95
第8章 极限编程 96
8.1 方法概览 96
8.1.1 分类 96
8.1.2 介绍 98
8.2 生命周期 100
8.3 工件、角色和实践 101
8.3.1 角色 102
8.3.2 实践 103
8.3.3 核心实践 104
8.3.4 工件 106
8.3.5 其他实践和价值观 106
8.4 价值观 108
8.5 常见错误和误解 109
8.5.1 极限编程项目失败是怎么回事 109
8.5.2 什么时候你知道自己并不了解XP 112
8.6 样板项目 112
8.7 过程混合 113
8.7.1 XP+Evo 113
8.7.2 XP+Scrum 113
8.7.3 XP+UP 114
8.8 采用的策略 114
8.9 现实与幻想 116
8.10 优势与其他 116
8.10.1 优势 116
8.10.2 其他 117
8.11 历史 118
8.12 后续内容预告 118
8.13 推荐读物 119
第9章 统一过程 120
9.1 方法概览 121
9.1.1 UP 121
9.1.2 介绍 122
9.2 生命周期 125
9.3 工件、角色和实践 128
9.3.1 角色 129
9.3.2 实践 130
9.3.3 核心实践 130
9.3.4 UP指南 131
9.3.5 6个**佳实践 131
9.3.6 工件 132
9.3.7 其他实践和价值观 133
9.4 价值观 133
9.5 常见错误和误解 135
9.5.1 统一过程失败是怎么回事 135
9.5.2 双重瀑布思想 135
9.5.3 其他的常见错误 136
9.5.4 什么时候你知道自己并不了解UP 137
9.5.5 UP“专家”不是迭代专家 138
9.6 样板项目 138
9.7 过程混合 139
9.7.1 UP + Evo 139
9.7.2 UP + Scrum 140
9.7.3 UP + XP 140
9.8 采用的策略 141
9.9 现实与幻想 142
9.10 优势与其他 142
9.10.1 优势 142
9.10.2 其他 143
9.11 历史 143
9.12 后续内容预告 144
9.13 推荐读物 144
第 10章 Evo 146
10.1 方法概览 146
10.1.1 分类 146
10.1.2 介绍 148
10.2 生命周期 150
10.3 工件、角色和实践 152
10.3.1 角色 153
10.3.2 实践 154
10.3.3 核心实践 154
10.3.4 工件 160
10.3.5 其他实践和价值观 163
10.4 价值观 164
10.5 常见错误和误解 164
10.6 样板项目 165
10.7 过程混合 165
10.7.1 Evo + Scrum 166
10.7.2 Evo + UP 166
10.7.3 Evo + XP 166
10.8 采用的策略 167
10.9 现实与幻想 167
10.10 优势与其他 167
10.10.1 优势 167
10.10.2 其他 168
10.11 历史 168
10.12 后续内容预告 169
10.13 推荐读物 169
第 11章 实践技巧 170
11.1 项目管理 170
11.1.1 多团队或多现场的早期开发 171
11.1.2 艰难的多团队或多现场迭代计划 171
11.1.3 跨多个迭代的重叠或者“流水线”活动 172
11.1.4 滚动波浪式自适应计划与预见性计划 174
11.1.5 计划:考虑在“星期三”结束 177
11.1.6 计划:整个团队的计划会议 178
11.1.7 计划:工作者评估 178
11.1.8 计划:用Wideband Delphi改善评估 178
11.1.9 计划:多次迭代计划会议 179
11.1.10 计划:敏捷的任务制定 180
11.1.11 计划:不要忘记为迭代工作的开销做预算 180
11.1.12 任务:每次迭代都要进行时间估算 180
11.1.13 计划:自愿 180
11.1.14 可视化的项目计划 181
11.1.15 迭代目标:风险、覆盖面、急迫性、技能性开发 181
11.1.16 迭代目标:将什么分级 181
11.1.17 迭代目标:如何分级?打点投票 182
11.1.18 迭代目标:如何分级?定量方法 182
11.1.19 迭代目标:相关的迭代长度 183
11.1.20 迭代目标:在第 一次开发迭代之前 184
11.1.21 迭代目标:第 一次开发迭代 184
11.1.22 迭代目标:用例和场景 184
11.1.23 迭代目标:主要需求和次要需求 185
11.1.24 迭代目标:不要向一个迭代中添加需求 185
11.1.25 跟踪迭代进度 186
11.1.26 跟踪迭代过程——跟踪什么 186
11.1.27 跟踪和计划:XPlanner 187
11.1.28 IID项目中的挣值跟踪 187
11.1.29 对风险评级 187
11.1.30 管理风险 188
11.2 环境 188
11.2.1 持续集成 188
11.2.2 项目的Wiki网 190
11.2.3 CASE工具和逆向工程 190
11.2.4 考虑使用绘图仪 191
11.2.5 单间和公共工作室 191
11.2.6 解放墙壁 191
11.2.7 贴纸或者白板漆 192
11.2.8 数码照相机 192
11.3 需求 192
11.3.1 敏捷建模 193
11.3.2 定义并遵循愿景规划 193
11.3.3 产品愿景箱 193
11.3.4 Moore风格的愿景声明 194
11.3.5 产品表单 194
11.3.6 渐进的需求研讨 194
11.3.7 跨迭代跟踪需求 196
11.3.8 直接用户介入需求和产品 196
11.3.9 可以使用用例 196
11.3.10 可以量化 197
11.3.11 将GUI粘在一起 197
11.3.12 头脑风暴 198
11.3.13 灵感记录 198
11.3.14 类聚 198
11.3.15 思维导图 198
11.3.16 团队轮流编写 199
11.4 测试 199
11.4.1 测试驱动开发 199
11.4.2 用于验收测试的Fit和Fitnesse 201
第 12章 常见问题解答 202
12.1 问题清单 202
12.2 问题和解答 204
参考文献 222