系列: 我读《人月神话》
《人月神话》是 1975 年的书,讲的是大型软件项目为什么会失控。我打算逐章读一遍,把每章的论证拆开,记下我认同的、怀疑的,以及能对应到自己工作上的部分。
这个系列怎么读
全书 19 章加尾声,分两段:
- 第 1–15 章是 1975 年的原版正文,也是一条完整的论证线:从"焦油坑"提出问题,经人月神话、外科手术队伍、第二系统效应、巴比伦塔,一路讲到交付与维护。这一部分逐章推进。
- 第 16–19 章是 20 周年纪念版的增补:1986 年的论文《没有银弹》及作者对批评的回应、全书命题清单、20 年后的回顾。它们不是原著主线,但《没有银弹》恰恰是这本书流传最广的部分,所以一并读完。
阅读顺序由系列自己维护,每篇文章上方有"第几篇、下一篇"的指引,不需要记住编号。
引用与边界
- 笔记以我自己的复述和理解为主,原文只做短引,并标出所在章节。
- 这里是我读完之后的判断,不是对书的转述,也不代表别人的共识。
- 书里的例子多来自 1960–70 年代的大型机项目,有些已经过时。我会尽量指出哪些论断今天仍然成立,哪些只是当时环境的产物。
第 1 章 · 焦油坑
开篇是一句荷兰谚语:“前车之覆,后车之鉴。” 接着是全书最出名的一个画面——史前巨兽陷在焦油坑里,挣扎得越猛烈,焦油纠缠得越紧,没有哪种猛兽有足够的力气或技巧挣脱,最后都沉到坑底。作者说,过去几十年的大型系统开发就是这样一个焦油坑。 这一章讲了什么 作者先用比喻立论:大型项目的困难不是由某个单独的问题造成的,每个问题单看都能解决,但当它们相互纠缠、累积在一起时,团队的行动就越来越慢。局中人往往对麻烦的程度感到惊讶,也很难看清问题的本质。他的态度是——想解决问题,先了解问题,于是这一章去认识"系统 …
开篇是一句荷兰谚语:“前车之覆,后车之鉴。” 接着是全书最出名的一个画面——史前巨兽陷在焦油坑里,挣扎得越猛烈,焦油纠缠得越紧,没有哪种猛兽有足够的力气或技巧挣脱,最后都沉到坑底。作者说,过去几十年的大型系统开发就是这样一个焦油坑。 这一章讲了什么 作者先用比喻立论:大型项目的困难不是由某个单独的问题造成的,每个问题单看都能解决,但当它们相互纠缠、累积在一起时,团队的行动就越来越慢。局中人往往对麻烦的程度感到惊讶,也很难看清问题的本质。他的态度是——想解决问题,先了解问题,于是这一章去认识"系统 …
第 2 章 · 人月神话
这一章的题记来自新奥尔良安托万餐厅的菜单:“美食的烹调需要时间;片刻等待,更多美味,更多享受。” 用菜来类比软件进度,是全文最狠的一处反讽:进度可以被顾客催,但菜不会因为被催就熟。 这一章讲了什么 作者开篇给出判断:在众多软件项目中,缺乏合理的进度安排是造成项目滞后的最主要原因,比其他所有因素加起来的影响还要大。然后列出五个成因:估算技术缺乏有效研究,隐含了"一切都将运作良好"的假设;估算技术隐含假设人和月可以互换,把进度和工作量混为一谈;经理对估算缺乏信心,没有耐心持续估算;缺少进度的跟踪与监 …
这一章的题记来自新奥尔良安托万餐厅的菜单:“美食的烹调需要时间;片刻等待,更多美味,更多享受。” 用菜来类比软件进度,是全文最狠的一处反讽:进度可以被顾客催,但菜不会因为被催就熟。 这一章讲了什么 作者开篇给出判断:在众多软件项目中,缺乏合理的进度安排是造成项目滞后的最主要原因,比其他所有因素加起来的影响还要大。然后列出五个成因:估算技术缺乏有效研究,隐含了"一切都将运作良好"的假设;估算技术隐含假设人和月可以互换,把进度和工作量混为一谈;经理对估算缺乏信心,没有耐心持续估算;缺少进度的跟踪与监 …
第 3 章 · 外科手术队伍
这一章的题记来自 Sackman、Erikson 和 Grant 的测量:“效率高和效率低的实施者之间个体差异非常大,经常能够达到数量级的水平。” 一句话就把"人"这个变量放到了台面上。 这一章讲了什么 作者的起点是一次会议上的常见说法:年轻的软件经理声称,他们喜欢由一流人才组成的小型精干队伍,而不是几百人的大团队——这里的"人"当然暗指平庸者。作者说自己常常有同感,但随即指出,这种幼稚的观点回避了一个很困难的问题:如何在有意义的进度安排内创建大型的系统? 先看测量数据。Sackman 等人的研 …
这一章的题记来自 Sackman、Erikson 和 Grant 的测量:“效率高和效率低的实施者之间个体差异非常大,经常能够达到数量级的水平。” 一句话就把"人"这个变量放到了台面上。 这一章讲了什么 作者的起点是一次会议上的常见说法:年轻的软件经理声称,他们喜欢由一流人才组成的小型精干队伍,而不是几百人的大团队——这里的"人"当然暗指平庸者。作者说自己常常有同感,但随即指出,这种幼稚的观点回避了一个很困难的问题:如何在有意义的进度安排内创建大型的系统? 先看测量数据。Sackman 等人的研 …