第1部分 综合管理 1
第1章 开篇寄语 3
1.1 优良软件的重要性 4
1.2 沼泽中的坚硬石头 5
1.3 读者 6
1.4 迭代式的问题解决周期 6
1.5 回顾 10
第2章 计算之源 11
2.1 催化剂 11
2.2 答案 12
2.3 这一计划是如何实施的 13
2.4 为什么这一代工程师与众不同 15
2.5 计算 16
2.6 从它们的名称中得出数字大小 17
2.7 当年的计算机是怎样的呢 18
作者简介 19
2.8 我们的计算传统 20
2.9 回顾 20
前言 21
序 23
第3章 登山 23
3.1 勇攀高峰 24
3.2 失败的共同根源 30
3.3 成功的要素 31
3.4 人的因素 32
3.5 回顾 32
第4章 管理 33
4.1 管理团队 34
4.2 回顾 40
第2部分 软件差别 41
第5章 重中之重 43
5.1 迭代式开发 43
5.2 Roscoe Leroy 44
5.3 跨越瀑布式开发 45
5.4 另一个极端 47
5.5 Roscoe的第一幅图 47
5.6 Roscoe的第二幅图 48
5.7 等一等 49
5.8 保持向量短小 49
5.9 软件开发上的应用 50
5.10 面向应用的学习与短向量方向 51
5.11 风险定位 51
5.12 你之前听过这样的事情么 52
5.13 关于实践式学习的更多内容 53
5.14 商业含义 54
5.15 人员配置效应 55
5.16 仅仅只是常识问题 57
5.17 回顾 58
第6章 建模 59
6.1 如何解释UML 60
6.2 什么是UML,为什么它很重要 61
6.3 第二个稍微复杂一些的例子 61
6.4 第三个例子 63
6.5 如今与软件的相关性 65
6.6 提升抽象的级别 66
6.7 回顾 66
第7章 编码 69
7.1 经理们如何来学习一门新的程序设计语言 70
7.3 这个标准应当包括什么呢 71
7.2 定义良好的问题 71
7.4 动物游戏 72
7.5 动物游戏满足这一标准么 73
7.6 它是否通过了“那又怎么样”测试 74
7.7 这是你的游戏 76
7.8 回顾 76
第8章 构建与发布 77
8.1 如果你构建它,那么它们就会出现 78
8.2 在一开始设置一个沙箱 79
8.3 产品构建到底为什么会困难 79
8.4 如何对迭代式开发进行构建 84
8.5 回顾 85
第3部分 项目管理观点 87
第9章 权衡 89
9.1 项目管理金字塔 90
9.2 五,而非四 92
9.3 进入金字塔 93
9.4 高度变量 94
9.5 金字塔体积恒定不变 94
9.6 一个统计上的小插曲 95
9.7 正确的想法,错误的分布 97
9.8 对于真实项目的暗示 99
9.9 怎样才能让成功率接近掷硬币游戏 99
9.10 更多信心 100
9.11 至关重要的警告 101
9.12 一切为了风险 105
9.13 回顾 106
第10章 估计 107
10.2 香草巧克力 108
10.1 如果我们使用常识的话会怎样 108
10.3 Roscoe的解释 109
10.4 Roscoe继续深入 109
10.5 Roscoe的日历 110
10.6 Roscoe的计算 111
10.7 Roscoe进入软件领域 111
10.8 Roscoe报道 111
10.9 猜一下我们做对了什么事情 112
10.10 Roscoe的概括 113
10.11 Roscoe捡起一块骨头 113
10.12 第2部分:猜测我们做对了某些东西 114
10.13 Roscoe被软件项目经理联合会所承认 115
10.14 回顾 115
第11章 日程安排 117
11.1 Roscoe摆出问题:你将会延迟多久 118
11.2 Joe扳回了些许劣势 119
11.3 Roscoe反击 120
11.4 Roscoe的“犯罪分子相册” 120
11.5 Roscoe的图 121
11.6 最后一个异议 122
11.7 Roscoe的临别赠言 123
11.8 回顾 123
第12章 节奏 125
12.1 物理学家看项目过程 126
12.2 现实闯入 134
12.3 迭代开发如何呢 135
12.4 最终的图表 140
12.5 回顾 142
第4部分 人的因素 143
第13章 政治 145
13.1 背景 146
13.3 三种情景 147
13.2 定义 147
13.4 政治是不可避免的,但是 148
13.5 当问题演变为政治 149
13.6 工程计划 152
13.7 高度信任的环境 153
13.8 无益政治的其他变种 154
13.9 回顾 155
第14章 沟通 157
14.1 沟通无处不在 158
14.2 Roscoe解释其理论 158
14.3 已经完成了吗 164
14.4 回顾 165
第15章 承诺 167
15.3 维苏威火山般的喷发 168
15.2 即刻进入案例 168
15.1 Roscoe碰了一鼻子灰 168
15.4 德克萨斯的作风 169
15.5 应用到软件业 170
15.6 狗吞了我的任务 170
15.7 规范大战 171
15.8 三个最普遍的借口 172
15.9 其他 174
15.10 穿刺、躲避与还击 174
15.11 大型项目中的胆小者 175
15.12 软件开发项目会如你所愿地完成吗 175
15.13 细化VS构建 176
15.14 吃一堑,长一智 177
15.15 回顾 177
第16章 薪酬 179
16.1 渐入“佳境” 180
16.2 流动槽与软件开发绩效 181
16.3 利用流动模型来管理薪酬 182
16.4 金钱不是万能的 191
16.5 回顾 192
第5部分 横向思考 195
第17章 历史教训 197
17.1 不要让国王成为你的架构师 198
17.2 事物并非总是如你所见 198
17.3 仔细检查设计 198
17.4 知道什么是你所不知道的 198
17.5 始终如一的领导层 199
17.6 照例追赶工期 199
17.7 集中精力于错误的特性 199
17.8 当没有进行良好的设计时 199
17.11 审讯 200
17.12 回顾 200
17.10 原型VS产品 200
17.9 适当的测试 200
第18章 不当类比 201
18.1 休斯顿,我们遇上麻烦了 201
18.2 误解牛顿 203
18.3 一切事物都是相对的 205
18.4 量子力学的误解 207
18.5 热寂 211
18.6 其他例子 213
18.7 有益的科学 213
18.8 回顾 214
第19章 软件更新 215
19.1 嵌入式软件的更新 216
19.2 现状 217
19.4 一点陋见 218
19.3 软件更新游戏 218
19.5 到更新问题 219
19.6 免费的午餐 220
19.7 为何可行 221
19.8 改进 222
19.9 怎样应对软件盗版问题 223
19.10 要太阳能没有普及开来 223
19.11 回顾 224
第20章 妙解随机数 225
20.1 Roscoe设定了故事背景 226
20.2 模拟击球手 226
20.3 步骤一 228
20.4 步骤二 230
20.5 产生更多的概率 230
20.6 显然,我们已经离开棒球的世界了 232
20.7 现实是丑陋的 233
20.8 星期一的解决方案 234
20.9 受益匪浅 239
20.10 回顾 240
第6部分 进阶主题 241
第21章 危机 243
21.1 鱼的五天 244
21.2 鱼市 244
21.3 第一天:尚未察觉 244
21.4 第二天:避免麻烦 244
21.5 第三天:“问题处理者”到来 245
21.6 第四天:转折点 245
21.7 第五天:两条关键路径 246
21.8 故事的寓意 246
21.9 回顾 247
22.1 增长中的问题 249
第22章 增长 249
22.2 Na?ve模型 251
22.3 模型的推论 253
22.4 一个说明性的例子 259
22.5 非线性关系 260
22.6 付诸实践 261
22.7 结论 263
22.8 列线图 264
22.9 电子表格 265
22.10 回顾 267
第23章 文化 269
23.1 什么是企业文化 270
23.2 强势和弱势文化 271
23.3 定义企业价值 271
23.4 软件领域的适用性 274
23.5 建立强势文化 275
23.6 如果你正在寻找一份工作 279
23.7 底线 280
23.8 回顾 280
第24章 总结 281
24.1 奉行者 282
24.2 创造者 284
24.3 贤明者 286
24.4 关于贤明者的更多话题 287
24.5 人数分布 288
24.6 关于模型最后的思考 289
24.7 回顾 290
致谢 293
索引 297