第1章 无极生太极 1
1.1 创造的根源 2
1.2 本质的把握 8
1.3 简单的追求 14
第2章 关于软件开发方法论的思考 21
2.1 方法论的实践场景 22
2.2 CMM的精髓 27
2.2.1 过程定义 27
2.2.2 成熟之路 32
2.3 敏捷软件开发的精髓 34
2.3.1 人与实践 34
2.3.2 海岸灯塔 40
2.4 最好的软件开发方法 42
2.4.1 中庸 42
2.4.2 聚焦 46
2.5 方法论的执行 47
2.5.1 关于执行 47
2.5.2 约束与习惯 49
第3章 关于需求的思考 51
3.1 需求的实践场景 52
3.2 需求开发 57
3.2.1 准确表达 57
3.2.2 信息传递 61
3.3 需求管理 68
3.3.1 变化之道 68
3.3.2 应对之道 69
第4章 关于软件架构设计的思考 73
4.1 架构设计的实践场景 74
4.2 软件架构的本质 80
4.3 软件架构的设计 91
4.3.1 业界技术成果 91
4.3.2 软件框架 97
4.3.3 隐喻的价值 114
4.3.4 架构模式 116
4.3.5 软件架构师的素质 117
第5章 关于软件实现的思考 120
5.1 软件实现的实践场景 121
5.2 模型的设计 129
5.2.1 领域模型 129
5.2.2 计算模型 134
5.3 软件开发 140
5.3.1 写给新手 140
5.3.2 掌握编程 148
5.4 负责制度 164
5.5 软件决策 171
5.6 质量保证 175
第6章 关于软件测试的思考 181
6.1 软件测试的实践场景 182
6.2 软件测试的本质 189
6.3 破坏的意义 192
6.3.1 软件测试的第一个原则:聚焦 194
6.3.2 软件测试的第二个原则:积累 195
6.3.3 软件测试的第三个原则:自动化 195
6.3.4 软件测试的第四个原则:目标一致 196
6.4 一个典型的破坏:性能测试 197
6.5 其他 208
第7章 关于团队的思考 210
7.1 团队的实践场景 211
7.2 湘江战役 216
7.3 团队建设 221
7.3.1 思想准备 221
7.3.2 如何组建团队 225
7.3.3 现实与理想 227
7.4 团队管理 232
7.4.1 论人 232
7.4.2 稳定的价值 239
7.4.3 团队文化 240
第8章 关于项目管理的思考 242
8.1 项目管理的实践场景 243
8.2 项目管理的本质 248
8.3 关于项目经理 254
8.4 计划的本质 258
8.5 风险的问题 263
8.6 管理的境界 267
第9章 关于软件维护的思考 270
9.1 软件维护的实践场景 271
9.2 软件维护的本质 274
9.3 组件化开发 277
9.4 版本依赖 285
9.5 妥协的方案 287
第10章 关于组织发展的思考 290
10.1 组织发展的实践场景 291
10.2 知识积累 294
10.3 行业成熟 299
10.4 知识资产 302