布鲁克斯法则
BROOKS'S LAW // 人月是个神话
> 项目落后三个月,经理的本能是加人——而布鲁克斯用 IBM System/360 与 OS/360 的血泪写下:向进度落后的项目增加人手,只会使进度更加落后。因为"人月"是个神话:人和月不能互换。新人要老手带教(净产出为负)、沟通链路按 n(n−1)/2 爆炸、可并行的工作总量有限——加的是人手,买的是延迟。
Principle — 原理与来源
人物:弗雷德里克·布鲁克斯(Frederick P. Brooks Jr., 1931–2022)——"IBM 大型机之父":主持 IBM System/360 系列架构(其 embrace 的 8 位字节、32 位字等决策影响至今),又历任 OS/360 操作系统项目经理。1975 年他把这段"人类历史上最大软件项目"的教训写成《人月神话》(The Mythical Man-Month)——被誉为"软件开发者的圣经",2020 年再版 40 周年纪念版。
三台引擎(为什么加人更慢):① 沟通开销爆炸——n 个人的沟通链路是 n(n−1)/2:5 人 10 条、10 人 45 条、20 人 190 条,加人先加会议;② 带教抽血——新人要老手培训引导,老手产出被抽走,且新人可犯错会污染生产代码,其净贡献在相当长时间内为负;③ 任务不可分——"九个女人一个月生不出一个孩子":梗图式比喻的严肃版本是,可并行分解的任务有限(Brooks 补充:串行部分正是 Amdahl 定律的软件版)。三者叠加,"人月"作为成本单位就此破产。
一体两面的姊妹概念:同书还提出第二系统效应(second-system effect:设计师成功后的第二个系统倾向于过度设计)与"外科手术队伍"(组织模式)。1986 年论文《没有银弹》(No Silver Bullet,收于 1995 十周年版)进一步断言:软件的本质复杂性(essence)没有单一突破解——复杂度、一致性、可变性与不可见性四大属性使生产力不可能数量级跃升。
Apply — 用在哪里
Simulate — 加人模拟器 × 分区推演
Personal Takeaways — 个人启示 · 03
人月不是货币,是陷阱
一切"再要十个人月"的说法都值得警惕:人月假设人和月可互换,而真实世界里沟通成本按平方增长、带教成本先吃掉产能。估算时把这两项显式列进成本,是管理者诚实的第一步。
落后的项目,先减法后加法
落后时最便宜的三步永远是:砍范围、调顺序、换掉关键路径上的人——加人是最后手段,且加的人必须能独立扛走一块完整工作。用视角 B 的结论说话:可并行度不够时,加人是花钱买延期。
组织结构是最好的优化器
n(n−1)/2 不是宿命而是设计参数:小团队、清晰接口、异步文档化沟通,都在压低那条平方曲线的系数。把系统拆成低耦合模块,等于把大团队的沟通税分摊给接口——布鲁克斯与康威在此汇合。