第Ⅰ部分 迭代项目管理原理 3
第1章 什么是迭代开发 3
1.1 迭代与科学方法 3
1.2 迭代的含义 4
1.2.1 迭代是一个独立的微型项目 4
1.2.2 迭代有一组独特的活动 5
1.2.3 每次迭代的结果都在“发布版本”中 6
1.2.4 迭代开发的特点 7
1.3 迭代体验 8
1.3.1 站在核心开发团队的角度分析迭代 8
1.3.2 站在客户的角度分析迭代 12
1.3.3 站在管理团队的角度分析迭代 19
1.4 小结 24
第2章 迭代项目的特性 25
2.1 迭代开发:最大化项目成功的机会 25
2.1.1 定义项目成功标准 25
2.1.2 成功和迭代项目 28
2.1.3 成功与迭代:收集项目成功的证据 29
2.2 一个成功的迭代项目的主要特征 30
2.2.1 可验证的、可客观度量的过程 30
2.2.2 避免“特征蠕变” 34
2.2.3 持续增加功能 34
2.2.4 不断提高质量 36
2.2.5 持续降低风险 38
2.2.6 控制变更 39
2.2.7 越来越精确的估算 40
2.2.8 越来越高昂的热情、士气、协作和团队工作 43
2.2.9 致力于一种正确的商业解决方案 44
2.3 小结 45
第3章 控制迭代项目 47
3.1 制约项目的变量:范围、质量、时间和成本 48
3.2 利益相关方:项目成功的真正驱动者 49
3.3 控制单个迭代 50
3.3.1 时间盒 50
3.3.2 范围盒 53
3.3.3 控制迭代指南 55
3.4 从总体上控制项目 55
3.4.1 阶段和里程碑的重要性 57
3.4.2 迭代、阶段和里程碑 58
3.5 统一过程阶段 59
3.5.1 初始阶段 59
3.5.2 精化阶段 59
3.5.3 构建阶段 59
3.5.4 移交阶段 60
3.5.5 阶段和里程碑的可选视图 60
3.5.6 对统一过程生命周期的常见误解 63
3.6 客观度量成果:在项目生命周期内控制迭代 65
3.7 度量和迭代:项目的反馈控制 65
3.7.1 度量和阶段 66
3.7.2 通过度量控制项目 71
3.8 小结 71
第4章 为迭代项目管理做好准备 73
4.1 交付价值:成功的关键之处 74
4.1.1 迭代专注于交付价值 74
4.1.2 用例:统一迭代开发方法 75
4.1.3 期望成果、风险、场景和迭代规划 76
4.2 迭代项目的团队建设 78
4.2.1 团队技能和态度 78
4.2.2 领导团队 79
4.2.3 架构的职责:奠定一个坚实的基础 81
4.2.4 与扩展团队一起工作 82
4.2.5 迭代态度和价值观 83
4.3 改变考虑规划的方式 84
4.3.1 传统规划理念 84
4.3.2 为什么将传统的规划理念应用到软件中是错误的 85
4.3.3 渐进规划理念 87
4.3.4 比较两种方法 87
4.3.5 成功的迭代项目经理的七个习惯 89
4.4 小结 90
第Ⅱ部分 规划和管理一个迭代项目 93
第5章 采用分层方法规划和管理迭代项目 93
5.1 管理层次 94
5.1.1 项目群管理层 95
5.1.2 总体项目管理层 95
5.1.3 开发层 96
5.1.4 迭代层 96
5.1.5 各层次的职责 96
5.2 贯穿层次进行规划 97
5.2.1 定位统一过程生命周期 98
5.2.2 计划和里程碑分层 99
5.2.3 定位其他重要的管理工件 104
5.3 分配管理职责 105
5.3.1 重要管理角色 105
5.3.2 分配管理职责 107
5.3.3 以一个综合管理团队的方式工作 109
5.4 层次化管理 109
5.4.1 层次化容忍限度 110
5.4.2 层次化估算 111
5.4.3 监测和控制 113
5.5 小结 116
第6章 整体项目规划 119
6.1 计划演变和发布 120
6.1.1 在多个演变之间平衡风险 121
6.1.2 处理连续的演变 122
6.1.3 规划多个演变 123
6.1.4 影响演变数量的因素 124
6.1.5 整体项目计划的组成 125
6.1.6 整体项目计划的形式 126
6.2 生命周期计划的原则 126
6.3 将原理应用于整体项目计划 130
6.3.1 原理1:了解期望的结果 131
6.3.2 原理2:识别和评估风险 132
6.3.3 原理3:确定管理策略 133
6.3.4 原理4:创建基于成果的路线图 134
6.3.5 原理5:了解解决方案及其作用范围 135
6.3.6 原理6:评估和预估要完成的工作 136
6.3.7 原理7:针对项目计划的保证约定 137
6.3.8 原理8:协调执行计划 140
6.3.9 原理9:迭代地演化和质疑各项计划 142
6.4 小结 143
第7章 演变和阶段规划 145
7.1 演变中执行的操作 145
7.1.1 在各个开发阶段之间平衡宽度和深度 146
7.1.2 生成的发布版类型因开发阶段而异 147
7.1.3 跨越开发阶段的工作和时间安排 148
7.1.4 迭代持续时间和频率 150
7.1.5 增加迭代和延长开发阶段的推动力 152
7.1.6 遵守时间表 153
7.2 规划演变 154
7.2.1 逐步推进演变计划 154
7.2.2 演变迭代模式 155
7.2.3 逐步演化演变计划 161
7.3 使用规程和工件进行工作 163
7.4 估算和工作分解结构 167
7.4.1 估算工作量 168
7.4.2 配备员工级别和技能集合 169
7.4.3 改写和修订估算及计划 171
7.5 小结 171
第8章 迭代规划 173
8.1 认同迭代计划 174
8.1.1 评估项目风险当前的状态 174
8.1.2 认同迭代的范围 176
8.1.3 认同对迭代的评价标准 182
8.1.4 将所有工作汇集成一个简单的计划 184
8.2 计划迭代的执行 185
8.2.1 认同采取的办法 186
8.2.2 定义迭代里程碑 187
8.2.3 认同工作分配 188
8.2.4 认同评估发生的时间 189
8.2.5 将细节作为迭代计划的部分呈献 190
8.3 迭代模式 190
8.3.1 初始阶段的迭代 190
8.3.2 精化阶段的迭代 192
8.3.3 构建阶段的迭代 193
8.3.4 移交阶段的迭代 195
8.3.5 使用迭代规划模式 196
8.4 执行迭代计划 196
8.4.1 规划迭代 197
8.4.2 领导团队 197
8.4.3 保护团队 197
8.4.4 调整计划 198
8.4.5 监控和评估迭代 198
8.5 小结 199
第9章 迭代、阶段和项目评估 201
9.1 评估迭代 202
9.1.1 随时进行评估 202
9.1.2 评估过程 204
9.1.3 从不同的角度进行评估 207
9.1.4 规划迭代评估 210
9.2 迭代总结 211
9.2.1 度量与分析 211
9.2.2 进行迭代验收评审并记录迭代的结果 215
9.2.3 常见的迭代问题 217
9.2.4 按照迭代评估结果行事 219
9.3 对阶段进行评估 220
9.3.1 阶段评估过程 221
9.3.2 规划阶段评估 222
9.3.3 评估初始阶段 223
9.3.4 评估精化阶段 224
9.3.5 评估构建阶段 225
9.3.6 评估移交阶段 226
9.3.7 总结阶段 227
9.4 项目评估 228
9.4.1 项目评估过程 228
9.4.2 处理例外 229
9.4.3 提供额外管理控制点 229
9.4.4 项目后评审 229
9.4.5 审查整个项目 230
9.5 小结 231
第10章 管理迭代项目的可伸缩方法 233
10.1 管理小型项目 233
10.2 小型项目的含义 235
10.3 扩展项目 236
10.3.1 “核心架构团队”模式 236
10.3.2 “核心项目”模式 238
10.3.3 “控制项目”模式 239
10.4 交付渐增的业务价值 244
10.4.1 分阶段交付商业价值 245
10.4.2 匹配阶段和演变 246
10.4.3 处理顺序和并行演变 248
10.4.4 评估阶段 249
10.5 项目和项目群(program) 250
10.5.1 使用阶段组织计划 251
10.5.2 架构的重要角色 253
10.6 小结 254
第11章 开始实践迭代式项目管理 255
11.1 着手开始第一个迭代式项目 255
11.1.1 为什么要进行迭代 255
11.1.2 引入迭代实践时潜在的壁垒 256
11.1.3 对于转变目标的沟通 258
11.1.4 决定转变的步子 259
11.1.5 应对怀疑论 259
11.1.6 只以迭代开发开始 260
11.1.7 迭代项目的试水 261
11.1.8 继续前进 262
11.2 迭代地引入迭代式过程 263
11.2.1 理解从哪里开始 263
11.2.2 迭代地改进实践 264
11.2.3 通过实践学习 267
11.2.4 教练的职责 268
11.2.5 使用迭代计划为转变提供路线图 268
11.3 小结 269
第Ⅲ部分 附录 273
附录A 用例驱动的开发入门简介 273
附录B 大纲、模板和清单 287
附录C 示例 321