类别: 法则
类型: 项目管理
起源: 软件工程, 1975, 弗雷德·布鲁克斯
别名: 人月神话
类型: 项目管理
起源: 软件工程, 1975, 弗雷德·布鲁克斯
别名: 人月神话
快速回答 — 布鲁克斯定律指出,向延误的软件项目增加人手会使其更加延误。这一原则由弗雷德·布鲁克斯基于其领导IBM OS/360项目的经验提出,揭示了复杂项目中仅靠增加资源无法解决进度延误问题——新成员需要培训,且会产生协调开销,抵消其短期贡献。
什么是布鲁克斯定律?
布鲁克斯定律是软件项目管理中的一项基本原则,描述了团队规模与项目进度之间违反直觉的关系。该定律指出,向已经延误的项目增加更多人员会使项目进一步延误——并非因为新人员能力不足,而是因为入职、沟通和协调本身存在固有成本。“向延误的软件项目增加人手,会使其更加延误。” — 弗雷德·布鲁克斯核心洞察在于软件开发不同于制造业。在工厂中,增加工人通常会相应增加产出。但在复杂的知识工作中,沟通开销呈非线性增长。每个新人都必须接受培训、融入工作流程,并与现有团队成员协调——这些工作会分散实际进展的注意力。
布鲁克斯定律的三层理解
- 入门: 理解向陷入困境的项目增加人员往往会使情况变得更糟,而非更好。新成员的初始热情会被培训和协调成本所抵消。
- 实践: 在向延误项目增加资源之前,先计算新成员的”上手时间”和协调开销。通常,减少范围或改进流程比增加人员更有效。
- 进阶: 认识到布鲁克斯定律在高度相互依赖的项目中最为适用。高度模块化的项目可以更容易地吸收新成员。还要了解何时可以规避该定律——向”功能农场”(低耦合)增加人员。
起源
弗雷德·布鲁克斯(出生于1931年)是美国软件工程师和计算机科学家,于20世纪60年代管理IBM的OS/360操作系统项目。OS/360项目是当时规模最大的软件项目之一——数百万行代码、数百名开发人员、雄心勃勃的跨IBM计算机线兼容目标。 当项目落后于进度时,IBM管理层的常规反应是增加更多程序员。布鲁克斯观察到这只会让事情变得更糟。新程序员必须学习庞大的代码库,现有团队成员花时间指导而非编程,增加的协调负担拖慢了所有人的进度。 该项目最终发布,但晚了数年,预算严重超支。布鲁克斯后来写道,他从OS/360学到的最有价值的一课是:“生孩子需要九个月,无论分配多少女性都是如此。“核心要点
应用场景
项目规划
将协调开销纳入考量,制定现实的进度计划。要认识到将团队规模翻倍很少能将时间线减半。
招聘决策
抵制”用人解决问题的诱惑”。评估新员工能否快速上手以提供帮助。
危机管理
当项目落后时,首先调查根本原因。在不解决底层问题的情况下增加资源会使问题加剧。
团队结构
设计自主性强、依赖性最低的团队。康威定律表明系统架构反映团队沟通模式。
经典案例
OS/360项目
IBM在20世纪60年代中期的OS/360操作系统项目在规模上具有开创性——数百万行代码、数百名开发人员、跨IBM计算机产品线的雄心勃勃的兼容性目标。 当项目落后于进度时,IBM管理层常规地增加了更多程序员。布鲁克斯观察到这只会让事情变得更糟。新程序员必须学习庞大的代码库,现有团队成员花时间指导而非编程,增加的协调负担拖慢了所有人的进度。 该项目最终发布,但晚了数年,预算严重超支。布鲁克斯后来写道,他从OS/360学到的最有价值的一课是:“生孩子需要九个月,无论分配多少女性都是如此。“边界与失效场景
法则不适用的场景:- 高度模块化的项目: 如果工作可以干净地分成独立模块,增加人员可能有所帮助。关键是任务是否具有真正的依赖性。
- 项目早期阶段: 向刚启动的项目增加人员可能成本较低,因为需要学习的上下文较少。
- 纯顺序任务: 如果工作是纯附加性的(如数据录入),更多人确实可以提高吞吐量。
- 用布鲁克斯定律为人员不足辩护: 定律并非说你永远不应该增加人员——它说的是向延误的项目增加人员是反效果的。从一开始就配备充足人员仍然很重要。
- 在紧急情况下忽略该定律: 一些管理者恐慌并仍然增加人员,反复吸取这一教训。
- 将其应用于所有领域: 布鲁克斯定律具体针对软件;其在其他领域的适用性各不相同。
常见误区
布鲁克斯定律意味着永远不应该向项目增加人员
布鲁克斯定律意味着永远不应该向项目增加人员
**错误。**该定律具体针对延误的项目。如果工作可以分解,向进度正常但需要加速的项目增加人员可能有效。
该定律证明软件开发人员是特殊的
该定律证明软件开发人员是特殊的
**错误。**该原则适用于任何复杂的相互依赖的知识工作——不仅仅是软件。创意项目、研究团队和复杂的组织举措都表现出类似的动态。
布鲁克斯定律已过时因为现在有更好的工具
布鲁克斯定律已过时因为现在有更好的工具
**错误。**虽然工具改进了,但沟通开销和上手时间的基本挑战仍然存在。现代敏捷方法实际上强调更多沟通,使该定律更加相关。
相关概念
人月神话
布鲁克斯关于软件项目管理的开创性著作,引入了这一定律。
康威定律
系统设计反映组织沟通结构的观察。
帕金森定律
工作会扩展以填满可用时间的观察。
关键路径分析
识别决定项目工期的任务序列的项目管理技术。
敏捷方法论
强调迭代进展和团队协作的开发方法。
范围蔓延
项目需求超出原始目标的失控扩张。