第I 部分 有效開發(fā)
第1 章 歡迎學習快速開發(fā) 3
1.1 什么是快速開發(fā) 3
1.2 實現快速開發(fā) 4
第2 章 快速開發(fā)策略 7
2.1 快速開發(fā)的總體策略 10
2.2 開發(fā)速度的四個維度 13
2.2.1 人員 14
2.2.2 過程 16
2.2.3 產品 18
2.2.4 技術 19
2.2.5 協同 20
2.3 快速開發(fā)的一般分類 20
2.3.1 有效開發(fā) 20
2.3.2 側重于進度的有效開發(fā) 22
2.3.3 全面快速開發(fā) 22
2.4 哪一個維度更重要 23
2.5 快速開發(fā)的權衡策略 24
深入閱讀 29
第3 章 典型錯誤 31
3.1 典型錯誤案例研究 31
3.2 錯誤對開發(fā)進度的影響 38
3.3 典型錯誤一覽 40
3.3.1 人員 41
3.3.2 過程 45
3.3.3 產品 48
3.3.4 技術 49
3.4 逃離吉利根島 50
第4 章 軟件開發(fā)的基本原則 52
4.1 管理原則 56
4.1.1 項目估算和進程安排 56
4.1.2 計劃編制 56
4.1.3 跟蹤 57
4.1.4 度量 58
深入閱讀 59
4.2 技術的基本原則 60
4.2.1 需求管理 62
4.2.2 設計 63
4.2.3 構建 64
4.2.4 軟件配置管理 65
深入閱讀 66
4.3 質量保證的基本原則 68
4.3.1 易錯模塊 71
4.3.2 測試 72
4.3.3 技術審查 72
深入閱讀 74
4.4 按照指導來做 76
深入閱讀 77
第5 章 風險管理 78
5.1 風險管理要素 81
5.1.1 風險評估 82
5.1.2 風險控制 82
5.2 風險識別 82
5.2.1 常見的進度計劃風險 83
5.2.2 進度計劃風險的完整列表 83
5.3 風險分析 87
5.3.1 風險暴露量 87
5.3.2 估計損失的大小 88
5.3.3 評估損失發(fā)生的概率 89
5.3.4 整個項目的延期和緩沖 89
5.4 風險優(yōu)先級 90
5.5 風險控制 91
5.5.1 風險管理計劃 92
5.5.2 風險化解 92
5.5.3 風險監(jiān)控 95
5.6 風險、高風險和冒險 97
深入閱讀 100
第Ⅱ部分 快速開發(fā)
第6 章 快速開發(fā)中的核心問題 103
6.1 一個標準是否適合所有情況 103
6.2 你需要什么樣的開發(fā)方法 105
6.2.1 進度計劃有嚴格限制的產品 105
6.2.2 表面上的快速開發(fā) 106
6.2.3 你是否真正需要全力開發(fā) 109
6.3 按時完成的可能性 110
6.4 感知與現實 113
6.4.1 不切實際的用戶期望 114
6.4.2 克服慢速開發(fā)的感覺 115
6.5 時間都去哪兒了 115
6.5.1 典型的觀點 115
6.5.2 可以改進的問題 116
6.6 開發(fā)速度的平衡 119
6.6.1 進度、費用和產品的平衡 119
6.6.2 質量的權衡 120
6.6.3 個人效率的權衡 121
6.7 典型的進度改進模式 121
6.8 向快速開發(fā)前進 123
深入閱讀 124
第7 章 生命周期計劃 125
7.1 純瀑布模型 128
7.2 編碼修正模型 131
7.3 螺旋模型 132
7.4 經過修改的瀑布模型 134
7.4.1 生魚片模型 135
7.4.2 具有子項目的瀑布模型 136
7.4.3 能夠降低風險的瀑布模型 137
7.5 漸進原型 138
7.6 階段性交付 139
7.7 面向進度的設計 140
7.8 漸進交付 141
7.9 面向開發(fā)工具的設計 142
7.10 商品軟件 144
7.11 為項目選擇快速的生命周期 144
深入閱讀 150
第8 章 估算 152
8.1 軟件估算的故事 154
8.1.1 軟件和建筑 154
8.1.2 軟件開發(fā)是一個改進的過程 155
8.1.3 可能細化的數量 156
8.1.4 估算與控制 158
8.1.5 合作 159
8.1.6 估算實例概要 161
8.2 估算步驟概述 162
8.3 規(guī)模估算 162
8.3.1 功能點估算 163
8.3.2 估算技巧 165
8.3.3 估算的表達方式 167
8.4 工作量估算 170
8.5 進度估算 170
8.5.1 基于承諾的進度安排 171
8.5.2 一階估算實踐 172
8.6 大致的進度估算 173
8.6.1 背景 173
8.6.2 可能的短進度 175
8.6.3 有效進度 180
8.6.4 普通進度 182
8.6.5 對大致的進度首先應怎么辦 184
8.7 估算修正 184
深入閱讀 189
第9 章 進度計劃 191
9.1 過分樂觀的進度計劃 192
9.1.1 一個關于過分樂觀的進度計劃的實例 193
9.1.2 產生過分樂觀的進度計劃的根源 195
9.1.3 過分樂觀的進度計劃產生的不良后果 196
9.1.4 超負荷的進度壓力 200
9.1.5 底線 203
9.2 戰(zhàn)勝進度壓力 205
9.2.1 原則談判法 206
9.2.2 將人和問題分開 207
9.2.3 關注于共同利益,不要過分堅持立場 208
9.2.4 提出對雙方均有利的備選方案 209
9.2.5 堅持客觀標準 211
深入閱讀 215
第10 章 面向客戶的開發(fā) 217
10.1 客戶對于快速開發(fā)的重要性 220
10.1.1 提高效率 220
10.1.2 減少返工 221
10.1.3 降低風險 221
10.1.4 消除矛盾 221
10.2 面向客戶的開發(fā)方法 222
10.2.1 規(guī)劃 222
10.2.2 需求分析 223
10.2.3 設計 225
10.2.4 實現 226
10.3 合理控制客戶的期望值 226
深入閱讀 230
第11 章 激勵機制 231
11.1 開發(fā)人員的典型激勵 233
11.2 重要的5 個激勵因素 236
11.2.1 成就感 236
11.2.2 發(fā)展機遇 238
11.2.3 工作樂趣 239
11.2.4 個人生活 241
11.2.5 成為技術主管的機會 241
11.3 利用其他激勵因素 242
11.3.1 獎賞和鼓勵 242
11.3.2 試驗性項目 244
11.3.3 對業(yè)績的評價 245
11.4 士氣殺手 245
11.4.1 保健因素 246
11.4.2 其他士氣殺手 247
深入閱讀 252
第12 章 團隊合作 254
12.1 軟件項目中的團隊合作 256
12.2 團隊合作對快速開發(fā)的重要性 257
12.2.1 團隊生產率的變化 257
12.2.2 凝聚力和業(yè)績 258
12.3 創(chuàng)建高績效團隊 259
12.3.1 共同的、可提升的愿景或目標 260
12.3.2 團隊成員的認同感 261
12.3.3 結果驅動的結構 262
12.3.4 勝任的團隊成員 263
12.3.5 對團隊的承諾 265
12.3.6 相互信任 265
12.3.7 團隊成員間相互依賴 266
12.3.8 有效的溝通 266
12.3.9 自主意識 267
12.3.10 授權意識 267
12.3.11 團隊規(guī)模較小 268
12.3.12 高層次的樂趣 268
12.3.13 如何管理高績效團隊 268
12.4 團隊為什么會失敗 269
12.5 長期的團隊建設 273
12.6 團隊合作指導方針總結 274
深入閱讀 275
第13 章 團隊結構 277
13.1 團隊結構應該考慮的因素 279
13.1.1 團隊的種類 280
13.1.2 其他團隊設計特征 281
13.1.3 何種類型的團隊適用于快速開發(fā) 282
13.2 團隊模式 283
13.2.1 業(yè)務團隊 284
13.2.2 主程序員團隊 284
13.2.3 科研項目團隊 286
13.2.4 特征團隊 286
13.2.5 搜索救援團隊 287
13.2.6 SWAT 團隊 287
13.2.7 專業(yè)運動員團隊 288
13.2.8 戲劇團隊 289
13.2.9 大型團隊 291
13.3 管理者和技術主管 292
深入閱讀 295
第14 章 功能限定 297
14.1 項目早期:功能的簡化 299
14.1.1 規(guī)格說明小化 299
14.1.2 需求篩選 306
14.1.3 版本化開發(fā) 307
14.2 項目中期:功能蔓延的控制 308
14.2.1 變更的根源 308
14.2.2 變更的影響 312
14.2.3 完全停止變更的智慧 313
14.2.4 變更控制的方法 314
14.3 項目后期:功能剪切 318
深入閱讀 320
第15 章 生產率工具 321
15.1 快速開發(fā)中生產率工具的作用 324
15.1.1 特定應用領域 325
15.1.2 生產率工具的局限性 326
15.1.3 快速開發(fā)項目中生產率工具的終極作用 327
15.2 生產率工具的戰(zhàn)略 328
15.3 生產率工具的獲取 329
15.3.1 獲取計劃 330
15.3.2 遴選標準 331
15.3.3 承諾 334
15.4 生產率工具的使用 334
15.4.1 何時使用 334
15.4.2 培訓的重要性 335
15.4.3 進度縮減的期望值 336
15.5 銀彈綜合征 339
15.5.1 識別銀彈 341
15.5.2 忍辱負重 343
深入閱讀 345
第16 章 項目修復 347
16.1 一般的修復方案 349
16.2 修復計劃 351
16.2.1 步 351
16.2.2 人員 352
16.2.3 過程 355
16.2.4 產品 358
16.2.5 找準時機 361
深入閱讀 364
第Ⅲ部分 實踐
第17 章 變更委員會 380
第18 章 每日構建和冒煙測試 381
18.1 使用每日構建和冒煙測試 383
18.2 管理每日構建和冒煙測試中的風險 388
18.3 每日構建和冒煙測試的附帶效果 389
18.4 每日構建和冒煙測試與其他實踐的相互關系 389
18.5 每日構建和冒煙測試的底線 390
18.6 成功使用每日構建和冒煙測試的關鍵 390
深入閱讀 390
第19 章 變更設計 391
19.1 使用面向變更的設計 392
19.2 管理變更設計帶來的風險 397
19.3 變更設計的附帶效果 398
19.4 變更設計與其他實踐的相互關系 398
19.5 變更設計的底線 398
19.6 成功使用變更設計的關鍵 398
深入閱讀 399
第20 章 漸進交付 400
20.1 使用漸進交付 402
20.2 管理漸進交付中的風險 404
20.3 漸進交付的附帶效果 405
20.4 漸進交付與其他實踐的相互關系 406
20.5 漸進交付的底線 406
20.6 成功使用漸進交付的關鍵 406
深入閱讀 407
第21 章 漸進原型 408
21.1 使用漸進原型 409
21.2 管理漸進原型中的風險 410
21.3 漸進原型的附帶效果 415
21.4 漸進原型與其他實踐的相互關系 415
21.5 漸進原型的底線 416
21.6 成功使用漸進原型的關鍵 416
深入閱讀 417
第22 章 目標設定 418
第23 章 檢查 419
第24 章 聯合應用程序開發(fā) 420
24.1 使用JAD 421
24.2 管理JAD 中的風險 430
24.3 JAD 的附帶效果 431
24.4 JAD 與其他實踐的相互關系 431
24.5 JAD 方法的底線 432
24.6 成功使用JAD 的關鍵 432
深入閱讀 433
第25 章 生命周期模型的選擇 434
第26 章 度量 435
26.1 使用度量 436
26.2 管理度量中的風險 444
26.3 度量的附帶效果 445
26.4 度量與其他實踐的相互關系 445
26.5 度量的底線 445
26.6 成功使用度量的關鍵 446
深入閱讀 446
第27 章 小型里程碑 448
27.1 使用小型里程碑 451
27.2 管理小型里程碑中的風險 454
27.3 小型里程碑的附帶效果 454
27.4 小型里程碑與其他實踐的相互關系 455
27.5 小型里程碑的底線 455
27.6 成功使用小型里程碑的關鍵 456
深入閱讀 456
第28 章 外包 457
28.1 使用外包 458
28.2 管理外包中的風險 464
28.3 外包的附帶效果 466
28.4 外包與其他實踐的相互關系 466
28.5 外包的底線 466
28.6 成功使用外包的關鍵 467
深入閱讀 467
第29 章 原則談判法 468
第30 章 高效開發(fā)環(huán)境 469
30.1 使用高效開發(fā)環(huán)境 471
30.2 管理高效開發(fā)環(huán)境中的風險 473
30.3 高效開發(fā)環(huán)境的附帶效果 474
30.4 高效開發(fā)環(huán)境與其他實踐的相互關系 475
30.5 高效開發(fā)環(huán)境的底線 475
30.6 成功使用高效開發(fā)環(huán)境的關鍵 476
深入閱讀 476
第31 章 快速開發(fā)語言 477
31.1 使用快速開發(fā)語言 481
31.2 管理快速開發(fā)語言中的風險 481
31.3 快速開發(fā)語言的附帶效果 483
31.4 快速開發(fā)語言與其他實踐的相互關系 483
31.5 快速開發(fā)語言的底線 484
31.6 成功使用快速開發(fā)語言的關鍵 484
深入閱讀 485
第32 章 需求提煉 486
第33 章 重用 487
33.1 使用重用 488
33.2 管理重用中的風險 495
33.3 重用的附帶效果 496
33.4 重用與其他實踐的相互關系 497
33.5 重用的底線 497
33.6 成功使用重用的關鍵 498
深入閱讀 498
第34 章 簽約 499
34.1 使用簽約 500
34.2 管理簽約中的風險 503
34.3 簽約的附帶效果 505
34.4 簽約與其他實踐的相互關系 505
34.5 簽約的底線 505
34.6 成功使用簽約的關鍵 505
深入閱讀 506
第35 章 螺旋型生命周期模型 507
第36 章 階段性交付 508
36.1 使用階段性交付 511
36.2 管理階段性交付中的風險 514
36.3 階段性交付的附帶效果 515
36.4 階段性交付與其他實踐的相互關系 516
36.5 階段性交付的底線 517
36.6 成功使用階段性交付的關鍵 517
深入閱讀 517
第37 章 W 理論管理 518
37.1 使用W 理論管理 520
37.2 管理W 理論管理中的風險 525
37.3 W 理論管理的附帶效果 526
37.4 W 理論管理與其他實踐的相互關系 526
37.5 W 理論管理的底線 527
37.6 成功使用W 理論管理的關鍵 527
深入閱讀 527
第38 章 舍棄型原型法 528
38.1 使用舍棄型原型法 529
38.2 管理舍棄型原型法中的風險 530
38.3 舍棄型原型法的附帶效果 531
38.4 舍棄型原型法與其他實踐的相互關系 531
38.5 舍棄型原型法的底線 531
38.6 成功使用舍棄型原型法的關鍵 532
深入閱讀 532
第39 章 限時開發(fā) 533
39.1 使用限時開發(fā) 535
39.2 管理限時開發(fā)中的風險 538
39.3 限時開發(fā)的附帶效果 539
39.4 限時開發(fā)與其他實踐的相互關系 539
39.5 限時開發(fā)的底線 540
39.6 成功使用限時開發(fā)的關鍵 540
深入閱讀 540
第40 章 工具組 541
第41 章 前十大風險清單 542
第42 章 構建用戶界面原型 543
42.1 使用用戶界面原型 545
42.2 管理用戶界面原型中的風險 548
42.3 用戶界面原型的附帶效果 549
42.4 用戶界面原型與其他實踐的相互關系 549
42.5 用戶界面原型的底線 550
42.6 成功使用用戶界面原型的關鍵 550
深入閱讀 550
第43 章 自愿加班 551
43.1 使用自愿加班 552
43.2 管理自愿加班中的風險 557
43.3 自愿加班的附帶效果 558
43.4 自愿加班與其他實踐的相互關系 558
43.5 自愿加班的底線 558
43.6 成功使用自愿加班的關鍵 559
深入閱讀 559
參考文獻 561