快速开发(纪念版)

快速开发(纪念版)
作 者: 史蒂夫·麦康奈尔
出版社: 清华大学出版社
丛编项:
版权说明: 本书为出版图书,暂不支持在线阅读,请支持正版图书
标 签: 暂缺
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  史蒂夫·麦康奈尔(Steve McConnell)与比尔·盖茨和Linux之父林纳斯·托瓦兹齐名《软件开发》杂志两届技术类图书震撼大奖得主《软件开发》杂志两届生产力效率大奖得主华盛顿西雅图大学校友会专业成就奖 IEEE计算机学会金牌核心奖章得主《普吉特商业杂志》杰出青年人物奖 硅谷工程领导力峰会常年演讲嘉宾

内容简介

进度失控,几乎是每一个软件开发项目挥之不去的噩梦。如何从容赶急,如何通过正确的开发策略和原则,避免典型错误,有效地进行风险管理,从多个方面贯彻执行快速软件开发,都可以从本书中找到答案。《快速开发(纪念版)》借助于实际案例和数据,阐述了快速软件开发方法的要领和精髓。 《快速开发(纪念版)》前两部分描述快速开发的策略和理念,其中的案例讨论有助于读者清楚地领略到策略和理念在实践中的作用。第Ⅲ部分则由27个快速开发实践构成,对于技术领导、程序员和项目经理具有重要的参考和指导意义。

图书目录

第I 部分 有效开发

第1 章 欢迎学习快速开发 3

1.1 什么是快速开发 3

1.2 实现快速开发 4

第2 章 快速开发策略 7

2.1 快速开发的总体策略 10

2.2 开发速度的四个维度 13

2.2.1  人员 14

2.2.2 过程 16

2.2.3 产品 18

2.2.4 技术 19

2.2.5 协同 20

2.3 快速开发的一般分类 20

2.3.1 有效开发 20

2.3.2 侧重于进度的有效开发 22

2.3.3 全面快速开发 22

2.4 哪一个维度更重要 23

2.5 快速开发的权衡策略 24

深入阅读 29

第3 章 典型错误 31

3.1 典型错误案例研究 31

3.2 错误对开发进度的影响 38

3.3 典型错误一览 40

3.3.1 人员 41

3.3.2 过程 45

3.3.3 产品 48

3.3.4 技术 49

3.4 逃离吉利根岛 50

第4 章 软件开发的基本原则 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 评估损失发生的概率 89

5.3.4 整个项目的延期和缓冲 89

5.4 风险优先级 90

5.5 风险控制 91

5.5.1 风险管理计划 92

5.5.2 风险化解 92

5.5.3 风险监控 95

5.6 风险、高风险和冒险 97

深入阅读 100

第Ⅱ部分 快速开发

第6 章 快速开发中的核心问题 103

6.1 一个标准是否适合所有情况 103

6.2 你需要什么样的开发方法 105

6.2.1 进度计划有严格限制的产品 105

6.2.2 表面上的快速开发 106

6.2.3 你是否真正需要全力开发 109

6.3 按时完成的可能性 110

6.4 感知与现实 113

6.4.1 不切实际的用户期望 114

6.4.2 克服慢速开发的感觉 115

6.5 时间都去哪儿了 115

6.5.1 典型的观点 115

6.5.2 可以改进的问题 116

6.6 开发速度的平衡 119

6.6.1 进度、费用和产品的平衡 119

6.6.2 质量的权衡 120

6.6.3 个人效率的权衡 121

6.7 典型的进度改进模式 121

6.8 向快速开发前进 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 面向开发工具的设计 142

7.10 商品软件 144

7.11 为项目选择快速的生命周期 144

深入阅读 150

第8 章 估算 152

8.1 软件估算的故事 154

8.1.1 软件和建筑 154

8.1.2 软件开发是一个改进的过程 155

8.1.3 可能细化的数量 156

8.1.4 估算与控制 158

8.1.5 合作 159

8.1.6 估算实例概要 161

8.2 估算步骤概述 162

8.3 规模估算 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 战胜进度压力 205

9.2.1 原则谈判法 206

9.2.2 将人和问题分开 207

9.2.3 关注于共同利益,不要过分坚持立场 208

9.2.4 提出对双方均有利的备选方案 209

9.2.5 坚持客观标准 211

深入阅读 215

第10 章 面向客户的开发 217

10.1 客户对于快速开发的重要性 220

10.1.1 提高效率 220

10.1.2 减少返工 221

10.1.3 降低风险 221

10.1.4 消除矛盾 221

10.2 面向客户的开发方法 222

10.2.1 规划 222

10.2.2 需求分析 223

10.2.3 设计 225

10.2.4 实现 226

10.3 合理控制客户的期望值 226

深入阅读 230

第11 章 激励机制 231

11.1 开发人员的典型激励 233

11.2 重要的5 个激励因素 236

11.2.1 成就感 236

11.2.2 发展机遇 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 对业绩的评价 245

11.4 士气杀手 245

11.4.1 保健因素 246

11.4.2 其他士气杀手 247

深入阅读 252

第12 章 团队合作 254

12.1 软件项目中的团队合作 256

12.2 团队合作对快速开发的重要性 257

12.2.1 团队生产率的变化 257

12.2.2 凝聚力和业绩 258

12.3 创建高绩效团队 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 团队规模较小 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 何种类型的团队适用于快速开发 282

13.2 团队模式 283

13.2.1 业务团队 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 专业运动员团队 288

13.2.8 戏剧团队 289

13.2.9 大型团队 291

13.3 管理者和技术主管 292

深入阅读 295

第14 章 功能限定 297

14.1 项目早期:功能的简化 299

14.1.1 规格说明小化 299

14.1.2 需求筛选 306

14.1.3 版本化开发 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 快速开发中生产率工具的作用 324

15.1.1 特定应用领域 325

15.1.2 生产率工具的局限性 326

15.1.3 快速开发项目中生产率工具的终极作用 327

15.2 生产率工具的战略 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 章 联合应用程序开发 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 章 高效开发环境 469

30.1 使用高效开发环境 471

30.2 管理高效开发环境中的风险 473

30.3 高效开发环境的附带效果 474

30.4 高效开发环境与其他实践的相互关系 475

30.5 高效开发环境的底线 475

30.6 成功使用高效开发环境的关键 476

深入阅读 476

第31 章 快速开发语言 477

31.1 使用快速开发语言 481

31.2 管理快速开发语言中的风险 481

31.3 快速开发语言的附带效果 483

31.4 快速开发语言与其他实践的相互关系 483

31.5 快速开发语言的底线 484

31.6 成功使用快速开发语言的关键 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 章  限时开发 533

39.1 使用限时开发 535

39.2 管理限时开发中的风险 538

39.3 限时开发的附带效果 539

39.4 限时开发与其他实践的相互关系 539

39.5 限时开发的底线 540

39.6 成功使用限时开发的关键 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