第一部分 软件驱动的经济第1章 软件项目管理的挑战 3
1.1 软件开发中的高风险 4
1.2 制度上的关注 5
1.3 传统的软件项目管理 8
1.4 瀑布方式的问题 9
1.5 小结 12
第2章 达成结果:软件经济学的案例 15
2.1 迭代式开发 17
2.2 基于结果的方式的益处 19
2.3 成功的标志 20
2.4 小结 21
第二部分 提高软件开发的经济效益第3章 软件经济学的趋势 25
3.1 软件经济学的简化模型 26
3.2 软件工程:40年历史回顾 28
3.3 改进的关键:平衡的方法 30
3.4 小结 33
第4章 降低软件项目的规模或者复杂度 35
4.1 管理范畴 35
4.2 降低人工编写的代码的规模 37
4.3 使用面向服务的架构增强复用 38
4.4 小结 39
第5章 改进开发的过程 41
5.1 项目过程 41
5.2 使用迭代式的过程 42
5.3 及早应对重大风险 45
5.4 增量式地改进实践以达到目标 48
5.5 小结 50
第6章 提高团队效率 53
6.1 提高个人绩效 54
6.2 改进项目的团队协作 55
6.3 提高组织级能力 57
6.4 小结 59
第7章 通过集成工具来提高自动化 61
7.1 提高个人生产力 62
7.2 减少错误源 63
7.3 使过程改进可能进行 64
7.4 小结 65
第8章 通过常识来加速文化的改变 67
8.1 成功组织的特征 67
8.2 成功的关键 69
8.2.1 低中级管理者是关键的执行者 71
8.2.2 需求、设计和计划要可变并且具体 71
8.2.3 鼓励进行雄心勃勃的演示 72
8.2.4 项目性能的好坏在生命周期的早期更明显 72
8.2.5 早期的迭代应该是不完全的 73
8.2.6 详细完整的工件在早期不太重要,在后期比较重要 74
8.2.7 真正的问题会系统化地出现,也应系统化地加以解决 74
8.2.8 质量保证是每个人的职责,不是一个单独的行当 74
8.2.9 应该把在自动化方面的投资看作是必要的 75
8.3 建议:选择正确的项目、正确的人、正确的目标 75
8.4 小结 76
第三部分 软件工程的实用度量第9章 实用的软件开发度量观 81
9.1 度量与目标 81
9.2 易变性和目标 82
9.3 度量与迭代开发 83
9.4 度量工作何时会出错 85
9.5 事先制定详细计划错在哪里 87
9.6 在每个阶段分别确定要度量什么 88
9.7 小结 89
第10章 在起始阶段度量什么 91
10.1 评估财务可行性 92
10.2 评估技术可行性和估计总体项目成本 93
10.3 起始阶段中的迭代 95
10.4 其他度量 97
10.5 小结 99
第11章 在细化阶段和构造阶段度量什么 103
11.1 细化阶段的度量工作 103
11.2 如何度量风险的降低 106
11.3 如何度量进展情况 108
11.4 构造阶段的度量工作 110
11.5 如何度量backlog 111
11.6 如何度量测试覆盖率 112
11.7 如何度量构建稳定性 113
11.8 构造阶段的预期进展趋势 114
11.9 小结 115
11.9.1 细化阶段 115
11.9 2 构造阶段 116
第12章 在交付阶段度量什么 119
12.1 交付阶段的度量工作 120
12.1.1 度量什么 121
12.1.2 分析趋势和评估测试结果 123
12.1.3 影响可发布性的其他一些需要考虑的事项 123
12.2 如何对交付阶段进行总结 125
12.3 小结 126
第13章 在嵌入规划的项目中度量什么 129
13.1 将项目组织起来构成规划 130
13.2 如何度量规划的进阶 133
13.3 小结 134
附录A 迭代式项目管理起步 137
推荐书目 167