书籍详情
术以载道:软件过程改进实践指南
作者:任甲林 著
出版社:人民邮电出版社
出版时间:2014-04-01
ISBN:9787115339713
定价:¥69.00
购买这本书可以去
内容简介
软件过程改进(Software Process Improvement,SPI)是指帮助软件企业建立过程管理、识别改进点、持续优化过程体系。CMMI表示Capabi lity Maturity Mode Integration(能力成热度集成模型),提供了一个指导企业实施过程改进的框架,CMMI是实现过程改进标的一种有效手段和方法。《术以载道——软件过程改进实践指南》是作者软件工程经验、过程改进经验与CMMI咨询经验的总结,从实践者的角度出发,涉及到了实施CMMI的方方面面,包括CMMI实施精要、敏捷方法实践、过程体系建立、软件项目的策划、跟踪和控制、需求工程、软件设计与实现、测试和同行评审、质量保证和配置管理、量化项目管理和人员管理等重要话题。《术以载道——软件过程改进实践指南》作者具有20年的软件工程经验和13年的质量管理改进经验,创立了麦哲思科技咨询公司,以其实效咨询的风格,在CMMI咨询业内具有很高的知名度。《术以载道——软件过程改进实践指南》记录了作者工作中的所做、所思、所见与所闻,给出了70多个实际案例,对于从事软件过程改进、软件企业管理咨询、软件项目管理的读者具有较高的阅读和参考价值。
作者简介
任甲林,山东大学计算机科学专业工学硕士, Scrum Master、CMMI主任评估师、国际通用软件度量协会国际咨询委员会(COSMIC IAC)成员。。从1993年到2013年,他积累了20年软件工程经验。从程序员转变为研发总监,参与或管理过50多个项目。2005年开始从事软件过程改进咨询工作,为接近100家客户提供过咨询或培训服务。2007年创立麦哲思科技(北京)有限公司, 2008年至2011年度,他连续三年被评为“中国CMMI咨询行业年度人物”。
目录
目 录
第1章 CMMI实施精要 1
1.1 对CMMI的基本认识 1
1.1.1 CMMI是什么 1
1.1.2 CMMI里有什么 3
1.1.3 CMMI的构件 6
1.1.4 CMMI的表示方法 9
1.1.5 CMMI成熟度等级的比较 11
1.1.6 如何学习CMMI 16
1.2 EPG的工作指南 19
1.2.1 EPG成员选择四要素 20
1.2.2 EPG的工作指南 21
1.2.3 EPG如何应对企业政治 22
1.2.4 EPG常犯的10种错误 23
1.2.5 识别过程改进点的9种手段 27
1.3 如何实施CMMI 29
1.3.1 实施CMMI时必须解决的7个认识问题 29
1.3.2 软件过程改进的11条成功策略 35
1.3.3 CMMI实施的4个重大失误 46
1.3.4 CMMI成功的根本原因是什么 49
1.3.5 Infosys公司过程改进的18条经验 50
1.4 CMMI实施的难点与对策 51
1.4.1 CMMI 2级的难点 51
1.4.2 CMMI 2级难点之对策 53
1.4.3 二级的实效体现在哪里 54
1.4.4 CMMI 3级的难点 57
1.4.5 CMMI 4级的难点 58
1.4.6 为什么难以达到高成熟度 59
第2章 敏捷方法实践精要 61
2.1 Scrum敏捷项目管理 62
2.1.1 Scrum 的3个角色 63
2.1.2 Scrum的3个文档 67
2.1.3 4种会议 73
2.1.4 如何开每日站立会议 84
2.2 XP极限编程的12条实践 87
2.3 时间箱管理 89
2.4 策划扑克法 90
2.5 敏捷度量 91
2.6 关于敏捷方法的典型问题 92
2.6.1 什么是敏捷方法的“神” 92
2.6.2 如何建立团队文化 93
2.6.3 如何运用敏捷实践解决其他问题 94
2.6.4 如何理解平稳的开发速度 94
2.7 敏捷始于客户 95
2.8 软件工程7原则与敏捷实践 95
第3章 如何建立过程体系 98
3.1 过程的基本概念 98
3.2 过程体系的建立基础 101
3.3 建立过程体系时的注意事项 102
3.4 过程体系建立的步骤 103
3.5 定义公司的过程大纲 103
3.6 确定项目的类型 104
3.7 确定描述规范 105
3.7.1 ETVX过程描述模式 106
3.7.2 过程描述的12个属性 109
3.8 定义质量方针 111
3.8.1 先定义方针,再定义过程 111
3.8.2 定义方针的原则 112
3.9 定义过程 114
3.10 如何定义文档模板 116
3.10.1 模板定义的要点 116
3.10.2 控制模板数量的基本原则 116
3.11 如何定义检查单 117
3.12 如何定义裁剪指南 119
3.13 如何执行过程体系的评审 120
3.14 常被忽略的过程 121
3.15 小型项目的管理策略 122
3.16 维护类项目的管理策略 125
3.17 如何将过程敏捷化 126
第4章 项目策划 129
4.1 项目策划的9个基本要点 129
4.2 过程设计的4个层次 132
4.3 软件项目的目标管理 133
4.4 过程体系的裁剪步骤 134
4.5 WBS分解指南 137
4.5.1 WBS的基本概念 137
4.5.2 WBS分解方法 137
4.5.3 表示方法 139
4.5.4 分解方式 140
4.5.5 分解原则 143
4.5.6 分解步骤 145
4.5.7 WBS中容易遗忘的任务 147
4.6 白话软件估计 147
4.7 做好软件估计的六个原则 149
4.8 为什么要做规模估计 151
4.9 COSMIC-FFP规模估算方法 152
4.9.1 功能点度量方法简介 152
4.9.2 COSMIC-FFP方法的基本原理 153
4.9.3 COSMIC-FFP的估算过程 154
4.9.4 COSMIC-FFP中的基本概念 156
4.9.5 COSMIC-FFP的规则 158
4.9.6 COSMIC-FFP的实践综述 163
4.10 Pert Sizing估算方法 163
4.11 宽带Delphi估计方法指南 165
4.12 软件项目工作量估算指南 170
4.12.1 估算时机 170
4.12.2 可能的估算输入 170
4.12.3 估算对象 171
4.12.4 估算方法 171
4.12.5 生产率的含义 173
4.12.6 多种场景下的估算步骤 174
4.13 风险策划 180
4.13.1 风险来源与风险分类 180
4.13.2 如何识别风险 182
4.13.3 风险计划与跟踪 188
4.14 项目计划评审的检查点 189
4.15 项目计划书中的内容 190
第5章 项目跟踪与控制 193
5.1 软件项目管理的实战原则 193
5.2 为什么要记录日志 198
5.3 如何保证日志的准确性 199
5.4 如何开会 200
5.5 如何开项目组的周例会 202
5.5.1 周例会准备活动 202
5.5.2 召开周例会活动 203
5.5.3 编写与发布会议纪要 203
5.6 里程碑评审指南 204
5.7 如何做项目总结 206
5.8 组织级的项目管理例会的汇报要点 207
5.9 高层经理监控项目的11种思维模式 208
5.10 挣值管理 211
第6章 需求工程 213
6.1 需求获取方法 213
6.1.1 需求获取原则 213
6.1.2 需求调研的步骤 214
6.1.3 需求获取的重点 217
6.1.4 需求获取的注意事项 218
6.2 需求分析的思维方式 219
6.3 需求描述方法 221
6.3.1 需求必须文档化 221
6.3.2 信息管理系统的需求描述方法 222
6.3.3 需求与设计的界线 232
6.3.4 需求文档与设计文档的区别 233
6.4 需求评审 236
6.4.1 软件需求评审之道 236
6.4.2 同行评审培训练习点评 242
6.5 需求管理 243
6.5.1 需求管理的基本原则 243
6.5.2 需求控制组的构成 245
6.5.3 需求变更的深入分析 247
6.5.4 需求跟踪矩阵的常见疑问 249
6.5.5 需求管理过程域的要点 251
6.6 需求工程的12条最佳实践 254
第7章 软件设计与实现 259
7.1 白话软件架构与架构师 259
7.2 设计模式 262
7.2.1 如何学习设计模式 262
7.2.2 3种工厂模式的比较 263
7.2.3 设计模式复杂度排名 264
7.3 设计评审检查单 267
7.4 程序设计风格 268
7.5 代码评审 279
7.5.1 代码评审的意义 279
7.5.2 代码评审常见问题与最佳实践 279
7.5.3 代码评审的检查要点 280
7.5.4 代码评审检查单 282
7.5.5 代码走查改进案例 283
7.6 持续集成环境的构建 285
7.6.1 Java环境下的持续集成平台 285
7.6.2 .Net环境下的持续集成平台 286
7.6.3 C++环境下的持续集成平台 286
7.7 一次典型的重构 287
7.8 改进代码质量 293
第8章 测试与同行评审 295
8.1 质量管理的西药与中药 295
8.2 4种测试层次的比较 296
8.3 集成测试用例的案例 297
8.4 单元测试 298
8.4.1 如何推广单元测试 298
8.4.2 单元测试培训练习总结 302
8.4.3 Checkstyle试用案例 304
8.4.4 测试驱动开发案例 316
8.5 性能测试策略的案例 320
8.6 不可重现缺陷的应对策略 321
8.7 同行评审策略 323
8.8 同行评审的常见问题与对策 324
8.9 如何分析同行评审的度量数据 328
8.10 软件开发的质量红线 331
8.11 产品的内部质量与外部质量 332
第9章 质量保证 334
9.1 质量保证与质量控制的区别 334
9.2 质量保证的价值 336
9.3 质量保证人员与项目经理的质量责任 337
9.4 质量保证人员与过程改进人员的责任融合 337
9.5 质量保证的组织结构形式 338
9.6 质量保证工作的8个原则 339
9.7 质量保证人员的工作内容 340
9.8 质量保证例会的6个问题 341
9.9 如何消除对质量保证的抵触情绪 342
9.10 质量保证人员配备 344
9.11 质量保证人员的知识体系 345
第10章 配置管理 347
10.1 配置管理的基本概念 347
10.2 数据管理与配置管理的区别 348
10.3 如何组建CCB 350
10.4 纳入基线管理的一般原则 351
10.5 配置控制的3个等级 352
10.6 配置管理的三库 354
10.7 配置管理员的职责定义 355
10.8 配置审计的种类与区别 356
第11章 量化项目管理 360
11.1 如何识别度量元 360
11.2 如何设计数据的指示器 365
11.3 如何定义指示器与度量元 368
11.4 度量数据分析的3个层次 370
11.5 过程性能基线 372
11.5.1 什么是过程性能基线 372
11.5.2 应该建立哪些PPB 373
11.5.3 如何建立PPB 373
11.5.4 建立PPB的注意事项 374
11.5.5 证明过程稳定需要的样本个数 376
11.5.6 何时重新计算PPB 377
11.5.7 如何判定PPB的可用性 377
11.5.8 项目级的PPB 377
11.6 控制图在软件管理中的应用 378
11.6.1 控制图的含义 378
11.6.2 什么是“特殊原因” 378
11.6.3 异常点的识别规则 379
11.6.4 异常点的删除方法 380
11.6.5 控制图典型错误案例一 380
11.6.6 控制图典型错误案例二 383
11.7 箱线图在软件管理中的应用 387
11.8 软件过程性能模型 391
11.8.1 什么是过程性能模型 391
11.8.2 如何建立过程性能模型 392
11.8.3 过程性能模型的实例 394
11.8.4 为什么无法建立过程性能模型 396
11.9 为什么建立了性能基线还需要建立性能模型 399
11.10 如何度量项目的进度与进展 401
11.11 TSP中的10个量化法则 401
第12章 CMMI的评估 403
12.1 如何选择参评项目个数 403
12.2 SCAMPI V1.3的证据覆盖规则 406
12.3 评估组员的资质要求 408
12.4 如何准备评估计划 409
12.5 如何执行就绪检查 410
12.6 被访谈人员注意事项 412
12.7 高成熟度评估时常发现的问题 414
12.8 评估之后的CMMI怪相分析 415
第13章 人员管理 420
13.1 软件企业以人为本的16项措施 420
13.2 如何选择与使用项目经理 421
13.3 职业程序员培养之道 424
13.4 职业程序员与业余程序员的区别 429
13.5 程序员敬业精神的具体表现 430
13.6 采用“师徒制”培养新员工 430
13.7 研发人员考核的10项基本原则 432
13.8 以人为本的People CMM 434
后记 440
参考文献 441
第1章 CMMI实施精要 1
1.1 对CMMI的基本认识 1
1.1.1 CMMI是什么 1
1.1.2 CMMI里有什么 3
1.1.3 CMMI的构件 6
1.1.4 CMMI的表示方法 9
1.1.5 CMMI成熟度等级的比较 11
1.1.6 如何学习CMMI 16
1.2 EPG的工作指南 19
1.2.1 EPG成员选择四要素 20
1.2.2 EPG的工作指南 21
1.2.3 EPG如何应对企业政治 22
1.2.4 EPG常犯的10种错误 23
1.2.5 识别过程改进点的9种手段 27
1.3 如何实施CMMI 29
1.3.1 实施CMMI时必须解决的7个认识问题 29
1.3.2 软件过程改进的11条成功策略 35
1.3.3 CMMI实施的4个重大失误 46
1.3.4 CMMI成功的根本原因是什么 49
1.3.5 Infosys公司过程改进的18条经验 50
1.4 CMMI实施的难点与对策 51
1.4.1 CMMI 2级的难点 51
1.4.2 CMMI 2级难点之对策 53
1.4.3 二级的实效体现在哪里 54
1.4.4 CMMI 3级的难点 57
1.4.5 CMMI 4级的难点 58
1.4.6 为什么难以达到高成熟度 59
第2章 敏捷方法实践精要 61
2.1 Scrum敏捷项目管理 62
2.1.1 Scrum 的3个角色 63
2.1.2 Scrum的3个文档 67
2.1.3 4种会议 73
2.1.4 如何开每日站立会议 84
2.2 XP极限编程的12条实践 87
2.3 时间箱管理 89
2.4 策划扑克法 90
2.5 敏捷度量 91
2.6 关于敏捷方法的典型问题 92
2.6.1 什么是敏捷方法的“神” 92
2.6.2 如何建立团队文化 93
2.6.3 如何运用敏捷实践解决其他问题 94
2.6.4 如何理解平稳的开发速度 94
2.7 敏捷始于客户 95
2.8 软件工程7原则与敏捷实践 95
第3章 如何建立过程体系 98
3.1 过程的基本概念 98
3.2 过程体系的建立基础 101
3.3 建立过程体系时的注意事项 102
3.4 过程体系建立的步骤 103
3.5 定义公司的过程大纲 103
3.6 确定项目的类型 104
3.7 确定描述规范 105
3.7.1 ETVX过程描述模式 106
3.7.2 过程描述的12个属性 109
3.8 定义质量方针 111
3.8.1 先定义方针,再定义过程 111
3.8.2 定义方针的原则 112
3.9 定义过程 114
3.10 如何定义文档模板 116
3.10.1 模板定义的要点 116
3.10.2 控制模板数量的基本原则 116
3.11 如何定义检查单 117
3.12 如何定义裁剪指南 119
3.13 如何执行过程体系的评审 120
3.14 常被忽略的过程 121
3.15 小型项目的管理策略 122
3.16 维护类项目的管理策略 125
3.17 如何将过程敏捷化 126
第4章 项目策划 129
4.1 项目策划的9个基本要点 129
4.2 过程设计的4个层次 132
4.3 软件项目的目标管理 133
4.4 过程体系的裁剪步骤 134
4.5 WBS分解指南 137
4.5.1 WBS的基本概念 137
4.5.2 WBS分解方法 137
4.5.3 表示方法 139
4.5.4 分解方式 140
4.5.5 分解原则 143
4.5.6 分解步骤 145
4.5.7 WBS中容易遗忘的任务 147
4.6 白话软件估计 147
4.7 做好软件估计的六个原则 149
4.8 为什么要做规模估计 151
4.9 COSMIC-FFP规模估算方法 152
4.9.1 功能点度量方法简介 152
4.9.2 COSMIC-FFP方法的基本原理 153
4.9.3 COSMIC-FFP的估算过程 154
4.9.4 COSMIC-FFP中的基本概念 156
4.9.5 COSMIC-FFP的规则 158
4.9.6 COSMIC-FFP的实践综述 163
4.10 Pert Sizing估算方法 163
4.11 宽带Delphi估计方法指南 165
4.12 软件项目工作量估算指南 170
4.12.1 估算时机 170
4.12.2 可能的估算输入 170
4.12.3 估算对象 171
4.12.4 估算方法 171
4.12.5 生产率的含义 173
4.12.6 多种场景下的估算步骤 174
4.13 风险策划 180
4.13.1 风险来源与风险分类 180
4.13.2 如何识别风险 182
4.13.3 风险计划与跟踪 188
4.14 项目计划评审的检查点 189
4.15 项目计划书中的内容 190
第5章 项目跟踪与控制 193
5.1 软件项目管理的实战原则 193
5.2 为什么要记录日志 198
5.3 如何保证日志的准确性 199
5.4 如何开会 200
5.5 如何开项目组的周例会 202
5.5.1 周例会准备活动 202
5.5.2 召开周例会活动 203
5.5.3 编写与发布会议纪要 203
5.6 里程碑评审指南 204
5.7 如何做项目总结 206
5.8 组织级的项目管理例会的汇报要点 207
5.9 高层经理监控项目的11种思维模式 208
5.10 挣值管理 211
第6章 需求工程 213
6.1 需求获取方法 213
6.1.1 需求获取原则 213
6.1.2 需求调研的步骤 214
6.1.3 需求获取的重点 217
6.1.4 需求获取的注意事项 218
6.2 需求分析的思维方式 219
6.3 需求描述方法 221
6.3.1 需求必须文档化 221
6.3.2 信息管理系统的需求描述方法 222
6.3.3 需求与设计的界线 232
6.3.4 需求文档与设计文档的区别 233
6.4 需求评审 236
6.4.1 软件需求评审之道 236
6.4.2 同行评审培训练习点评 242
6.5 需求管理 243
6.5.1 需求管理的基本原则 243
6.5.2 需求控制组的构成 245
6.5.3 需求变更的深入分析 247
6.5.4 需求跟踪矩阵的常见疑问 249
6.5.5 需求管理过程域的要点 251
6.6 需求工程的12条最佳实践 254
第7章 软件设计与实现 259
7.1 白话软件架构与架构师 259
7.2 设计模式 262
7.2.1 如何学习设计模式 262
7.2.2 3种工厂模式的比较 263
7.2.3 设计模式复杂度排名 264
7.3 设计评审检查单 267
7.4 程序设计风格 268
7.5 代码评审 279
7.5.1 代码评审的意义 279
7.5.2 代码评审常见问题与最佳实践 279
7.5.3 代码评审的检查要点 280
7.5.4 代码评审检查单 282
7.5.5 代码走查改进案例 283
7.6 持续集成环境的构建 285
7.6.1 Java环境下的持续集成平台 285
7.6.2 .Net环境下的持续集成平台 286
7.6.3 C++环境下的持续集成平台 286
7.7 一次典型的重构 287
7.8 改进代码质量 293
第8章 测试与同行评审 295
8.1 质量管理的西药与中药 295
8.2 4种测试层次的比较 296
8.3 集成测试用例的案例 297
8.4 单元测试 298
8.4.1 如何推广单元测试 298
8.4.2 单元测试培训练习总结 302
8.4.3 Checkstyle试用案例 304
8.4.4 测试驱动开发案例 316
8.5 性能测试策略的案例 320
8.6 不可重现缺陷的应对策略 321
8.7 同行评审策略 323
8.8 同行评审的常见问题与对策 324
8.9 如何分析同行评审的度量数据 328
8.10 软件开发的质量红线 331
8.11 产品的内部质量与外部质量 332
第9章 质量保证 334
9.1 质量保证与质量控制的区别 334
9.2 质量保证的价值 336
9.3 质量保证人员与项目经理的质量责任 337
9.4 质量保证人员与过程改进人员的责任融合 337
9.5 质量保证的组织结构形式 338
9.6 质量保证工作的8个原则 339
9.7 质量保证人员的工作内容 340
9.8 质量保证例会的6个问题 341
9.9 如何消除对质量保证的抵触情绪 342
9.10 质量保证人员配备 344
9.11 质量保证人员的知识体系 345
第10章 配置管理 347
10.1 配置管理的基本概念 347
10.2 数据管理与配置管理的区别 348
10.3 如何组建CCB 350
10.4 纳入基线管理的一般原则 351
10.5 配置控制的3个等级 352
10.6 配置管理的三库 354
10.7 配置管理员的职责定义 355
10.8 配置审计的种类与区别 356
第11章 量化项目管理 360
11.1 如何识别度量元 360
11.2 如何设计数据的指示器 365
11.3 如何定义指示器与度量元 368
11.4 度量数据分析的3个层次 370
11.5 过程性能基线 372
11.5.1 什么是过程性能基线 372
11.5.2 应该建立哪些PPB 373
11.5.3 如何建立PPB 373
11.5.4 建立PPB的注意事项 374
11.5.5 证明过程稳定需要的样本个数 376
11.5.6 何时重新计算PPB 377
11.5.7 如何判定PPB的可用性 377
11.5.8 项目级的PPB 377
11.6 控制图在软件管理中的应用 378
11.6.1 控制图的含义 378
11.6.2 什么是“特殊原因” 378
11.6.3 异常点的识别规则 379
11.6.4 异常点的删除方法 380
11.6.5 控制图典型错误案例一 380
11.6.6 控制图典型错误案例二 383
11.7 箱线图在软件管理中的应用 387
11.8 软件过程性能模型 391
11.8.1 什么是过程性能模型 391
11.8.2 如何建立过程性能模型 392
11.8.3 过程性能模型的实例 394
11.8.4 为什么无法建立过程性能模型 396
11.9 为什么建立了性能基线还需要建立性能模型 399
11.10 如何度量项目的进度与进展 401
11.11 TSP中的10个量化法则 401
第12章 CMMI的评估 403
12.1 如何选择参评项目个数 403
12.2 SCAMPI V1.3的证据覆盖规则 406
12.3 评估组员的资质要求 408
12.4 如何准备评估计划 409
12.5 如何执行就绪检查 410
12.6 被访谈人员注意事项 412
12.7 高成熟度评估时常发现的问题 414
12.8 评估之后的CMMI怪相分析 415
第13章 人员管理 420
13.1 软件企业以人为本的16项措施 420
13.2 如何选择与使用项目经理 421
13.3 职业程序员培养之道 424
13.4 职业程序员与业余程序员的区别 429
13.5 程序员敬业精神的具体表现 430
13.6 采用“师徒制”培养新员工 430
13.7 研发人员考核的10项基本原则 432
13.8 以人为本的People CMM 434
后记 440
参考文献 441
猜您喜欢