- 作者:[美] 弗雷德里克·布鲁克斯
- 译者:汪颖
- 领域:软件工程/复杂项目管理
- 解读模式:论证型
- 核心概念:人月、沟通成本、概念完整性、外科手术队伍、第二系统效应、本质复杂性、次要复杂性
- 关键争议:进度与人力能否互换、架构权威是否必要、软件生产率能否获得数量级提升、计划与文档应当精确到何种程度
软件项目的困难并不主要来自程序员写得不够快,而来自复杂系统无法被任意切分:人力、时间、沟通、架构和认知之间存在不对称关系。
《人月神话》从IBM System/360家族及OS/360项目的管理经验出发,反驳一种极具诱惑力的工程直觉:既然工作量可以用“人月”衡量,那么人数和月份便可以彼此替换。布鲁克斯指出,这种换算只在任务能够独立分割、参与者之间几乎无须沟通时才近似成立;一旦项目需要共同理解、密切衔接和持续集成,新增人手就会同时制造培训、协调和返工成本。更深一层看,本书讨论的并不只是如何安排程序员,而是如何在认知能力有限、需求不断变化、组织沟通昂贵的条件下,维持复杂系统的概念完整性。
这是一部带有强烈经验色彩的论证之书。它的结论并非适用于一切组织的自然定律,也不能替代具体估算、工程实践和数据分析;但它揭示的约束至今仍然重要:复杂工作不是均质劳动,知识不能瞬间转移,局部效率不等于整体进度,增加资源也可能增加系统内部的摩擦。
中心问题
本书面对的中心问题是:为什么大型软件项目即使汇集了聪明的人、充足的预算和先进的设备,仍会反复延期、超支,并产生难以维护的系统?
表面上看,答案似乎是估算不准、人员不足或者执行不够严格。布鲁克斯却把问题推进了一层:软件项目管理者经常使用了错误的工作模型。他们把开发看成可线性分割的劳动,把人月当作一种同质资源,把设计、编码、测试和集成视为可以按计划依次完成的阶段,却低估了知识工作的依赖关系。一个模块的变化可能牵动多个接口,一位新成员要先理解已有决策,多个团队还必须共享关于系统目标、边界与结构的认识。
因此,项目延期不是单一失误的结果,而可能来自一组相互强化的机制:初始计划过于乐观,缺少应对不确定性的余量;里程碑定义含糊,坏消息不能及时显现;管理者发现延误后追加人员;原成员被迫培训新人,沟通路径增多;设计理解出现分歧,集成和返工负担继续上升;项目于是更加落后。
布鲁克斯真正质疑的是一种工业时代的管理想象:只要把总工作量算清,就能通过调整人力获得预定工期。对于具有高度耦合、持续变化和大量隐性知识的软件开发,这种想象往往不成立。
问题从何而来
软件具有一种特殊的双重性。一方面,它是抽象的符号结构,不受原材料加工和物理运输的直接限制;另一方面,它必须把大量规则、例外、状态与接口组织成可以运行的整体。正因为软件没有明显的物质边界,管理者容易认为它可以被自由拆分、快速修改,也容易把功能增长误认为只是代码数量的增长。
“人月”这一计量单位强化了这种错觉。如果某项任务需要十二个人月,直觉会把它理解为一个人做十二个月、两个人做六个月、十二个人做一个月。对于割麦、搬运等彼此独立的劳动,这种换算可能有意义;对于需要顺序推进的工作,它显然不能成立。孩子的孕育不能靠增加人数压缩为一个月,软件架构的理解、关键设计的形成和新成员的熟悉过程也存在不可任意压缩的时间。
大型系统又带来第二重困难:一个可运行的程序,与一个能被他人使用、维护并与其他部分协同的产品,不是同一事物。测试、文档、通用性、接口稳定性、异常处理和系统集成都会显著增加成本。单个程序员完成一个功能原型所需的努力,不能直接外推为大型产品的总体工作量。规模上升不仅意味着“更多”,还意味着性质发生变化——依赖更多、状态更多、参与者更多,协调和验证由辅助活动变成核心工作。
传统计划还常把“预计完成”当成“已完成”,把模糊百分比当成可靠进度。一个任务如果没有可检验的里程碑,开发者和管理者都可能长期维持乐观判断,直到集成阶段才暴露实际差距。布鲁克斯对进度控制的关注,因而不是要求组织提高催促频率,而是要求计划建立在可验证事件之上,并让小的延期尽早可见。
关键区分
首先要区分工作量与历时。工作量描述完成任务所需的总劳动,历时描述从开始到结束经过的日历时间。二者有关,却不能简单相除。只有任务可独立分割、资源可立即投入、产出能够无摩擦合并时,增加人力才可能近似缩短历时。
其次要区分程序、编程产品、编程系统和系统化产品。供作者本人使用的程序,可以依赖个人记忆和特定环境;面向他人的产品需要测试、文档、稳定接口和可维护性;作为系统组成部分的软件还要遵守总体结构,与其他模块正确协作。管理失误往往始于把原型的成本和速度当作产品化、系统化开发的依据。
第三要区分局部实现质量与整体概念完整性。一个模块可以写得精巧,却与系统其他部分使用不同的命名、交互模式或数据观念。概念完整性关注的是系统是否像出自一个连贯心智:用户能否从一处学到的规则推断另一处,设计决策是否围绕少数稳定原则展开。它不是代码风格统一,而是系统观念的一致。
第四要区分本质复杂性与次要复杂性。本质复杂性来自问题本身:业务规则、状态关系、现实世界的例外和需求变化。次要复杂性来自我们表达和实现软件所使用的语言、工具、平台及流程。更好的工具可以减少后者,却未必消除前者;把局部自动化的收益外推为整个软件开发的数量级突破,正是“银弹”想象的来源。
第五要区分正式权威与实质沟通。明确架构负责人,并不意味着其他成员无需参与;相反,概念完整性既需要少数人对总体设计承担最终责任,也需要大量双向沟通,使实现者理解设计理由,并把现实约束反馈给设计者。只有权威而没有沟通,会产生脱离实现的蓝图;只有讨论而没有决断,则可能产生折衷堆叠的系统。
概念地图
| 概念 | 精确含义 | 与其他概念的关系 | 在全书中的作用 |
|---|---|---|---|
| 人月 | 一个人工作一个月所代表的工作量单位 | 不能在高依赖任务中直接换算为历时 | 揭示线性资源模型的误导 |
| 沟通成本 | 成员间传递知识、协调接口、同步决策和解决冲突的负担 | 随团队规模及依赖关系增加,并抵消新增人力 | 解释追加人员为何可能加剧延期 |
| 概念完整性 | 系统的结构、规则和使用方式服从连贯的设计观念 | 依赖清晰的架构责任和持续沟通 | 连接组织结构与产品质量 |
| 外科手术队伍 | 由少数核心人员主导关键设计,其他角色提供专业支持的组织构想 | 试图同时保存小团队一致性与大项目资源能力 | 提供区别于平均分工的团队模型 |
| 第二系统效应 | 设计者在第二个系统中集中加入先前克制或遗漏的功能,导致过度设计 | 与概念完整性、规模控制和架构纪律相关 | 说明经验增加并不自动带来简洁 |
| 本质复杂性 | 软件所处理的问题领域固有的复杂关系 | 不能仅靠编程工具消除 | 构成“没有银弹”判断的基础 |
| 次要复杂性 | 表达、构建和运行软件时由技术媒介带来的额外困难 | 可由高级语言、工具和平台持续削减 | 限定技术进步能够带来的收益 |
| 计划再生 | 根据真实进展和新认识不断修订计划 | 依赖可检验里程碑和对变化的承认 | 把计划从一次预测转化为持续控制 |
论证链
从错误的计量模型到进度失真
布鲁克斯的第一个前提是:软件开发任务的可分割程度不同。某些测试、资料整理或彼此隔离的模块开发可以并行,但架构决策、接口定义、关键路径工作和系统集成具有强依赖性。第二个前提是:新增成员不是即插即用的资源。他们需要环境、资料和任务,更需要理解项目已经形成的隐性知识。培训通常占用最了解系统的原成员,而这些人恰恰可能位于关键路径上。
由此得到中间推论:团队人数增加时,名义生产能力上升,但协调负担也会增加。沟通关系并不一定表现为每个人都与所有人频繁交流,可是依赖越广,潜在同步路径越多。接口会议、代码审查、设计解释和集成冲突会占用新增产能。若任务本身无法充分并行,新增人手甚至会使关键成员暂时减少直接产出。
这条推理最后导向本书最著名的管理判断:向已经延期的软件项目增加人手,常会使项目进一步延期。这里的“常会”比“必然”更准确。如果新增人员熟悉技术和业务,任务能够隔离,组织有成熟的入职与接口机制,而且新增工作不落在关键路径上,增员仍可能有效。布鲁克斯攻击的不是一切增员,而是把增员当作普遍、立即、线性见效的补救办法。
从规模增长到概念完整性
第二条论证从系统质量出发。大型软件必须由多人完成,而多人设计天然带来观念差异:不同成员会偏好不同抽象、命名、交互方式和错误处理策略。如果所有局部选择都通过广泛协商形成,最终结果可能是妥协的叠加,而不是简单连贯的整体。
布鲁克斯因此强调概念完整性的优先地位。一个功能少一些但规则清楚的系统,可能比功能丰富却缺少统一观念的系统更易学、更可靠。为了维持完整性,架构设计需要由规模较小的核心群体负责,且必须区分“决定系统是什么”与“决定如何把它实现出来”。这种区分并非贬低实现工作,而是防止总体设计在局部最优中逐渐破碎。
“外科手术队伍”是这一论证在组织形式上的延伸。其核心不是复制医院的等级,而是承认复杂创造活动中的贡献并不均质:关键设计需要连续注意力和统一判断,其他成员则通过工具、测试、文档、运行支持和专业知识,放大核心设计者的能力。与把十个人视为十个可互换编码单位相比,这种结构更尊重认知工作的差异。
但该模型也包含风险。如果核心人员成为信息瓶颈,或者团队把“概念完整性”误解为拒绝反馈,它就会滑向个人英雄主义。书中的有用部分不是某套固定编制,而是一个组织原则:责任范围应与需要保持一致性的设计范围相匹配。
从乐观主义到可检验的控制
软件项目为何普遍低估工期?布鲁克斯把原因部分归于乐观主义。程序员容易以“功能在主要路径上运行”来判断接近完成,却低估异常处理、接口修正、测试、文档和集成的工作。管理者则可能接受缺乏证据的完成比例,直到多个小延误汇合为无法隐藏的大延期。
因此,计划不能只列出活动名称和结束日期,还要设置清晰、可判断的里程碑。一个里程碑必须对应可观察事件,例如设计获得确认、接口通过测试或构建在规定环境中运行,而不能只写“基本完成”。这种定义让进度成为可以共同核验的事实,减少层层汇报中的乐观修饰。
布鲁克斯还反对把计划视为一次制定后必须服从的静态命令。软件需求和实现认识会变化,初始估算也包含未知。可靠管理不是假装变化不存在,而是在变化出现时重新估算、调整范围和修订安排。计划的价值不在于证明管理者最初正确,而在于让组织更早看见偏差,并作出有代价意识的选择。
从技术进步到“没有银弹”
在“没有银弹”的论述中,布鲁克斯把软件困难分成本质复杂性和次要复杂性。过去的重大技术进步——例如更高级的语言、更便利的开发环境和交互式工具——主要减少了人们操纵机器表达形式的负担。这些进步非常真实,却不能自动简化现实问题中的规则、例外和变化。
软件的本质困难包括理解复杂概念结构、让抽象与现实一致、应对变化,以及使不可见的系统关系变得可沟通。由于相当一部分成本已经从低层编码转向需求、设计、验证和协调,继续改善某一种工具所能影响的比例便受到限制。因此,他怀疑会有单一技术在短期内普遍带来数量级的生产率、可靠性和简洁性提升。
这不是“技术不会进步”的预言,而是对收益来源的分析。许多技术可以产生巨大局部价值,也可能在特定领域改变开发方式;但“银弹”要求的是跨越问题类型、组织条件和系统规模的普遍跃升。只要需求仍然复杂、变化仍然存在、概念协调仍需人的判断,单一技术就很难独自满足这一要求。
证据与材料
本书最重要的材料来自大型系统项目的实践经验,尤其是System/360家族和OS/360开发中的组织、进度与设计问题。这些经验的优势在于,它们不是从小型示例外推出来的抽象原则,而是来自高成本、高依赖、多团队协同的工程环境。布鲁克斯能够观察局部设计如何在系统层面产生后果,也能看到一次看似合理的管理补救如何改变整个项目的沟通结构。
但经验材料的作用需要准确判断。它们有力地提出机制、暴露错误直觉并生成可检验假说,却不等于对所有软件团队完成了统计证明。IBM大型主机时代的硬件条件、组织层级、开发工具和发布方式,与今天的小型产品团队、开源协作或持续交付环境并不相同。案例支持的是“这些机制确实可能发生,而且管理者不能忽略”,不必然支持“所有团队都以同样强度重复这些结果”。
书中的类比承担了建立直觉的功能。“人月”与孕育时间的对照,帮助读者理解某些过程不能靠并行资源任意压缩;“焦油坑”呈现大型编程项目越挣扎越受束缚的体验;“外科手术队伍”用不同角色围绕核心任务协作的图景,挑战平均分工。这些类比并不是软件组织的精确因果模型。类比让约束变得可见,但具体项目仍需分析依赖关系、技能结构和信息流。
修订版加入对早期判断的重新审视,以及“没有银弹”及其后续反思,使本书获得一种少见的自我检验结构。作者没有简单把旧结论作为不容修改的教条,而是区分哪些判断经受住了时间,哪些需要重述或限定。这种材料安排本身也传达了一种知识态度:管理原则应在新技术和新组织条件下接受复查。
关键洞见
时间不是可以购买的普通资源
大型项目管理最容易误判的是时间的性质。资金可以买来服务器、场地和更多劳动合同,却不能立即买来共同理解,也不能消除任务的先后依赖。团队吸收新人、形成协作习惯和验证整体系统都需要日历时间。这个洞见迫使管理者把“需要多少劳动”与“最短需要多久”分开估计。
它也改变了延期处置的顺序。发现进度落后时,首先应当重新识别关键路径、未完成依赖和真实剩余工作,而不是直接问还能增加多少人。范围、质量、发布日期和资源之间仍然需要取舍,但资源不是无条件有效的唯一旋钮。
软件结构同时是组织结构
架构并不只是技术图纸,也划定了人们如何分工、在哪里沟通以及谁对哪些决策负责。如果模块边界频繁泄漏,团队就必须跨越组织边界不断协调;如果决策权与信息所在位置分离,审批会成为瓶颈;如果每个小组都独立追求局部最优,产品会失去统一性。
布鲁克斯由此把系统设计与组织设计连接起来。优秀架构不仅让机器正确运行,也应帮助人们在有限沟通下协作。不过,这一洞见不能被简化为“架构必须服从组织”或“组织必须复制架构”。两者会相互塑造,管理者需要观察接口的技术耦合是否与团队的信息流相匹配。
简洁是一种组织成就
概念完整性常被当成个人审美,实际上它需要制度条件。若所有利益相关者都能不断添加功能,却无人有权删除和统一;若架构者只提出原则,却不承担实现反馈;若进度压力鼓励每个团队就地打补丁,那么系统很难保持简洁。
简洁也不等于功能越少越好。它指的是系统中的概念数量受到控制,同一原则能够解释多个行为,例外不会无止境增殖。这样的设计降低用户学习成本,也降低开发者推理系统的负担。其条件是有人持续维护边界,并愿意承受拒绝局部便利的短期代价。
进度危机往往是知识危机
延期常以日期问题出现,背后却可能是未知工作尚未显现、团队对完成标准理解不同,或者关键决策只存在于少数人的头脑中。此时更密集地追问完成百分比并不能产生知识,只会促使报告者给出更精确的幻觉。
可验证里程碑、清晰接口和及时集成的共同作用,是把隐蔽的不确定性变成可讨论的事实。它们不能保证项目不延期,却能缩短“问题已经发生”与“组织承认问题”之间的间隔。管理的核心因而不只是控制行为,也是改善组织认识自身状态的能力。
解释力
《人月神话》最擅长解释三类现象。第一类是增员之后进度反而恶化:培训负担、沟通路径和集成冲突解释了名义资源与有效产出的背离。第二类是局部模块都已“完成”,整体系统却迟迟不能交付:产品化、系统化和跨模块验证所需的工作,在初始计划中被低估。第三类是技术能力很强的团队仍然产生难用的产品:缺少概念完整性时,优秀局部实现无法自动汇聚为连贯体验。
相比“项目失败是因为成员不够努力”的解释,布鲁克斯的框架更有力量,因为它能够指出结构性机制和反直觉后果。成员越努力,如果努力集中在错误方向,返工可能越多;沟通越频繁,如果架构边界不清,会议也可能只是反复协调同一冲突。它把注意力从个人态度移向任务依赖、知识转移、决策结构和完成标准。
相比纯粹的技术决定论,本书也更能解释为什么同一种工具在不同团队产生不同结果。工具能减少某些操作成本,却不能替团队澄清目标、选择抽象或建立信任。收益取决于项目的复杂性主要位于哪里,也取决于组织是否改变了与新工具不相容的流程。
竞争性解释
一种竞争性解释来自现代敏捷开发:问题不在于软件复杂性难以管理,而在于传统大型项目采用了过长的计划周期和反馈周期。小批量交付、跨职能团队、持续集成和频繁用户反馈,可以让风险更早暴露,也减少集中集成的灾难。这个解释拥有很强的实践说服力,并修正了早期大型项目的部分组织条件。
但它并未完全推翻布鲁克斯。短周期能够降低一次决策的风险,却不能消除依赖、知识转移和概念一致性的需要。敏捷团队同样会遭遇新人加入后的速度下降、跨团队接口冲突和架构债务。更准确的关系是:现代实践为布鲁克斯指出的机制提供了缓解手段,却没有宣布这些机制失效。
第二种解释强调软件工具和自动化的累积进步。高级语言、开源组件、云平台、自动化测试、代码生成和智能辅助工具,确实使许多过去昂贵的工作变得廉价。对于边界清楚、模式成熟的任务,生产率提升可能十分显著。这提示我们不能把“没有单一普遍银弹”误读为“工具只能带来微小改进”。
两种观点的分歧在于尺度。工具论通常展示特定活动或特定项目类型的改进;布鲁克斯关注的是整个软件开发活动能否获得普遍的数量级跃升。若编码只占总困难的一部分,编码效率的大幅提高未必等比例缩短需求理解、组织决策和系统验证。判断某项技术是否构成突破,必须说明它改变的是哪一种复杂性、覆盖多少成本,以及收益能否跨越情境。
第三种解释把项目失败归因于激励与权力,而不仅是认知和沟通。管理层可能为了争取预算故意压低估算,团队可能隐瞒风险以避免惩罚,部门也可能通过复杂流程维护控制权。这些政治经济因素在《人月神话》中并非核心,却能解释为什么组织即使知道进度规律,仍反复制定不可信的计划。布鲁克斯的模型说明错误如何发生,激励模型则进一步说明错误为何会被制度性地保留。
边界与反例
“向延期项目增加人手会使它更延期”有明确边界。若工作能够高度并行,新成员拥有相关背景,项目文档和自动化环境成熟,或者原团队缺少的正是某项独立专业能力,那么增员可能缩短工期。关键不在于背诵定律,而在于估算新增人力的净贡献:他们何时能够开始产出,会占用谁的时间,将新增哪些沟通和集成关系。
概念完整性也并非集中权威越强越好。对于探索性强、问题尚未定义的项目,过早统一可能压制有价值的多样方案;对于由稳定协议连接的分布式系统,不同模块可以保留局部差异。集中设计适用于那些用户需要形成一致心智模型、模块高度耦合或关键原则必须跨系统保持的部分,而不必扩张到每一个实现细节。
“外科手术队伍”依赖核心设计者拥有足够判断力,也依赖支持角色真正拥有专业权责。在现实组织中,它可能制造单点故障、压缩成员成长空间,并把协作成果错误归因于少数明星。更稳妥的运用方式,是识别哪些决策确实需要连续、统一的责任,而不是把所有重要工作集中到一个人身上。
“没有银弹”的边界则在于它是关于普遍、数量级改进的判断,不是对任何具体突破的预先否定。平台化、自动化和新型开发工具可能重新划分本质与次要复杂性的边界:过去需要手工处理的问题,可能被封装为稳定服务;过去难以观察的关系,也可能通过更好的表示方式变得容易推理。但封装并未使复杂性凭空消失,它常把复杂性转移给平台提供者,并形成新的依赖与失效模式。
本书还较少讨论用户研究、市场选择、组织激励与权力关系。一个项目可能工程管理良好,却因为解决了错误的问题而失败;也可能并非不能按时完成,而是决策者持续改变目标。布鲁克斯的框架适合分析软件生产中的认知与协调约束,却不能单独解释产品价值和组织政治。
现实映射
在远程和跨地域协作中,“人月”问题没有消失,只是沟通形式发生了变化。异步文档、代码评审和自动化测试可以减少同时开会的需要,也能保存决策记录;但时区差异、语境缺失和反馈延迟会引入新成本。判断远程团队能否扩张,不能只看人数,还要看任务边界是否清晰、文档能否承载必要知识,以及跨团队决策需要多少往返。
在平台化组织中,概念完整性表现为公共接口、身份模型、错误语义和用户体验规则的一致。平台团队若规定过少,各业务团队会重复解决相同问题;规定过多,又可能阻碍局部创新。布鲁克斯的思想提醒人们寻找需要统一的“少数核心概念”,而不是追求所有实现完全一致。
在快速采用新型开发工具时,“本质—次要复杂性”的区分尤其有用。如果工具显著缩短代码编写时间,项目瓶颈可能转移到需求澄清、结果验证、安全审查和系统集成。表面产出增加,并不自动意味着可交付价值等比例增加。评估工具应观察端到端周期、缺陷与返工,而不能只统计生成速度。
在公共数字化和大型企业改造中,系统常承载多年累积的规则与例外。此时复杂性并非全部来自技术陈旧,也来自组织现实本身。更新语言或迁移平台可以减少次要复杂性,却未必解决相互冲突的制度要求。若不先澄清规则,现代化甚至可能只是把旧矛盾更快地复制到新系统中。
这些映射都不是对具体项目的自动诊断。布鲁克斯提供的是观察问题的提问方式:工作能否分割,知识如何转移,统一性在哪里必要,复杂性来自问题还是工具,以及新增资源会改变怎样的信息结构。
思维训练
- 当前估算描述的是总工作量,还是最短日历时间?哪些任务必须依次发生,哪些部分才真正能够并行?
- 新增一名成员需要学习哪些显性与隐性知识?在产生净贡献之前,他会占用哪些关键成员的时间?
- 团队所说的“完成”对应什么可验证事件?是否把能运行的原型、可供使用的产品和可集成的系统混在了一起?
- 系统中哪些规则必须保持概念一致,哪些部分可以允许多种实现?最终责任是否与这一边界相匹配?
- 当前困难来自问题领域本身,还是来自语言、工具、平台和流程?拟议中的技术改进实际覆盖了哪一部分成本?
- 一个进度偏差是最近才发生,还是只是最近才被看见?现有里程碑和汇报机制为何未能更早暴露它?
- 面对一个成功案例,我们看到的是可迁移机制,还是特定团队、规模、架构和人才条件共同形成的结果?
全书思想地图
- 问题
- 为什么大型软件项目反复延期、超支并失去整体一致性?
- 为什么更多人、更先进的工具和更细的计划不能自动解决问题?
- 关键区分
- 工作量不等于历时
- 程序不等于产品,局部完成不等于系统完成
- 局部优秀不等于概念完整
- 本质复杂性不等于次要复杂性
- 架构权威不等于单向命令
- 核心概念
- 人月:有限条件下才可交换的人力计量
- 沟通成本:规模扩张附带的协调负担
- 概念完整性:系统服从连贯设计观念的程度
- 外科手术队伍:以核心责任维持一致性的组织构想
- 第二系统效应:经验积累诱发的过度设计
- 本质复杂性:问题领域固有的关系、变化与例外
- 次要复杂性:技术媒介增加的表达和操作负担
- 论证
- 高依赖任务难以线性分割
- 新成员需要培训并增加沟通
- 因而增员可能降低延期项目的短期净产出
- 多人设计容易产生观念分裂
- 因而关键架构需要连续、明确的责任
- 工具主要削减部分次要复杂性
- 因而单一技术难以普遍消除软件开发的全部困难
- 证据
- 大型系统项目的管理与设计经验
- 程序产品化、系统化所增加的工程负担
- 关于团队组织、里程碑和架构控制的案例
- 用于建立直觉而非替代证明的类比
- 修订版对早期判断的回顾与重新限定
- 洞见
- 时间不能像普通资源一样被即时购买
- 软件架构与组织的信息结构相互塑造
- 简洁和一致性需要明确的组织责任
- 进度危机常是关于真实状态的知识危机
- 边界
- 可并行、低培训成本的任务可能从增员中受益
- 概念完整性不要求所有决策集中
- 核心团队模式可能制造瓶颈和个人依赖
- 技术能产生巨大局部进步,但局部进步不等于普遍银弹
- 工程协调模型不能单独解释市场选择、组织激励与权力冲突