第1章 从项目的概念到项目管理 1
引言:软件开发的独特挑战 1
1.1 软件开发的管理不可忽视 4
1.1.1 缺乏良好的管理很容易带来的恶果 4
1.1.2 技术素质并不等于管理素质 5
1.1.3 管理人才也需要吸引和培养 6
1.1.4 提高软件开发管理的能力应该是信息企业努力追逐的目标 7
1.2.2 将项目管理的实践指南为软件开发服务 8
1.2.1 将任何软件开发的工作当作一个工程项目来管理 8
1.2 利用项目管理的原则指导软件开发 8
1.3 学习项目管理的基本理念 10
1.3.1 项目管理的历史和发展简介 10
1.3.2 从一个项目的定义说起 14
1.3.3 用项目的定义帮助我们理解软件开发管理的理念 18
1.3.4 项目管理的定义 21
1.3.5 项目管理的理论范围 23
1.4 项目管理的一个关键的基本理念 30
1.5 从项目的定义到软件开发项目 35
1.6 软件开发:是艺术还是科学 39
本章介绍的概念和名词 43
本章总结 43
进一步思考和练习 44
第2章 项目的流程概念和领域知识的综合运用 45
引言:项目管理是流程管理和使用领域知识的综合 45
2.1 项目运作流程阶段的理念以及运用 45
2.1.1 项目流程阶段的概念 45
2.1.2 项目流程阶段的特征 47
2.1.3 流程和流程群的概念和对管理的启示 49
2.2.1 项目管理必须执行的十大具体工作 51
2.2 项目管理的具体工作和在项目流程中的运用 51
2.2.2 项目管理的十大工作在项目流程中的执行 54
2.3 项目管理的指南在软件开发上的运用 59
2.3.1 项目管理的十大工作在软件开发管理上的运用 59
2.3.2 软件项目管理工作任务的执行顺序和工作总结 63
2.4 执行软件开发项目管理的综合总结 71
2.4.1 项目管理领域知识和流程的综合运用 71
2.4.2 软件开发流程特点的分析 78
2.4.3 软件开发生命周期的特点和具体工作的总结 83
本章介绍的概念和名词 94
本章总结 94
进一步思考和练习 95
第3章 项目管理领域知识运用和项目启动管理 96
引言:学习和利用项目管理的领域知识 96
3.1 项目管理的领域知识运用的指南 96
3.2 软件开发项目启动阶段的管理和实践指南 98
3.2.1 软件开发项目启动管理的定义 98
3.2.2 软件开发项目启动管理的具体运作和流程 100
3.3 不同类型的软件开发项目的特征 108
3.3.1 软件产品 109
3.3.2 软件系统 110
3.3.3 不同类型的软件开发项目的特征总结 112
3.4 项目意向总结书的撰写指南 114
3.4.1 项目意向总结书的撰写目的 114
3.4.2 软件开发项目意向总结的撰写 114
3.4.3 软件开发项目意向总结书撰写的模板和提纲 116
本章总结 120
本章介绍的概念和名词 120
进一步思考和练习 121
引言:软件开发项目管理中计划工作的重要性 122
第4章 软件开发项目计划阶段的管理 122
4.1 软件开发项目计划的理念 123
4.2 软件开发项目计划阶段的管理指南 124
4.2.1 软件开发项目计划管理的定义 124
4.2.2 软件开发项目计划阶段管理的具体工作和流程总结 125
4.3 制定软件开发项目计划的理念 133
4.3.1 整体计划的制定:计划的计划 133
4.3.2 计划的制定过程也可以是一个循环的过程 134
本章总结 138
进一步思考和练习 139
本章介绍的概念和名词 139
第5章 软件开发项目的范围管理和需求分析 140
引言:范围管理是制定项目计划的基础 140
5.1 项目管理领域知识中范围管理的理念 140
5.1.1 范围管理的定义 140
5.1.2 范围管理的理念 141
5.1.3 范围管理的原则对软件开发管理的启示 142
5.2 软件开发项目的范围管理 144
5.2.1 项目范围的定义 144
5.2.2 范围管理的理念在软件开发管理上的运用 145
5.2.3 软件开发项目功能范围管理的工作任务 146
5.3 软件开发项目需求管理的总结 147
5.3.1 功能需求管理的概念及重要性 147
5.3.2 需求管理的工作范围及分析 148
5.4 软件开发项目需求分析的实践指南 151
5.4.1 商业需求的分析及指南 151
5.4.2 使用者需求的分析及指南 153
5.4.3 功能需求的分析及指南 155
5.4.4 系统需求的分析及指南 155
5.4.5 质量需求的分析及指南 159
5.4.6 性能需求的分析及指南 168
5.4.7 非功能需求的分析及指南 173
5.4.8 开发局限的分析及指南 176
本章总结 179
本章介绍的概念和名词 180
进一步思考和练习 181
第6章 软件开发功能总结的指南 182
引言:范围管理是制定项目计划的基础 182
6.1 从使用方案到功能设计 183
6.1.1 使用方案的理念 183
6.1.2 从使用方案到设计的三步法 184
6.2 软件开发项目的功能需求总结指南 190
6.3 提高功能需求总结撰写质量的建议 200
6.3.1 将功能需求的来源建立在具体的使用方案的基础上 201
6.3.2 避免功能定义模糊,控制好需求分析的细致程度 203
6.3.3 采用简洁明了的写作风格 204
6.3.4 注意文件的开端 205
6.3.5 遵循优秀的需求总结格式的衡量标准 206
本章总结 212
进一步思考和练习 213
本章介绍的概念和名词 213
第7章 软件项目设计规范管理的艺术 214
引言:功能设计规范书是整个开发项目的中心指南 214
7.1 软件开发的蓝图:功能设计规范书 215
7.1.1 什么是功能设计规范书 215
7.1.2 设计规范书的读者和满足的需要 217
7.2 撰写高质量的设计规范书的艺术 218
7.2.1 明确理解和总结项目的目标、客户的要求和所需要解决的问题 219
7.2.2 从产品使用方案的设计入手 219
7.2.3 调查和验证设计方案的可行性并对设计方案附上优先系数 221
7.2.4 选择规范书的格式和提纲模式 222
7.2.5 撰写功能规范书的初稿 223
7.2.6 预审规范书的初稿 224
7.2.7 修订初稿,撰写功能规范书的正稿 224
7.2.8 修订功能规范书的正稿,审核并通过正稿 225
7.2.9 保持规范书的修订和更新记录 226
7.3 简单型的设计规范书的工作法 227
7.4 设计规范书中应避免的差错和陷阱 229
7.4.1 设计规范书不够详细和完整 229
7.4.2 设计规范书过分冗长 230
7.4.3 在撰写设计规范书的早期过分追求完美 231
7.4.4 设计规范书更新太多或更新不够 231
7.4.5 不向整个团队进行及时的通气 231
7.4.6 不用正确的文档写作提纲和模板 233
7.4.7 忽视对有待解决问题的处理 233
7.5 软件产品设计规范书的撰写模板 234
本章总结 239
本章介绍的概念和名词 240
进一步思考和练习 240
引言:以工作任务分解促进合理的时间表的制定 241
第8章 项目工作任务的分解和时间表的制定 241
8.1 工作任务的分解——制定项目计划时间表的基础 242
8.1.1 项目工作分解的定义 242
8.1.2 项目工作分解的重要概念 244
8.2 项目工作任务分解的具体步骤举例 246
8.3 项目时间管理的计划-时间表的制定 249
8.3.1 时间管理领域知识的理论和概念 249
8.3.2 项目工作任务的网络图的介绍 250
8.3.3 项目工作任务网络图的定义和规范 252
8.3.4 项目工作任务网络图之一:项目工作秩序图的基本规范 254
8.3.5 新型项目工作秩序图的基本规范 255
8.4 从项目网络图到项目时间表 257
8.4.1 通过项目网络图的制定来规划项目的时间周期 257
8.4.2 使用项目网络图进行时间管理值的运算 258
8.4.3 绘制帮助进行时间估算的项目网络图 260
8.4.4 计算项目时间表决定性通道的重要意义 268
8.5 制定项目计划的时间表 271
8.5.1 项目时间计划表的制定 271
8.5.2 项目时间计划表的标准 276
8.5.3 项目时间管理的原则对软件开发管理的启示 279
本章总结 281
本章介绍的概念和名词 282
进一步思考和练习 283
第9章 软件开发组织的结构和团队建设 284
引言:软件开发需要多种人才的合作 284
9.1 软件开发团队的人员配备及职责 286
9.1.1 团队的概念及软件开发的基本团队组成 286
9.1.2 软件开发的中心团队和辅助性团队的概念 287
9.2 软件开发的中心团队的组成及责任 289
9.2.1 项目经理团队 289
9.2.2 开发团队 291
9.2.3 测试团队 292
9.3 软件开发的辅助性团队的组成及责任 295
9.3.1 客户教育或文档团队 296
9.3.2 可用性团队 297
9.3.3 本地化团队 299
9.3.4 产品建造团队 301
9.3.5 系统安置团队 302
9.4 其他的非开发性团队 303
9.4.1 非开发团队或组织的介绍 304
9.4.2 根据自己公司的需要建立其他非开发团队 312
9.5.1 重视软件开发组织的管理 313
9.5.2 聘用优秀的人才 313
9.5 软件开发组织的团队建设 313
9.5.3 重视对人才的不断的培养 314
9.5.4 执行良性的、促进努力工作的衡量和评比制度 315
9.5.5 建立并执行开发运作流程的规章制度 315
本章总结 317
本章介绍的概念和名词 318
进一步思考和练习 318
10.1 项目经理的历史和定义 319
10.1.1 为什么需要项目经理 319
第10章 项目经理在软件开发中的重要作用 319
引言:项目管理离不开专业的项目经理 319
10.1.2 不同项目经理名称的含义 320
10.1.3 软件开发项目经理的定义 322
10.2 没有专职的项目经理的害处 324
10.3 项目经理的责任 326
10.3.1 做用户利益的代言人 327
10.3.2 做项目利益的代言人与执行者 329
10.3.3 做软件功能设计的设计师 330
10.3.4 管理开发项目的进展和进行软件设计的不同责任 332
10.4 项目经理所需要具备的素质 333
10.4.1 具有正直的人格和品德 334
10.4.2 具有基本的聪明才智 335
10.4.3 具有对技术的追求和热爱 336
10.4.4 具有对用户或客户的理解和同情 337
10.4.5 熟悉和掌握软件开发的本领 340
10.4.6 具有软件使用界面设计的本领和技巧 341
10.4.7 具备项目管理的知识和本领 343
10.4.8 具备良好的沟通和交流能力 345
10.4.9 能妥善协调团队之间的合作 348
10.4.10 具备基本的市场知识和眼光 351
10.4.11 具备强健的项目经理的本领是一个长期的学习和实践过程 352
10.5 项目经理的能力和级别的对照表 353
10.6 项目经理的责任范围到项目经理团队的分工 361
本章总结 363
本章介绍的概念和名词 363
进一步思考和练习 364
11.1.1 开发工作的范围 365
11.1 软件编程开发的管理和实践指南 365
引言:开发项目执行阶段的中心任务 365
第11章 软件编程开发和测试的管理 365
11.1.2 软件程序开发管理的流程规章指南 369
11.2 软件测试的管理和实践指南 383
11.2.1 软件测试工作的概念 383
11.2.2 面向功能组件结构的不同测试方法 385
11.2.3 面向验证符合设计标准的不同测试方法 386
11.2.4 面向检验覆盖面的不同测试方法 391
11.3 制定软件测试度量的指南 394
11.3.1 质量度量的定义 394
11.3.2 优秀质量度量的特征以及度量范围的总结 395
11.3.3 缺陷统计数据的度量 396
11.3.4 自动化测试与手动测试比率的度量 400
11.3.5 程序源代码覆盖率的度量 401
11.4 制定软件测试计划的管理和实践指南 402
11.4.1 测试计划的定义 403
11.4.2 测试计划的内容以及其撰写的指南 404
11.4.3 软件测试计划的撰写参照模板 406
11.4.4 测试计划内容的进一步解释 410
11.5.2 使用合适的工具进行测试计划的归纳总结 413
11.5 测试运作的管理和优良实践的指南 413
11.5.1 在项目的早期就制定测试计划 413
11.5.3 使用专业的测试专家 414
11.5.4 记录每个测试方案的结果 414
11.5.5 测试与开发同步进行 415
11.5.6 将测试功能设计到程序里去 415
11.5.7 充分利用自动化测试 416
11.5.8 根据软件的使用方案来编写测试方案 417
11.5.9 利用可用性测试来帮助寻找功能设计中的问题 417
本章总结 420
本章介绍的概念和名词 421
进一步思考和练习 422
进一步学习的参照 422
第12章 软件开发项目的执行管理 423
引言:连接软件开发的综合结果的管理 423
12.1 软件开发执行阶段的运作 424
12.1.1 将整个开发组织的运作贯穿连接起来的关键 424
12.1.2 如何进行统一的纠错和更改的追踪 428
12.2.1 程序源代码的稳定趋势特征的分析 431
12.2 控制软件准时发行的方法 431
12.2.2 源代码稳定的控制也采用循环渐进的管理方式 434
12.2.3 从控制源代码的稳定来控制软件的发行时间 435
12.2.4 通过衡量软件的质量来判断可以发行的时间 438
12.2.5 缺陷纠错的优先级和缺陷严重性的定义 441
12.3 制定和使用开发执行阶段的终结衡量标准 446
12.3.1 制定和使用开发执行阶段的终结衡量标准 446
12.3.2 终结衡量标准的模板 447
12.3.3 软件发行采用的不同的优先选择 448
12.4.1 进行纠错和更改的请求记录 450
12.4 软件开发执行阶段的管理任务 450
12.4.2 进行纠错和更改控制管理的数据搜索 453
12.4.3 进行纠错和更改控制管理的决定 455
本章总结 456
本章介绍的概念和名词 456
进一步思考和练习 457
第13章 软件开发项目的更改控制管理 458
引言:更改控制是软件开发的关键管理环节 458
13.1 为什么要对功能需求的改变进行管理 459
13.1.1 引起对软件功能或设计要求更改的原因 459
13.1.3 完善的功能需求变化管理的特征 460
13.1.2 对付更改要求的传统方法 460
13.2 功能需求变化管理方法的指南 461
13.2.1 进行功能需求变化管理的指南 461
13.2.2 执行统一的运作步骤和流程 464
13.2.3 功能需求变化管理的运作规章制度文件的模板 466
13.2.4 变化控制委员会所做的决定 469
13.3 变化控制委员会 472
13.3.1 建立和利用变化控制委员会 472
13.3.2 变化控制委员会的组成 472
13.3.3 变化控制委员会的任务 474
13.3.4 怎样有效地执行变化控制委员会的职责 476
13.4 微软独特的变化控制管理的文化和实践 477
13.4.1 使用统一的纠错追踪工具进行变化控制管理 478
13.4.2 “三国会议”和“备战会”——微软的“CCB” 480
13.4.3 微软产品开发的更改控制管理的运作流程 483
13.4.4 微软的变化控制管理使用的各种记录字段和标记值 485
13.4.5 微软的变化控制管理的工具及其使用 489
13.5 进行变化控制管理的数据和标记值的使用总结 493
13.5.1 变化更改控制管理的记录字段和标记值的总结 495
13.5.2 变化更改控制管理的记录字段的组合介绍 501
13.6 产品制作源代码编译过程中的变化控制管理 505
本章总结 508
本章介绍的概念和名词 509
进一步思考和练习 510
结束篇 创造中国软件开发的辉煌新篇章 511
引言:中国信息业的发展还任重道远 511
14.1 扫除盲点、纠正偏见——从Retalix的案例说起 512
14.1.1 争取价值链高端的市场 515
14.1.2 推广扩张性的市场开拓策略和企业文化 516
14.1.3 采取“拿来主义”与自我开发齐头并进 520
14.2 推动业界改革、促进良性的竞争循环和发展 525
14.2.1 解决业界目前的一些机制问题刻不容缓 525
14.2.2 解决业界目前的问题需要大家的一起努力 531
14.3 发挥自身的优势,抓住新技术契机进行跳跃式发展 536
14.3.1 抓住网络服务的新技术契机 537
14.3.2 推动超出桌面计算机之外的应用软件 539
14.3.3 推动政府电子政务领域的发展 548
14.4 结束语 555
编后记 558
附录 软件开发项目管理中常用英文名词注释 559