Created At 2025-12-10
人月神话:读书分享会的讲稿
书名的解释
各位书友,大家好!今天我分享的这本书,名字叫做《人月神话》。乍听上去,你可能会觉得这是一部关于载人航天和登月工程的纪实文学,记录了工程团队克服各种困难把宇航员送上月球的故事。
事实上,它的英文原名是 The Mythical Man-Month: Essays on Software Engineering。它确实是一本属于工程领域的书,但这里的月和月球并没有直接关系,而是表示时间的月。这里的 Mythical,我认为翻译成“神话”是不恰当的,不如说是“谬误”或者“迷思”!
所以,如果让我来重新翻译,我可能会直接称它为《人月谬论》。在破除这个谬论之前,我们还得先从“人月”这个单位说起。
“人月”(Man-Month)本身是一个项目管理中的工时计量单位。
顾名思义,“人月”等于“一个人工作一个月”所能完成的工作总量。 例如,6 人月的任务,代表 1 个人可以在6 个月内完成,理论上也可以交给 2 个人在 3 个月内完成,或者 6 个人在 1 个月内完成。
它是由人力和时间这两个维度简单地相乘,得出一个固定的工作量。
作者介绍
那么作者为什么,又凭什么要说这个理论是谬误呢? 这本书的作者,弗雷德里克·布鲁克斯博士(Frederick P. Brooks, Jr.),曾担任IBM OS/360 项目的总负责人。 这个项目是什么来头呢? 为了方便各位理解,我就这样说吧,微软曾经是 IBM 的一个外包公司。而 OS/360 是上世纪 60 年代,IBM 最宏大的一个软件项目。
然而,这个项目遭遇了严重的延期和预算超支。正是这段亲身经历的失败与教训,促使布鲁克斯博士在项目结束后,将团队在管理、组织和技术上的经验反思总结出来,系统地整理成了这本书,并于 1975 年出版。
书本的结构
谈到结构,这本书的组织形式很有特点。它并非按照传统的教材章节划分,而是把若干篇散文汇编到一起,正如原版的书名所说 Essays on Software Engineering。不过,这些章节都有着清晰的联系和脉络,我们可以将全书大概分为两个核心部分:
第一部分,讨论的是软件固有的复杂性,管理上的常见错误,例如我们前面提到的“人月”是如何成为一个谬论的。
第二部分,则讨论的是解决方案,作者基于他的经验,提出了许多实用的管理策略,比如说理性规划、角色分离、重视文档。
核心观点
好,我们回到这本书的标题,破除“人月谬论”是本书的起点。布鲁克斯博士指出,当项目延期时,管理者最本能的反应是增加人手,这是最大的错误。试想,如果一位母亲需要 10 个月孕育一个新生命,10 位母亲可能在 1 个月内完成这项壮举吗?
当然这个例子是我编的。
作者在书中进行了比较严肃的论证,总结了两个主要原因。
-
沟通开销爆炸。当团队成员数量每增加
N,他们之间可能的沟通渠道数量会以N(N-1)/2的速度增长。你加了一个新人,带来的不是一倍,而是数倍的沟通成本增长。 -
新成员的学习曲线.新加入的成员需要时间来学习系统的复杂性、代码的架构和团队的规范。在这个学习期间,他们不仅不能提高生产力,反而会占用现有核心成员的时间去辅导他们,从而拖慢了整个项目的进度。
综上所述,作者提出了自己名字命名的布鲁克斯法则(Brooks’ Law),即项目的进度不能简单地通过增加人力来压缩,向一个已经延期的项目增加人手,只会让它更加延期。
那既然不能盲目地增加人力,如何更科学地管理大型的工程和庞大的工程人员呢?
作者核心观点是 Conceptual Integrity 也就是概念完整性/理念一致性
- 简单来说,就是设计必须由少数架构师,甚至最好由一个人来控制。
- 以确保产品在概念上是一致的。
- 核心架构确定后,通过严格的文档和规格说明降低实现团队成员之间的沟通协调需求,使得他们可以专注于实现。
- 作者把这样的团队构成比作为「外科手术团队」。
我自己
书本上的内容就介绍到这里。
接下来介绍一下我自己吧,我目前在岳麓区一家电商公司做软件开发。你们看我的发量可以看出来,目前还是处于比较基层的一个岗位哈。 我平常比较喜欢读推理小说,但是像这类型的书实在是很难在分享会介绍给大家。
出于职业的原因,平常我也读一些技术书籍,但是那些书太过于垂直了。比如说像计算机网络,10 分钟左右的时间几乎不可能讲清楚。10 分钟能讲明白蜘蛛网络就不错了。
所以最终是选择了这本算是工程管理方面的《人月神话》。
各位有什么问题要问吗?