计算机与信息 · 13/14
布鲁克斯定律Brooks's Law
给延期项目加人,若新人的贡献抵不过带教和协调成本,反而更晚。
IBM把软件团队扩到上千人,仍没追回交付日期。1964年,IBM在纽约州波基普西发布System/360,布鲁克斯负责开发配套的OS/360。随后,软件开发进度落后,公司不断增员。董事长小托马斯·沃森去查看进展,看见一整栋楼坐满程序员。一位主管的办公桌旁放着行军床,连睡觉都留在办公室。尽管人手越加越多,系统的各个部分仍晚了几个月交付。布鲁克斯后来总结,这种增员反而拖慢了项目。
为什么成立
新人先占用老手的时间
临近交付时加来的新人,先要从熟手那里学会怎么干活。假设团队正在修复上线前的故障,新人得了解代码、历史决定和测试方法。最懂故障的人停下来讲解、分派任务、检查改动,原本能用来收尾的时间就被拿走。新人独立产出之前,团队的有效产出会先下降。
人数增加,也会增加对齐和整合的工作
3个人之间有3对关系,6个人之间有15对。如果每个人都要与其他人协调,潜在沟通关系数是:
这里的是人数:人数翻倍,潜在关系数超过翻倍。团队实际花多少时间,取决于谁必须和谁对齐。新人接手的工作越牵连其他人的改动,熟手越要解释接口、处理冲突、重新测试,交付前要做的事也随之增加。
剩余时间太短,就收不回增员的成本
项目延期后,加人能否赶回工期,取决于新人在剩余时间里能补回多少产出。若带教和协调拿走的产出超过新人补回的产出,项目就会更晚。即使总产出增加,交付也要等最晚完成的那条任务链:设计未定,下游就得等;系统未通过整体验证,就还不能交。增员是否有效,要看它能否让决定交付日期的工作提前完成。
出处
布鲁克斯定律来自软件工程。弗雷德里克·布鲁克斯在1975年的《人月神话》中提出它,依据是他在IBM主持OS/360开发的经历。这个大型项目不断扩充团队,却仍延误交付;他从中归纳了带教、协调和任务无法完全并行带来的代价。
换个领域看
公共服务
增援先减负担
救火专家能靠减少协调负担,让增援奏效。2013年美国医保网站HealthCare.gov上线失败后,米基·迪克森加入救援团队。他发现项目涉及数百人、数十家公司,却缺少统一协调和运行监控。团队补上监控,让相关人员集中协调,帮助网站恢复。他们补上了原团队缺少的能力,让已有人员更容易一起干活。
投资
尽调越催越慢
临近签约时扩充尽调团队,会把关键知情人的时间分走。假设你投资一家企业,交易已拖期,又请来三组顾问。三组人都要财务负责人解释同一笔异常收入,他只好重复开会,原定的账目核对反而停下。把问题合成一份,由一个联系人收集答复,财务负责人就能少开几次会,把时间留给核对。
个人生活
搬家越帮越忙
临时来帮忙的人若事事都要问主人,主人就更难收尾。假设搬家车已在楼下等着,你还没打包完,两位朋友赶来帮忙。哪些文件要留、哪箱先搬、易碎品怎么包,他们都得问你;你不断停下手里的活,还要拆开装错的箱子。把已分类的书交给他们装箱,让他们独立完成这件事,你就能专心处理剩下的物品。
遇事时问自己
- 交付究竟卡在缺人手,还是卡在只有少数熟手能完成的任务上?
- 新人第一周能独立完成什么,又会占用哪位熟手多少时间?
- 从今天到交付,新人增加的产出能否补回带教、协调和返工拿走的产出?
- 新人接手的任务若提前完成,最终交付日期会跟着提前吗?
- 把整理资料等独立任务交出去,能否让负责收尾的人少受打断?
边界与误用
拖住交付的任务能独立分工、新人熟悉工作,且剩余时间足够收回带教成本时,加人能缩短工期。搬运已封好的箱子、处理规则明确的工单,就比接手未定稿的系统容易见效。熟悉项目的专家直接解决关键故障,也能让交付提前。最常见的误用是把它当成一条禁止增员的口号;真正危险的是临近截止日,把需要大量带教的人塞进彼此牵连的工作。沟通关系数也不能直接换算成延期天数。
练一练
一家工作室的纪录片已延期,距放映只剩两天。三名剪辑师还在调整叙事顺序,主要靠主剪判断哪些镜头该留。老板临时调来三名熟练使用剪辑软件、但没看过素材的人。他们要先听主剪讲清故事和素材,再分段修改,最后由主剪合并检查。
这次增员对按时交片的影响,哪种判断最站得住?
新人短期贡献有限,确实容易让人判断增员没用。但他们还会占用主剪的时间,原团队的产出也可能下降。
平分素材看起来能平分工时。但叙事判断和最后整合仍依赖主剪,人数翻倍不等于这两项工作提速。
新增人手先占用了最关键的人的时间,又增加了整合工作。只剩两天,新人的产出可能来不及补回这些成本。
熟练操作软件确实省去了工具培训。但这次缺的是对素材和叙事选择的理解,仍要靠主剪讲解和检查。
交片卡在主剪的判断和整合上,临时增员却让他多了带教与检查任务。剩余时间很短,新人即使剪出了更多片段,也可能让最终成片更晚完成。
你持有一家设备公司的股票。公司一批订单已延期,装配全部完成,只剩逐台验收。每台设备可以独立测试,测试工位充足,出货也有余量。公司调来另一工厂的持证检验员,他们熟悉同型号设备,半天即可完成本厂流程培训,距新交货日还有两周。一位投资者因此断言:“延期后再加人,只会让交货更晚。”
对这位投资者的判断,哪种评价最站得住?
新增检验员能直接分担拖住出货的验收工作。培训短、剩余时间较长,且工位充足,具备增员见效的条件。
持证且熟悉设备,确实有利于迅速投入工作。但这只能支持可能提速,不能推出人数与速度严格成正比。
人数增加可能带来协调成本。但这里每台设备独立测试,无需人人互相对齐,潜在关系数不能直接代表实际成本。
已经延期确实会让人怀疑执行能力。但过去计划失准,不能证明这次增员无效;还要看剩余任务能否独立完成。
延期后增员是否有效,要看新增产出能否超过培训和协调成本,并推动决定交货日期的工作。这里验收可以并行,增援又熟悉设备,不能套用“延期就不该加人”的结论。
你准备给外公做生日纪念册,明晚必须送印。还有一百张老照片的人物和年份没有确认,只有妈妈认得;另有两百张照片的说明已写在纸上,尚未录入。妈妈一直在辨认照片和录入说明之间来回切换。两位朋友愿意帮忙,打字很快,但都不认识照片里的人。
怎样安排这两位朋友,最有可能让纪念册按时送印?
平均分配张数看起来公平,也像是在分摊工作量。但辨认能力不能平均分配,朋友遇到不认识的人仍要打断妈妈。
补背景可能帮助朋友理解照片。但送印就在明晚,半天讲解先占用妈妈的时间,朋友也未必能据此准确认人。
先分头判断,看起来能让辨认工作并行。但朋友缺少人物背景,妈妈仍要逐张核对,还可能多花时间纠正误认。
朋友接手了可以独立完成的工作,减少妈妈的切换和打断。妈妈能把时间用在只有她能完成、又拖住送印的辨认任务上。
增援不一定要直接接手最难的任务,也可以移走关键人物身上的其他工作。让朋友独立录入已确认的说明,能释放妈妈的时间,推进真正决定送印日期的照片辨认。