<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <author>
    <name>Ryu Xin</name>
  </author>
  <generator uri="https://hexo.io/">Hexo</generator>
  <id>https://ryu.xin/zh/</id>
  <link href="https://ryu.xin/zh/" rel="alternate"/>
  <link href="https://ryu.xin/zh/feed.xml" rel="self"/>
  <rights>All rights reserved 2026, Ryu Xin</rights>
  <subtitle>关于软件工程、人工智能、组织与人的长篇思考</subtitle>
  <title>软件、AI 与人</title>
  <updated>2026-07-30T16:00:00.000Z</updated>
  <entry>
    <author>
      <name>Ryu Xin</name>
    </author>
    <category term="软件工程" scheme="https://ryu.xin/zh/categories/software-engineering/"/>
    <category term="AI" scheme="https://ryu.xin/zh/tags/AI/"/>
    <category term="Software Engineering" scheme="https://ryu.xin/zh/tags/Software-Engineering/"/>
    <category term="Books" scheme="https://ryu.xin/zh/tags/Books/"/>
    <category term="Organizations" scheme="https://ryu.xin/zh/tags/Organizations/"/>
    <content>
      <![CDATA[<header class="abstract"><h2 data-no-number="true">摘要</h2><p>AI 把代码生成的速度推到了前所未有的高度，也制造了一个危险错觉：既然实现越来越便宜，软件项目就应该越来越快，团队也可以越来越小。真实情况更接近相反的一面——代码生成得越多，需要理解、验证、协调和长期拥有的内容也越多；Agent 越能并行，人的判断、注意力和责任越容易成为拥堵点。</p><p>《人件》讨论的从来不只是办公室噪声或管理技巧。它关心的是知识工作发生的条件：专注如何形成，团队如何凝聚，信任如何支持学习，管理又如何在不知不觉中摧毁生产力。AI 没有让这些问题过时，只是让干扰源从人扩展到了机器，让组织原有的优点与缺陷都获得了更大的杠杆。</p></header><p class="thesis">AI 改变了软件生产的速度，却没有改变《人件》揭示的事实：软件项目最复杂的部分，从来不是代码，而是置身其中的人。</p><p class="part-label">第一部分 · 被工具掩盖的人</p><h2 id="为什么今天应该重新阅读《人件》"><span class="section-no">01</span><a href="#为什么今天应该重新阅读《人件》" class="headerlink" title="为什么今天应该重新阅读《人件》"></a>为什么今天应该重新阅读《人件》</h2><p class="lead dropcap">第一次读《人件》时，我把它当作一本讲软件团队管理的书。书里那些问题都很具体：嘈杂的办公室、频繁的会议、不合理的工期、人员流动、团队凝聚力，以及管理者如何在不知不觉中毁掉一支原本优秀的团队。</p><p>AI 编程工具普及之后再读，我才意识到，Tom DeMarco 和 Timothy Lister 真正在追问的并不是办公桌应该怎样摆，而是一个更根本的问题：<strong>软件开发的主要瓶颈，究竟是技术，还是人？</strong></p><p>过去，我们很容易把效率问题理解为“程序员写得不够快”。于是行业不断发明更高级的语言、更强的框架、更完善的 IDE、更自动化的流水线。今天，AI 又把这条路推到了新的极限：一个开发者可以同时让多个 Agent 搜索仓库、修改代码、生成测试、分析日志和更新文档。几天的实现工作，几小时就能看到候选结果。</p><p>可是，项目并没有因此获得无限速度。需求仍然会含糊，系统仍然有历史，边界仍然需要取舍，发布仍然可能失败，责任也仍然要落到具体的人身上。《人件》第三版在 2013 年更新时仍把软件开发的核心挑战概括为“人的问题，而非技术问题”；到了 Agent 时代，这个判断没有变弱，反而变得更锋利。<sup class="ref"><a href="#ref-1">[1]</a></sup></p><blockquote><p>当执行变得便宜，定义、判断、验证与承担后果就会显得更昂贵。AI 没有消灭人的瓶颈，它只是把瓶颈从键盘前移到了决策链。</p></blockquote><h2 id="瓶颈没有消失，只是换了位置"><span class="section-no">02</span><a href="#瓶颈没有消失，只是换了位置" class="headerlink" title="瓶颈没有消失，只是换了位置"></a>瓶颈没有消失，只是换了位置</h2><p>在传统开发里，最显眼的稀缺资源是实现时间。产品排期往往围绕“写完需要多久”展开。AI 降低了这部分成本，却没有按相同比例降低其他成本：理解需求、选择方案、评审变更、核对业务规则、证明安全性、处理迁移、观察上线结果，以及在事故发生时恢复系统。</p><p>于是，成本开始向下游移动。过去可能是四小时编码、一小时检查；现在也许是十分钟生成、两小时理解和验证。前者的等待发生在生产之前，后者的拥堵发生在生产之后。只看生成阶段，会觉得速度提高了几十倍；看完整价值流，提升可能很小，甚至变成返工。</p><p>2025 年 DORA 的 AI 辅助软件开发研究把这种现象描述为系统问题：AI 会放大团队和交付系统里已经存在的条件。强平台、松耦合架构、快速反馈能吸收更高的变更量；薄弱测试、缓慢流程和紧耦合系统则会把更高产出转化为不稳定。<sup class="ref"><a href="#ref-6">[6]</a></sup></p><div class="callout"><p><strong>真正需要比较的不是“人工写代码”与“AI 写代码”的速度。</strong></p><p>而是从问题被提出，到价值被安全交付并能长期维护，整个系统的净吞吐是否提高。</p></div><p>这正是重读《人件》的起点：不要把工具的局部速度，误认成组织的整体生产力。</p><p class="part-label">第二部分 · 注意力成为新的生产线</p><h2 id="AI-消除了等待，却制造了更多打断"><span class="section-no">03</span><a href="#AI-消除了等待，却制造了更多打断" class="headerlink" title="AI 消除了等待，却制造了更多打断"></a>AI 消除了等待，却制造了更多打断</h2><p>《人件》中最经久不衰的主题之一，是不被打断的工作时间。对于程序员、设计师和架构师，高质量产出通常不在零散空隙里发生。问题背景、代码结构、业务约束和设计选项需要被同时装进大脑，经过一段连续时间，才会形成足以工作的心智模型。</p><p>进入状态可能要十五分钟，也可能要半小时。一条消息看似只占两分钟，真正损失的却是完整认知现场。心理学中的任务切换研究也反复观察到切换成本：人需要移动目标、重新激活规则，而规则越复杂，切换代价越高。<sup class="ref"><a href="#ref-2">[2]</a></sup></p><p>传统开发的打断大多来自人：产品经理问进度，测试人员反馈问题，领导临时拉会，同事请求协助。AI 时代，打断开始大量来自机器。</p><p>一个开发者同时运行三个、五个甚至更多 Agent：一个重构后端，一个生成前端，一个补测试，另一个分析生产日志。它们不断返回结果、提出问题、申请权限、报告失败或等待确认。于是开发者不再持续写一件事，而是在多个认知现场之间来回跳转：</p><ul><li>检查 Agent A 修改了哪些文件，是否越过任务边界；</li><li>判断 Agent B 的测试失败来自代码还是环境；</li><li>回忆 Agent C 采用了哪条方案、放弃了哪些假设；</li><li>阻止 Agent D 顺手重构并不属于本次任务的模块；</li><li>把相互独立的输出重新合并进同一个系统上下文。</li></ul><p>程序员从代码生产者变成了并发任务调度器。问题是，Agent 可以并行运行，人的理解、判断和责任承担仍然主要是串行的。</p><figure class="article-figure"><img src="/assets/articles/peopleware-ai-era/figure-peopleware-attention-bottleneck.webp?v=43cae87c946f1926" width="1672" height="941" loading="lazy" alt="一名工程师位于圆形工作空间中央，周围多个 AI 工具同时向中心输送任务和结果，象征人的注意力成为并发工作的瓶颈"><figcaption><p>**图 1 · 注意力瓶颈。**机器可以同时生产十条结果，人却必须逐条重建背景、判断风险并承担责任。并发增加的是候选产出，不是人的认知带宽。</p></figcaption></figure><p>这解释了一种很有时代特征的疲劳：一天里没有持续敲键盘，身体看起来也没有高强度劳动，人却异常疲惫。真正消耗他的，是不停重建上下文、判断例外和关闭认知回路。</p><div class="pullquote"><p>过去，管理者用会议打断程序员；今天，程序员可能亲手启动十个 Agent 来打断自己。</p></div><h2 id="真正稀缺的不是代码，而是高质量注意力"><span class="section-no">04</span><a href="#真正稀缺的不是代码，而是高质量注意力" class="headerlink" title="真正稀缺的不是代码，而是高质量注意力"></a>真正稀缺的不是代码，而是高质量注意力</h2><p>AI 编程最容易带来的误判，是把“实现成本下降”理解成“所有成本都下降”。实际上，当上游代码生成能力大幅增加，评审、测试、集成和决策会成为新的排队点。</p><p>代码可以并行生成，评审不能无限并行；方案可以批量产生，团队仍要逐个取舍；测试可以自动执行，失败原因仍需被理解；Agent 可以不断重试，生产事故最终仍由人承担。如果每条工作流都默认把异常抛给人，人的注意力就成了所有自动化共同争抢的单线程锁。</p><p>因此，管理者不能只问“还能再增加几个 Agent”，而要问一组完全不同的问题：</p><div class="principles"><div class="principle"><strong>输入是否值得</strong> — 哪些任务值得启动生成？哪些需求尚未清楚到可以委派？</div><div class="principle"><strong>输出是否可筛</strong> — 哪些结果应自动过滤、合并或拒绝，而不是全部推给工程师？</div><div class="principle"><strong>责任是否清楚</strong> — 谁拥有最终判断，谁验证业务正确性，谁决定合并与发布？</div><div class="principle"><strong>并发是否有上限</strong> — 一个人同时维护多少个活跃上下文，仍能理解系统整体？</div></div><p>如果这些问题没有答案，增加 Agent 就像在一条已经拥堵的流水线上继续提高上游速度：结果不是更高的交付效率，而是评审积压、测试爆仓、架构漂移和线上风险增加。</p><p>当生产能力变得廉价，组织更需要保护注意力，而不是继续透支注意力。</p><h2 id="代码增长了，团队认知却没有同步增长"><span class="section-no">05</span><a href="#代码增长了，团队认知却没有同步增长" class="headerlink" title="代码增长了，团队认知却没有同步增长"></a>代码增长了，团队认知却没有同步增长</h2><p>传统软件管理喜欢用可统计的活动代替难以衡量的价值：代码行数、提交次数、功能数量、任务完成率和迭代速度。AI 让这些指标变得更危险。</p><p>一个 Agent 几分钟就能生成几千行代码，一次建立十几个模块，也能把一个简单问题扩展成一场结构完整的重构。如果仍用产量衡量生产力，几乎每支团队的数据都能迅速变漂亮。</p><p>但代码不是资产本身。只有被团队理解、经过验证、能够演进并确实解决用户问题的代码，才可能成为资产。否则，AI 生成得越快，团队积累的不是能力，而是<strong>认知负债</strong>。</p><p>开发者亲手写代码时，通常经历过为什么这样设计、哪些边界最危险、哪些方案被放弃。就算文档不完整，这些决策至少曾进入某个人的思考。AI 生成的代码则可能绕过这个认知形成过程，直接进入仓库：它能运行、能通过测试，甚至更整洁，但团队中没有人真正拥有它。</p><figure class="article-figure"><img src="/assets/articles/peopleware-ai-era/figure-peopleware-cognitive-debt.webp?v=411f4e0c90bf18ba" width="1672" height="941" loading="lazy" alt="三名团队成员研究一张有限的系统图，狭窄桥梁另一端是由 AI 工具快速扩建的庞大模块化城市，象征系统规模超过团队理解范围"><figcaption><p>**图 2 · 认知负债。**系统在代码层面迅速扩大，团队共享的心智模型却仍停留在桥的另一端。真正的风险不是代码由谁写，而是是否有人能够解释、改变和恢复它。</p></figcaption></figure><p>这会产生一种项目幻觉：功能完成了，演示能运行，仓库也在增长；工程师面对的却是一个越来越陌生的系统。直到线上异常、业务规则变化或跨模块重构时，组织才发现，那些快速生成的代码并没有转化为可控制的软件能力。</p><p>METR 在 2025 年对 16 名熟悉成熟开源项目的开发者做随机对照研究，覆盖 246 个真实任务。在当时特定工具与样本条件下，允许使用 AI 的开发者平均反而多花约 19% 时间，而且主观上仍认为自己变快了。研究团队明确提醒这只是早期 2025 工具和特定人群的快照；到 2026 年，后续实验又受选择偏差影响，无法给出可靠的当前速度结论。它最值得保留的启示不是“AI 让人变慢”，而是：<strong>感觉更快不能替代对完整工作流的测量。</strong><sup class="ref"><a href="#ref-7">[7]</a></sup><sup class="ref"><a href="#ref-8">[8]</a></sup></p><div class="callout"><p>**《人件》提醒我们：**不要把人在座位上的时间当成有效工作时间。</p><p>**AI 时代还要补充一句：**不要把模型输出的数量，当成团队已经获得的能力。</p></div><p class="part-label">第三部分 · 团队不是可压缩的容器</p><h2 id="心理安全不是福利，而是-AI-可靠性的一部分"><span class="section-no">06</span><a href="#心理安全不是福利，而是-AI-可靠性的一部分" class="headerlink" title="心理安全不是福利，而是 AI 可靠性的一部分"></a>心理安全不是福利，而是 AI 可靠性的一部分</h2><p>《人件》反复强调，真正凝聚起来的团队不是靠管理命令组装的。它拥有信任、共同目标、身份认同和一定程度的自主权。这些条件在 AI 时代不是变得次要，而是变得更关键。</p><p>当 AI 可以完成越来越多编码工作，工程师会自然地产生不安：我的经验是否正在贬值？公司引入 AI 是为了帮助我，还是为了减少人？如果我把工作方法沉淀成 Skill 或 Agent，以后还需要我吗？AI 生成的代码出了问题，责任到底算谁的？</p><p>管理者若回避这些问题，只重复“降本增效”，成员就会开始理性地自我保护：有人隐藏工作方法，不愿让经验成为组织资产；有人表面采用 AI，实际拒绝改变；有人制造只有自己能解释的复杂性；也有人对模型输出降低责任感，觉得“反正不是我写的”。</p><p>Amy Edmondson 将团队心理安全定义为一种共同信念：在这个团队里承担人际风险是安全的。她对 51 个团队的研究发现，心理安全与学习行为相关，而学习行为又连接到团队绩效。<sup class="ref"><a href="#ref-3">[3]</a></sup> AI 协作恰好需要更多这种风险承担——成员必须愿意说：</p><ul><li>“我还没有理解这段生成代码。”</li><li>“这个结果虽然通过测试，但我不相信它覆盖了真实风险。”</li><li>“我刚才的提示方向错了，需要推翻重来。”</li><li>“这个任务不适合继续自动化，应该先把需求说清楚。”</li></ul><figure class="article-figure"><img src="/assets/articles/peopleware-ai-era/figure-peopleware-psychological-safety.webp?v=790d147eef7c493b" width="1672" height="941" loading="lazy" alt="五名团队成员围绕共享桌面讨论不完整的系统模型，协作形成保护性的结构穹顶，AI 工具在两侧提供材料"><figcaption><p>**图 3 · 安全感形成学习空间。**团队可以把不完整的模型、疑问和坏消息放上同一张桌子，才有机会在代码进入生产之前发现错误。Agent 提供材料，信任决定材料能否被诚实评估。</p></figcaption></figure><p>如果组织不允许人说“我不知道”，AI 就会放大虚假的确定性：模型自信地给出答案，工程师不敢提出异议，管理者又急于展示成果。三种力量叠加之后，一段无人真正理解的代码便顺利通过所有人的视线。</p><div class="pullquote"><p>心理安全不是温和的企业福利，而是让坏消息能赶在事故之前抵达团队的可靠性机制。</p></div><h2 id="AI-时代的-Teamicide：团队如何被更快地摧毁"><span class="section-no">07</span><a href="#AI-时代的-Teamicide：团队如何被更快地摧毁" class="headerlink" title="AI 时代的 Teamicide：团队如何被更快地摧毁"></a>AI 时代的 Teamicide：团队如何被更快地摧毁</h2><p>《人件》用了一个尖锐的词：<em>Teamicide</em>，团队自毁。很多团队不是能力不足，而是被管理方式逐渐瓦解：不现实的期限、频繁调整成员、内部竞争、过度标准化，以及用流程替代信任。</p><p>AI 又增加了几种新的自毁方式。</p><h3 id="把工程师变成-Agent-操作员"><a href="#把工程师变成-Agent-操作员" class="headerlink" title="把工程师变成 Agent 操作员"></a>把工程师变成 Agent 操作员</h3><p>如果管理者认为模型已经能够完成大部分技术工作，于是逐渐收走工程师的设计空间，只要求接收任务、调用模型、提交结果，短期可能提高产量，长期却会让团队失去判断能力。一个长期不需要做设计决策的人，最终也会失去做设计决策的能力。</p><h3 id="用-AI-强化个人产量竞赛"><a href="#用-AI-强化个人产量竞赛" class="headerlink" title="用 AI 强化个人产量竞赛"></a>用 AI 强化个人产量竞赛</h3><p>谁生成的代码更多、谁关闭任务更快、谁同时运行的 Agent 更多——这些指标看似客观，却会推动成员追求局部产出，减少共同评审、知识共享和集体责任。SPACE 生产力框架早已指出，开发者生产力涉及满意度与福祉、绩效、活动、沟通协作、效率与流动，不能由单一活动指标替代。<sup class="ref"><a href="#ref-4">[4]</a></sup> 当生成成本下降，活动数量与真实价值之间的距离只会更大。</p><h3 id="不断削减人数，直到系统失去组织记忆"><a href="#不断削减人数，直到系统失去组织记忆" class="headerlink" title="不断削减人数，直到系统失去组织记忆"></a>不断削减人数，直到系统失去组织记忆</h3><p>管理者看到部分任务可以自动完成，便推断原来十个人的工作现在只需要三个人。可那十个人承担的不只是编码，还有业务记忆、异常判断、跨部门协调、值班经验、客户语境和风险缓冲。这些能力很少出现在任务统计里，却决定团队在意外发生时能否恢复。</p><p>裁掉的可能是“看起来没有直接产出的人”，失去的却是系统最难重新生成的上下文。</p><div class="table-wrap"><table><caption>AI 时代三种常见的 Teamicide</caption><thead><tr><th>管理动作</th><th>短期表象</th><th>长期损失</th></tr></thead><tbody><tr><td>把工程师降格为操作员</td><td>任务完成更快、流程更统一</td><td>设计判断萎缩，复杂问题无人拥有</td></tr><tr><td>按 AI 活动量排名</td><td>提交、代码和关闭数上升</td><td>局部优化、评审敷衍、知识私有化</td></tr><tr><td>按可自动化任务裁员</td><td>人力成本迅速下降</td><td>组织记忆、风险冗余与恢复能力消失</td></tr></tbody></table></div><h2 id="最好的-AI-团队，不是人最少的团队"><span class="section-no">08</span><a href="#最好的-AI-团队，不是人最少的团队" class="headerlink" title="最好的 AI 团队，不是人最少的团队"></a>最好的 AI 团队，不是人最少的团队</h2><p>AI 时代很容易产生一种极端想象：未来的软件公司只需要一个创始人，加上一群永远在线的 Agent。这种模式确实可以快速产生原型，甚至运营边界清楚的小产品。但复杂系统的长期建设仍然需要团队，因为真正困难的问题很少只是“怎样生成代码”。</p><p>复杂系统需要不同责任视角之间的碰撞。架构师关注长期演进，开发者关注实现与可读性，测试人员寻找失败路径，运维人员关注运行时行为，产品人员判断用户价值，安全人员思考正常流程之外的攻击方式。</p><p>AI 可以模拟这些角色，列出它们可能关心的问题，却很难替代真实责任带来的判断。负责生产稳定性的人，会对一次看似无害的依赖升级保持警惕；经历过资金差错的人，会本能追问幂等性；长期服务某类客户的人，知道需求文档里哪一句话才是不能妥协的约束。这些判断来自经历、责任与后果，不只是来自知识。</p><p>所以，AI 时代优秀团队的目标不应该是无限减少人数，而是把人的时间从机械实现转移到更高价值的工作：定义问题、设计边界、验证事实、处理例外、积累知识、修复系统，以及在不同利益之间做出可以被解释的取舍。</p><div class="callout"><p><strong>AI 的价值不是把团队消灭，而是让团队重新分配注意力。</strong></p><p>减少无意义劳动是手段；保留判断能力、学习能力和恢复能力，才是组织真正得到的回报。</p></div><p class="part-label">第四部分 · 为人和 Agent 共同设计环境</p><h2 id="管理者的新职责：重新设计工作环境"><span class="section-no">09</span><a href="#管理者的新职责：重新设计工作环境" class="headerlink" title="管理者的新职责：重新设计工作环境"></a>管理者的新职责：重新设计工作环境</h2><p>《人件》认为，管理者的主要工作不是让人们忙起来，而是创造一个让人们能够完成工作的环境。到了 AI 时代，这句话依然成立，只是“环境”的边界扩大了。</p><p>它不再只包括安静的空间、合理的会议和稳定的团队，还包括：Agent 能访问什么资源；哪些操作必须由人批准；什么结果必须自动验证；一个任务允许修改多大范围；上下文如何保存与交接；多条工作流怎样避免互相覆盖；失败后系统如何停止、回滚和恢复；谁对最终结果负责。</p><p>这些规则不能靠一句提示词解决。如果组织只是给每个人购买 AI 工具，却不重新设计开发流程，AI 最终只会成为附加在旧系统上的加速器：它让代码更快地产生，却不能让需求更清楚、决策更合理，也不会让测试、发布和恢复能力自动提升。</p><figure class="article-figure"><img src="/assets/articles/peopleware-ai-era/figure-peopleware-human-agent-environment.webp?v=630ce7b744eb3d61" width="1672" height="941" loading="lazy" alt="AI 工具从左侧输送大量模块，系统中的人通过分流、验证、恢复通道和安静工作空间，将其整理为右侧稳定而宜人的共同环境"><figcaption><p>**图 4 · 环境就是控制系统。**管理不是催促上游生成更多，而是设计边界、门禁、反馈、恢复路径与安静空间，让速度最终抵达一个人能够理解和长期拥有的系统。</p></figcaption></figure><p>真正的变化，是把软件流程设计成一个人和 Agent 共同工作的运行系统：机器负责搜索、生成、重复执行和初步验证；人负责定义目标、处理模糊性、判断取舍、识别风险并承担责任。两者之间需要清晰的接口，也需要不耗尽人的节奏。</p><h2 id="把人的注意力当作容量，而不是免费资源"><span class="section-no">10</span><a href="#把人的注意力当作容量，而不是免费资源" class="headerlink" title="把人的注意力当作容量，而不是免费资源"></a>把人的注意力当作容量，而不是免费资源</h2><p>AI 工作流最常见的设计错误，是只计算模型吞吐，不计算人的吸收能力。生成一个补丁的成本可以接近零，但把它变成可信变更，需要评审时间、领域知识、测试证据和发布窗口。任何一项不足，候选结果都会排队。</p><div class="equation"><p><strong>有效交付能力 = min（生成能力，理解能力，验证能力，发布与恢复能力）</strong> 这是管理视角的约束表达，不是严格数学模型：系统吞吐由最窄的瓶颈决定。</p></div><p>这意味着，一个团队即使拥有无限 Agent，有效吞吐仍然不会超过其最薄弱的控制环节。更糟的是，过量在制品会反过来损伤理解能力：未完成的评审、等待回答的问题、并行分支和悬而未决的方案占据工作记忆，增加每次切换的恢复成本。</p><p>因此，限制并行不是落后，而是保护认知完整性的工程措施。实践中可以从几个朴素动作开始：</p><ul><li>给每位工程师设置活跃 Agent 工作流上限，而不是鼓励无限并发；</li><li>把低置信、重复和越界结果先由自动门禁过滤，再请求人的注意；</li><li>要求每个 Agent 交付变更摘要、关键假设、验证证据和未覆盖风险；</li><li>给复杂任务保留连续、无通知的理解与评审时段；</li><li>测量从开始到安全上线的周期，而不是只测模型生成用时。</li></ul><p>生产力研究也支持这种多维视角：SPACE 框架拒绝单指标，DORA 强调平台、流程、架构和价值流对 AI 效果的调节。<sup class="ref"><a href="#ref-4">[4]</a></sup><sup class="ref"><a href="#ref-6">[6]</a></sup> 管理者真正需要优化的不是“每个人调用多少次模型”，而是团队能否以更低认知负担、更稳定的质量，把正确价值交付出去。</p><h2 id="六条面向-AI-团队的《人件》原则"><span class="section-no">11</span><a href="#六条面向-AI-团队的《人件》原则" class="headerlink" title="六条面向 AI 团队的《人件》原则"></a>六条面向 AI 团队的《人件》原则</h2><p>把《人件》带进 Agent 工作流，不需要先发明一套宏大的管理体系。更有效的起点，是把对人的尊重变成具体的系统约束。</p><div class="principles"><div class="principle"><strong>01 · 保护连续专注</strong> — 将深度理解和评审时间视为生产资源；集中处理 Agent 回报，不让每个事件都即时打断。</div><div class="principle"><strong>02 · 限制在制品</strong> — 根据人的理解与验证容量限制并发，而不是根据工具能启动多少任务设置目标。</div><div class="principle"><strong>03 · 让责任跟随决定</strong> — 明确谁定义目标、谁批准风险、谁拥有上线结果；“由 AI 生成”不能成为责任真空。</div><div class="principle"><strong>04 · 奖励共享能力</strong> — 奖励可复用的知识、评审质量和团队结果，不用代码量、提交数或 Agent 数量制造竞赛。</div><div class="principle"><strong>05 · 允许暴露不确定性</strong> — 领导者主动示范提问、承认不知道、感谢坏消息，让质疑模型结果成为正常工程行为。</div><div class="principle"><strong>06 · 保留组织记忆与冗余</strong> — 不要把暂时没有显性产出的经验视为浪费；稳定团队、交叉学习和恢复能力是系统保险。</div></div><div class="diagnostic"><h3>给管理者的五分钟诊断</h3><ol><li>团队能否说出当前最稀缺的是生成、理解、验证还是发布能力？</li><li>一个工程师有多少条活跃 Agent 工作流？这个数字是有意识设定的吗？</li><li>最近一次模型输出被明确拒绝，理由是否被记录并转化为规则或评测？</li><li>成员能否公开说“我不理解这段代码”，而不担心被评价为不会使用 AI？</li><li>AI 节省的时间被重新投入了学习、质量与用户价值，还是立刻变成了更多任务？</li></ol></div><h2 id="AI-越强，《人件》越重要"><span class="section-no">12</span><a href="#AI-越强，《人件》越重要" class="headerlink" title="AI 越强，《人件》越重要"></a>AI 越强，《人件》越重要</h2><p>《人月神话》告诉我们，软件项目不能靠增加人力获得线性加速，因为沟通与协调成本会迅速上升。《人件》进一步提醒我们：即使人数不增加，即使工具更强，只要忽视人的认知、情绪、关系和工作环境，生产力仍会崩溃。</p><p>AI 没有推翻这两本书。它只是让旧问题换了一种形式。</p><p>过去，我们担心给延期项目增加更多程序员；今天，我们要警惕给失控流程增加更多 Agent。过去，管理者用会议、报表和流程占满工程师的时间；今天，工程师可能被模型输出、权限申请、评审请求和并行任务占满注意力。过去，团队因为办公室噪声无法进入心流；今天，团队可能因为永不停歇的 AI 工作流失去完整思考。</p><p>工具越强，人越容易被看成系统里缓慢、昂贵、可以继续压缩的部分。但恰恰在这个时候，人的判断、信任、责任感和创造力变得更珍贵。AI 可以生成代码，却不能替组织决定什么值得建设；可以提供方案，却不能替团队承担选择的后果；可以模拟协作角色，却不会自动创造真正的信任。</p><p>重读《人件》之后，我最大的感受，不是“人仍然不会被 AI 替代”这种简单的乐观判断，而是一个更严肃的结论：</p><p>AI 不会自动让软件组织变得更好。它只会放大组织原本的样子。</p><p>一个信任员工、保护专注、重视质量的组织，会借助 AI 获得巨大的能力提升；一个迷信指标、透支团队、追求短期产量的组织，则会用 AI 更快地制造技术债、认知债和组织债。DORA 在 2025 年把 AI 称为“放大器”，正好给了这个判断一份当代注脚。<sup class="ref"><a href="#ref-5">[5]</a></sup></p><p>未来真正领先的软件团队，未必拥有最多的 Agent，也未必永远使用最强的模型。它们更可能是那些最早明白：当代码不再稀缺，真正需要保护的，是人。</p><section class="references" id="references"><h2 data-no-number="true">参考文献与延伸阅读</h2><p class="note">书名与论文名保留原文。本文关于组织与 AI 的判断以《人件》为主线，研究资料用于校准任务切换、心理安全与生产力测量等关键概念；链接均指向出版机构、论文页或研究团队。</p><ol><li id="ref-1">DeMarco, Tom, and Timothy Lister. <em><a href="https://www.pearson.com/en-us/subject-catalog/p/peopleware-productive-projects-and-teams/P200000000214/9780321934116">Peopleware: Productive Projects and Teams</a></em>, 3rd ed. Addison-Wesley Professional, 2013.</li><li id="ref-2">Rubinstein, Joshua S., David E. Meyer, and Jeffrey E. Evans. “<a href="https://pubmed.ncbi.nlm.nih.gov/11518143/">Executive Control of Cognitive Processes in Task Switching</a>.” <em>Journal of Experimental Psychology: Human Perception and Performance</em>, 27(4), 2001.</li><li id="ref-3">Edmondson, Amy. “<a href="https://doi.org/10.2307/2666999">Psychological Safety and Learning Behavior in Work Teams</a>.” <em>Administrative Science Quarterly</em>, 44(2), 1999.</li><li id="ref-4">Forsgren, Nicole, et al. “<a href="https://www.microsoft.com/en-us/research/publication/the-space-of-developer-productivity-theres-more-to-it-than-you-think/">The SPACE of Developer Productivity: There’s More to It Than You Think</a>.” <em>ACM Queue</em>, 19(1), 2021.</li><li id="ref-5">Harvey, Nathen, and Derek DeBellis. “<a href="https://cloud.google.com/blog/products/ai-machine-learning/announcing-the-2025-dora-report">Announcing the 2025 DORA Report: State of AI-Assisted Software Development</a>.” Google Cloud Blog, 2025.</li><li id="ref-6">DORA / Google Cloud. “<a href="https://cloud.google.com/resources/content/2025-dora-ai-assisted-software-development-report">2025 State of AI-Assisted Software Development Report</a>.” 2025.</li><li id="ref-7">Becker, Joel, et al. “<a href="https://metr.org/blog/2025-07-10-early-2025-ai-experienced-os-dev-study/">Measuring the Impact of Early-2025 AI on Experienced Open-Source Developer Productivity</a>.” METR, 2025.</li><li id="ref-8">Becker, Joel, et al. “<a href="https://metr.org/blog/2026-02-24-uplift-update/">We Are Changing Our Developer Productivity Experiment Design</a>.” METR, 2026.</li><li id="ref-9">Brooks, Frederick P. Jr. <em>The Mythical Man-Month: Essays on Software Engineering</em>. Addison-Wesley, 1975; Anniversary Edition, 1995.</li><li id="ref-10">Skelton, Matthew, and Manuel Pais. <em>Team Topologies: Organizing Business and Technology Teams for Fast Flow</em>. IT Revolution, 2019.</li></ol></section>]]>
    </content>
    <id>https://ryu.xin/zh/posts/peopleware-ai-era/</id>
    <link href="https://ryu.xin/zh/posts/peopleware-ai-era/"/>
    <published>2026-07-30T16:00:00.000Z</published>
    <summary>重读《人件》：当 AI 让代码生成变得廉价，软件组织真正需要保护的是人的注意力、信任、判断与共同责任。</summary>
    <title>重读《人件》：AI 越强，软件开发越是一场关于人的战争</title>
    <updated>2026-07-30T16:00:00.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Ryu Xin</name>
    </author>
    <category term="软件工程" scheme="https://ryu.xin/zh/categories/software-engineering/"/>
    <category term="AI" scheme="https://ryu.xin/zh/tags/AI/"/>
    <category term="Software Engineering" scheme="https://ryu.xin/zh/tags/Software-Engineering/"/>
    <category term="Architecture" scheme="https://ryu.xin/zh/tags/Architecture/"/>
    <category term="Books" scheme="https://ryu.xin/zh/tags/Books/"/>
    <content>
      <![CDATA[<header class="abstract"><h2 data-no-number="true">摘要</h2><p>生成式 AI 把代码生产的边际成本压到了前所未有的水平，也制造了一种诱人的错觉：既然代码可以被迅速生成，软件工程的旧规律就将失效。本文提出相反判断。《人月神话》最值得保留的从来不是对某种编程工具的评价，而是它对复杂性、沟通、组织结构与概念完整性的观察。AI 改变了劳动分工和反馈速度，却没有自动决定产品应该成为什么、系统应承担何种约束、风险由谁负责。</p><p>文章逐章重释 Brooks 的核心思想，并将其延伸到 Coding Agent、多智能体协作、上下文工程、知识库、架构约束、评测与可观测性。结论不是“AI 只是新工具”，也不是“AI 将替代软件工程”，而是：软件工程的控制面正在从代码本身上移到知识、边界与验证系统。</p></header><p class="thesis">AI 没有终结《人月神话》。它把这本书的问题，从“如何组织程序员生产代码”，升级成了“如何组织人和智能体共同控制复杂性”。</p><p class="part-label">第一部分 · 回到 Brooks 的问题现场</p><h2 id="为什么今天应该重新阅读《人月神话》"><span class="section-no">01</span><a href="#为什么今天应该重新阅读《人月神话》" class="headerlink" title="为什么今天应该重新阅读《人月神话》"></a>为什么今天应该重新阅读《人月神话》</h2><p class="lead dropcap">1975 年，《人月神话》首次出版。半个世纪之后，我们用自然语言要求模型写接口、补测试、迁移框架，甚至让多个 Agent 在隔离环境中并行处理问题。表面看，这是 Brooks 所处时代无法想象的生产力跃迁；更深处看，我们又一次站到了他熟悉的泥潭边：产出增加了，系统却未必更容易理解；参与者增加了，项目却未必更快完成。</p><p>这本书经久不衰，是因为它讨论的并非某种语言、流程或工具，而是软件开发中的比例关系：可并行工作与不可并行决策的比例，局部效率与整体吞吐的比例，新增功能与新增认知负担的比例，以及创造速度与验证能力的比例。工具会让这些比例变化，却不会让它们消失。</p><p>AI 时代最容易被放大的，是“可见的产出”：代码行、提交数、原型数量、关闭的任务。最不容易被看见的，则是产出背后的债务：没有被记录的假设、边界条件、隐含耦合、权限漏洞、迁移路径、值班负担和未来维护者需要重新建立的心智模型。Brooks 的价值，恰好是迫使我们把目光从产出移向系统。</p><p>因此，重读不是给旧结论换上 AI 名词，而是重新追问三个问题：第一，AI 究竟消除了哪些成本，又把哪些成本转移到了下游？第二，当执行者从人扩展为 Agent，沟通与协调的结构发生了什么变化？第三，什么样的知识和治理机制，能让更快的生成速度转化为长期可持续的软件能力？</p><h2 id="一场五十亿美元豪赌留下的工程经验"><span class="section-no">02</span><a href="#一场五十亿美元豪赌留下的工程经验" class="headerlink" title="一场五十亿美元豪赌留下的工程经验"></a>一场五十亿美元豪赌留下的工程经验</h2><p>Brooks 的判断不是书斋推演。IBM 在 1964 年推出 System/360，用统一架构替代多条互不兼容的产品线。IBM 将其称为一场耗资五十亿美元、几乎押上公司的豪赌；Fred Brooks 是项目领导者之一。System/360 最重要的商业承诺，是让软件可以跨同一系列机器运行，让客户扩展硬件时不必重写全部程序。<sup class="ref"><a href="#ref-3">[3]</a></sup></p><p>统一的硬件架构创造了平台，却也把前所未有的复杂性推给了 OS/360。硬件兼容、不同配置、交付排期、团队扩张与沟通链路交织在一起。正是在这种大规模工程的压力下，Brooks 看见一个反直觉事实：软件工作无法像搬砖一样，把总量平均分给更多人。许多任务存在顺序依赖；新成员需要学习；接口需要协商；已有成员还要花时间解释和整合。</p><p>今天的相似之处并不是 AI 像 1960 年代的程序员，而是我们也在进行一次平台迁移。过去的软件组织把“人能写多少代码”当成稀缺资源；现在代码供给迅速扩张，稀缺资源开始转向高质量问题定义、领域判断、架构上下文、可信验证和上线责任。生产函数变了，但任何组织如果继续用旧指标管理新稀缺性，都会得到大量看似完成、实际上未被吸收的工作。</p><div class="callout"><p>**历史的真正类比：**System/360 通过统一架构释放了软件复用，却让操作系统工程暴露出新的规模问题；AI 通过统一的自然语言接口释放了代码生成，也会让知识一致性、验证容量与责任边界暴露出新的规模问题。</p></div><h2 id="软件工程五十年，到底改变了什么"><span class="section-no">03</span><a href="#软件工程五十年，到底改变了什么" class="headerlink" title="软件工程五十年，到底改变了什么"></a>软件工程五十年，到底改变了什么</h2><p>如果只看技术名词，过去五十年几乎每十年都发生一次“范式革命”；如果看工程目标，变化却高度连续。结构化程序设计减少控制流的任意性，面向对象尝试把数据与行为组织成可理解的单元，敏捷缩短需求与反馈之间的距离，云计算把基础设施变成可编程资源，DevOps 让构建、测试、发布和运维形成闭环，平台工程再把这些能力产品化。AI Coding 与 Agent Engineering 处在这条链的下一段：它们把“产生候选实现”与“执行工具链”变成可委派能力。</p><dl class="timeline"><dt>1968</dt><dd>“软件危机”进入公共讨论；软件工程开始被当作独立学科。</dd><dt>1975</dt><dd>《人月神话》总结大型软件项目中的进度、组织与设计经验。</dd><dt>1987</dt><dd>Brooks 发表《没有银弹》，区分本质复杂性与偶然复杂性。<sup class="ref"><a href="#ref-2">[2]</a></sup></dd><dt>1990s</dt><dd>面向对象、设计模式与开源协作扩大软件复用边界。</dd><dt>2001</dt><dd>敏捷宣言强调个体互动、可工作的软件、客户协作与响应变化。<sup class="ref"><a href="#ref-10">[10]</a></sup></dd><dt>2010s</dt><dd>云、持续交付、SRE 与 DevOps 把反馈和运营纳入日常工程。</dd><dt>2021</dt><dd>自然语言代码补全走向大众化，开发者开始与模型结对。</dd><dt>2024</dt><dd>工具调用、MCP 等协议推动模型连接代码库、数据与外部系统。<sup class="ref"><a href="#ref-28">[28]</a></sup></dd><dt>2025–26</dt><dd>Coding Agent 从补全走向自主读取仓库、修改、运行测试、提交审阅，并出现多 Agent 工作台。<sup class="ref"><a href="#ref-24">[24]</a></sup><sup class="ref"><a href="#ref-25">[25]</a></sup></dd></dl><p>这条时间线说明，AI 并不是凭空降临的软件革命，而是抽象层不断上移的延续。每次上移都会消除一部分手工劳动，同时产生新的控制面：高级语言需要编译器与类型系统，云需要基础设施即代码与可观测性，持续交付需要自动化门禁，Agent 则需要上下文、工具权限、运行轨迹、评测和人工审批。</p><figure class="article-figure"><img src="/assets/articles/mythical-man-month-ai-era/figure-01-software-engineering-evolution.webp?v=9911dc6986b6ec1d" width="1672" height="941" loading="lazy" alt="软件工程五十年演进横向时间轴：从 Code、Framework、Platform、Cloud、AI Coding、Agent Engineering 到 Knowledge Engineering，并区分控制层上移与执行层自动化"><figcaption><p><strong>图 1 · 软件工程五十年演进</strong>　从 Code 到 Knowledge Engineering，执行层持续自动化，工程控制面则从实现细节逐步上移到编排、约束与组织知识。</p></figcaption></figure><p class="part-label">第二部分 · 八个经典命题的 AI 时代重释</p><h2 id="AI-改变代码速度，却没有取消本质复杂性"><span class="section-no">04</span><a href="#AI-改变代码速度，却没有取消本质复杂性" class="headerlink" title="AI 改变代码速度，却没有取消本质复杂性"></a>AI 改变代码速度，却没有取消本质复杂性</h2><p>在《没有银弹》中，Brooks 区分了两类困难：<em>essential complexity</em>，来自问题本身必须表达的复杂关系；<em>accidental complexity</em>，来自工具、表示方法和实现过程附加的困难。这个区分经常被粗暴改写成“AI 只能消灭偶然复杂性”，但现实更细腻。</p><p>AI 确实显著压低了许多实现成本。样板代码、数据转换、常见接口、测试脚手架、查询语句、文档初稿和跨语言翻译，都可以更快生成。它也能帮助人探索本质问题：归纳访谈、提出反例、模拟方案、检索代码依赖、解释陌生领域。换言之，AI 不只是在更快地打字，它也可以扩展人的思考带宽。</p><p>然而“帮助理解”不等于“消除本质”。一家银行仍需决定在何种证据下拒绝交易；医疗系统仍需定义何为可接受风险；协作产品仍需处理权限继承、数据保留与合规冲突。模型可以提出候选答案，却不能让这些取舍从现实中消失，也不能自动获得承担后果的授权。</p><p>更值得警惕的是，偶然复杂性的下降会刺激系统规模增长。当新增一个服务、一个配置项或一条自动化流程的成本接近于零，团队更容易选择“再加一个”。局部实现变简单，系统整体可能反而更复杂。这是一种复杂性反弹：节省下来的编码成本，被更多功能、更多依赖和更多运行状态重新消费。</p><blockquote><p>“There is no single development … which by itself promises even one order-of-magnitude improvement.”</p><p>Frederick P. Brooks Jr., “No Silver Bullet”, 1987（短引）</p></blockquote><p>Brooks 反对的不是进步，而是“单一突破带来数量级改善”的幻想。AI 当然可能给特定任务带来数量级提升；但当衡量单位从“生成一个函数”扩大到“把正确系统安全地运行十年”，承诺就必须重新接受检验。</p><h2 id="Brooks-定律：更多-Agent-也会让坏架构更快失控"><span class="section-no">05</span><a href="#Brooks-定律：更多-Agent-也会让坏架构更快失控" class="headerlink" title="Brooks 定律：更多 Agent 也会让坏架构更快失控"></a>Brooks 定律：更多 Agent 也会让坏架构更快失控</h2><blockquote><p>“Adding manpower to a late software project makes it later.”</p><p>《人月神话》第二章（短引）</p></blockquote><p>这条定律成立，有三个条件：任务不能完全切分，新参与者需要获得上下文，最终产物必须被整合。人类团队如此，Agent 系统同样如此。十个 Agent 并不天然等于十倍吞吐，因为它们可能读到不同版本的需求、重复修改同一区域、基于不一致假设设计接口，并把冲突留给最后的集成者。</p><p>Agent 的“入职成本”看似比人低：给它仓库、指令和工具即可开工。但它的上下文不是稳定的长期理解，而是每次运行中被选择、压缩和重建的信息。更多并行任务意味着更多上下文切片、更多分支、更多测试占用，以及更多需要人工判断的候选变更。若系统边界模糊，Agent 会非常高效地扩大模糊。</p><p>因此，AI 时代的 Brooks 定律可以表述为：**向一个已经失去概念边界的项目增加更多 Agent，通常只会更快地产生更多不可整合的局部正确。**解决办法不是拒绝并行，而是先提高任务可分解性：定义所有权、冻结接口、提供验收条件、限制写入范围、让每项变更独立验证，再决定并发度。</p><div class="table-wrap"><table><caption>人类扩编与 Agent 扩编的协调成本</caption><thead><tr><th>成本来源</th><th>人类团队</th><th>Agent 团队</th><th>工程对策</th></tr></thead><tbody><tr><td>上下文获取</td><td>培训、会议、代码阅读</td><td>检索、提示、上下文压缩</td><td>高信号项目地图与任务包</td></tr><tr><td>决策一致性</td><td>经验和理解差异</td><td>提示、模型和采样差异</td><td>ADR、契约、示例与不变量</td></tr><tr><td>写入冲突</td><td>多人修改同一模块</td><td>并行分支产生语义冲突</td><td>所有权边界与小批量合并</td></tr><tr><td>质量判断</td><td>评审者注意力有限</td><td>候选产出远快于验证</td><td>自动门禁加风险分级审阅</td></tr><tr><td>责任归属</td><td>角色与组织授权</td><td>Agent 不能承担上线责任</td><td>明确的人类批准者和回滚路径</td></tr></tbody></table></div><h2 id="The-Surgical-Team：Agent-是数字手术队吗"><span class="section-no">06</span><a href="#The-Surgical-Team：Agent-是数字手术队吗" class="headerlink" title="The Surgical Team：Agent 是数字手术队吗"></a>The Surgical Team：Agent 是数字手术队吗</h2><p>Brooks 借鉴 Harlan Mills 的“外科手术式团队”：由一位首席程序员保持设计与实现的智识统一，其他成员像麻醉师、器械师和助手一样提供专业支持。它的重点不是英雄主义，而是避免把同一个核心设计平均切给许多人，再期待它自行长成一个一致系统。</p><p>Coding Agent 让这个构想获得新的现实形态。一个负责人可以让不同 Agent 分别搜索历史、编写迁移脚本、补充测试、检查安全风险、更新文档；负责人保留问题定义、方案选择和最终合并权。OpenAI 在 2025 年介绍 Codex 时，就把它描述为可在隔离云环境中并行处理软件任务、运行测试并提出待审阅变更的工程 Agent；到 2026 年，产品界面进一步转向对多个长任务 Agent 的监督。<sup class="ref"><a href="#ref-24">[24]</a></sup><sup class="ref"><a href="#ref-25">[25]</a></sup></p><p>但“数字手术队”只有在主刀真正掌握系统时才成立。若负责人只负责分发模糊任务，没人维护整体模型，团队会退化为十支手术刀同时下刀。AI 不能填补缺席的设计权威；它只能放大现有的权威、规则与盲点。</p><p>现代版本也不应复制单一专家的所有缺陷。概念权威可以集中，证据与质疑必须分散：安全 Agent 可以挑战主方案，测试 Agent 可以生成反例，领域专家可以否决错误假设，重大决策仍通过团队评审。最好的结构不是“一个人永远正确”，而是“一条设计主线清晰，同时允许有组织的反证”。</p><figure class="article-figure"><img src="/assets/articles/mythical-man-month-ai-era/figure-02-digital-surgical-team.webp?v=d56a31a4cdf1e66a" width="1672" height="941" loading="lazy" alt="Digital Surgical Team 架构图：人类 Tech Lead 位于概念完整性与最终责任中心，连接 Research、Implementation、Test、Security、Documentation 五类 Agent，所有产出汇入统一验证与合并门"><figcaption><p><strong>图 2 · Digital Surgical Team</strong>　人类 Tech Lead 保持概念完整性并承担最终责任，五类专业 Agent 提供研究、实现、测试、安全与文档能力；所有输出统一经过 Validation &amp; Merge Gate，形成可审阅的有效变更。</p></figcaption></figure><h2 id="概念完整性：AI-时代最稀缺的竞争力"><span class="section-no">07</span><a href="#概念完整性：AI-时代最稀缺的竞争力" class="headerlink" title="概念完整性：AI 时代最稀缺的竞争力"></a>概念完整性：AI 时代最稀缺的竞争力</h2><p>Brooks 把概念完整性视为系统设计最重要的品质。用户不关心组织图上有多少团队；他们感知的是同一个系统是否遵循一套可以预测的概念：相同的词是否指向相同的事物，相似操作是否有相似行为，错误是否以一致方式出现，权限与数据生命周期是否遵守同一原则。</p><p>概念完整性并不等于代码风格统一。格式化工具能统一缩进，却不能决定“客户”与“账户”是否是同一个边界概念；框架能统一控制器写法，却不能决定库存扣减发生在下单、付款还是出库。真正的完整性存在于语义和取舍中。</p><p>AI 会把这种差异放大。面对一个命名清晰、模块边界稳定、测试表达业务不变量的仓库，Agent 可以从大量一致例子中归纳正确模式；面对十年历史中并存五套架构的仓库，它无法知道哪一套代表未来。模型通常会选择局部最像的答案，于是历史偶然被复制为新规范。</p><p>这也是为什么领域驱动设计、架构决策记录（ADR）、C4 模型和演进式架构在 AI 时代重新重要。<sup class="ref"><a href="#ref-12">[12]</a></sup><sup class="ref"><a href="#ref-16">[16]</a></sup><sup class="ref"><a href="#ref-17">[17]</a></sup> 它们的共同作用，是把“我们为什么这样设计”变成可检索、可评审、可追踪的组织记忆。它们不是为了给模型喂更多文字，而是为了让人和模型共享同一套少而稳定的概念。</p><div class="callout"><p>**概念完整性可以被理解为一种语义压缩。**当少量原则能够解释大量局部决策，系统就容易学习和预测；当每个文件都需要单独解释，系统已经失去可压缩性。AI 最擅长放大前一种系统，也最容易在后一种系统中制造“看起来合理”的偏差。</p></div><h2 id="文档假说：未来的核心仓库是知识仓库"><span class="section-no">08</span><a href="#文档假说：未来的核心仓库是知识仓库" class="headerlink" title="文档假说：未来的核心仓库是知识仓库"></a>文档假说：未来的核心仓库是知识仓库</h2><p>Brooks 在“文档假说”中主张，项目需要少量关键文档来表达目标、约束、组织、预算、进度与接口。重点从来不是“文档越多越好”，而是用一组权威对象保持共同现实。在 AI 时代，这一原则比“代码即文档”更可靠。</p><p>当代码主要由人书写时，熟练开发者还可能从命名、提交历史和实现细节中还原意图；当大量代码由 Agent 快速生成，代码更像决策的沉积物，未必携带足够的理由。一个实现通过了当前测试，不代表后来者知道哪些行为是业务承诺，哪些只是临时选择，哪些变动需要迁移数据或通知客户。</p><p>真正有用的知识仓库至少包含六类内容：业务词汇与关键场景，系统地图与所有权，架构原则与 ADR，接口和数据契约，构建测试发布方法，以及事故、回滚和安全边界。提示词、Skill、项目规则、检索索引与 Agent Memory 可以成为访问层，但不能取代这些事实本身。</p><p>文档还必须具备生命周期。没有负责人、没有版本、无法被测试、与代码一起过期的文档，只会给 Agent 提供更有说服力的错误上下文。高质量做法是：权威来源唯一；决策与变更关联；契约尽可能机器校验；示例来自真实测试；过期内容有检测与删除机制。</p><div class="table-wrap"><table><caption>从 Code Repository 到 Knowledge Repository</caption><thead><tr><th>知识层</th><th>回答的问题</th><th>推荐载体</th><th>验证方式</th></tr></thead><tbody><tr><td>意图</td><td>为什么做、为谁创造价值</td><td>业务目标、场景、指标</td><td>用户反馈与结果指标</td></tr><tr><td>概念</td><td>系统中的词意味着什么</td><td>领域词汇、边界上下文</td><td>跨团队术语评审</td></tr><tr><td>决策</td><td>为何选择此方案</td><td>ADR、风险与替代方案</td><td>变更关联与定期复审</td></tr><tr><td>契约</td><td>什么行为不可破坏</td><td>Schema、API、策略、不变量</td><td>契约测试与静态规则</td></tr><tr><td>操作</td><td>如何构建、发布、恢复</td><td>Runbook、自动化脚本</td><td>演练与可观测性</td></tr><tr><td>Agent 层</td><td>如何让智能体正确行动</td><td>指令、Skill、工具权限、Memory</td><td>评测、轨迹审计、人工审批</td></tr></tbody></table></div><h2 id="巴别塔为何失败：共享语言仍是系统基础设施"><span class="section-no">09</span><a href="#巴别塔为何失败：共享语言仍是系统基础设施" class="headerlink" title="巴别塔为何失败：共享语言仍是系统基础设施"></a>巴别塔为何失败：共享语言仍是系统基础设施</h2><p>《人月神话》用巴别塔讨论沟通失败：项目并不只是因为技术困难而失败，也会因为参与者不再共享同一种语言和同一幅系统图景而失败。人数增加时，潜在沟通关系近似按平方增长；层级、模块与接口的意义，本就是为了减少必须发生的全连接沟通。</p><p>Agent 看似没有会议疲劳，却有另一种巴别塔问题。一个 Agent 读取产品文档，一个读取代码，一个只拿到任务描述；它们对“完成”的定义可能不同。上下文窗口再大，也不会自动解决来源冲突、时效性和权威性。Memory 甚至可能把旧判断稳定地带入新任务，让错误更连贯。</p><p>Model Context Protocol（MCP）与 Agent2Agent（A2A）等开放协议，分别尝试标准化模型连接外部工具/数据以及 Agent 之间的互操作。<sup class="ref"><a href="#ref-28">[28]</a></sup><sup class="ref"><a href="#ref-29">[29]</a></sup> 它们很重要，但协议只解决“能否交换”，不保证“交换内容的语义一致”。HTTP 让服务可以通信，并没有消除分布式系统中的契约错误；同样，Agent 能互相调用，并不代表它们拥有共享理解。</p><p>因此，上下文工程首先是信息架构，而不是把更多文本塞进窗口。需要明确来源优先级、时间戳、适用范围、版本和冲突处理；在交接时传递决策摘要、未决问题、证据与验证状态，而不只是全部聊天记录。共享语言必须被设计。</p><h2 id="第二系统效应：当功能的价格趋近于零"><span class="section-no">10</span><a href="#第二系统效应：当功能的价格趋近于零" class="headerlink" title="第二系统效应：当功能的价格趋近于零"></a>第二系统效应：当功能的价格趋近于零</h2><p>Brooks 观察到，设计第二个系统时，人们容易把第一个系统中被克制的所有想法一次性加入，结果得到臃肿、过度设计的作品。AI 让这种诱惑更强：过去因为开发昂贵而被否决的功能，现在几小时就能出现原型；过去需要慎重引入的抽象，现在一句“让它更通用”就会生成。</p><p>问题在于，生成功能的成本和拥有功能的成本不是同一个数。每个新增能力都会扩展测试矩阵、权限面、文档、监控、兼容承诺与用户选择。Agent 擅长完成可见的 happy path，但长期成本往往存在于失败路径：旧数据如何迁移，部分成功如何补偿，外部依赖超时如何降级，审计如何解释自动决策。</p><p>Vibe Coding 的风险并不是使用自然语言，而是把“能运行”误当作“可拥有”。原型阶段可以拥抱速度；一旦系统承载真实资金、数据或组织流程，就必须支付生产化税：威胁建模、可观测性、容量、恢复、数据治理和服务等级目标。AI 可以帮助支付这笔税，却不能宣布它不存在。</p><p>对抗第二系统效应，需要把删除能力与新增能力放在同一优先级：设置功能预算，要求每个新概念说明它替代了什么，对依赖和配置设上限，用产品结果而非生成速度判断价值。真正成熟的 AI 工程不是“什么都能做”，而是“知道什么不该生成”。</p><figure class="article-figure"><img src="/assets/articles/mythical-man-month-ai-era/figure-03-complexity-rebound-curve.webp?v=06d8c04e09a87aae" width="1672" height="941" loading="lazy" alt="复杂性反弹曲线：随着 AI 自动化程度和生成规模提高，单项实现成本下降，功能数量、依赖数量和验证负担上升；缺乏约束时总拥有成本越过拐点后反弹，有约束时则保持较低水平"><figcaption><p><strong>图 3 · 复杂性反弹曲线</strong>　AI 降低单项实现成本，却同时刺激功能供给、依赖规模与验证负担增长。架构约束和验证能力不足时，局部效率红利会在复杂性拐点之后转化为总拥有成本反弹。</p></figcaption></figure><h2 id="Plan-to-Throw-One-Away：从“大重写”到可替换实验"><span class="section-no">11</span><a href="#Plan-to-Throw-One-Away：从“大重写”到可替换实验" class="headerlink" title="Plan to Throw One Away：从“大重写”到可替换实验"></a>Plan to Throw One Away：从“大重写”到可替换实验</h2><p>“准备抛弃一个版本”常被当作重写的浪漫口号。它原本提醒人们：在真正理解问题之前，第一个设计往往只是学习工具。AI 的确让探索性实现变便宜：团队可以快速比较数据模型、API 形态或迁移路径，以代码而非幻灯片暴露未知。</p><p>但 Brooks 在二十周年版中也反思了这一说法。他更认可渐进构建：系统在持续反馈中生长，而不是先制造一个完整废品，再整体替换。这个修正对今天尤其重要。AI 降低的是重新生成的成本，不是替换生产系统的成本。真实系统包含数据、客户行为、外部集成、审计记录和运维经验，这些都不能被一次 prompt 重新生成。</p><p>所以，现代工程策略应是“让实验可丢弃，让资产可迁移”。把高不确定部分隔离为 spike、沙箱或影子实现；在进入主干之前明确学习目标；通过契约测试保护外部行为；让数据库迁移可回滚；用绞杀者模式逐步替换旧能力。若一个原型意外成为生产系统，必须补做所有权和生产化审查，而不是因为它运行过一次就默认继承。</p><p>AI 还提供了另一种可能：同一需求生成多个候选方案，用评测和基准选择，而不是对第一份流畅输出产生情感依附。此时“抛弃一个”不再是失败，而是搜索过程的正常成本。不过，评测标准必须先于候选方案建立，否则我们只是从多个无法解释的答案中选择最顺眼的一个。</p><h2 id="No-Silver-Bullet：银弹神话为何总会回来"><span class="section-no">12</span><a href="#No-Silver-Bullet：银弹神话为何总会回来" class="headerlink" title="No Silver Bullet：银弹神话为何总会回来"></a>No Silver Bullet：银弹神话为何总会回来</h2><p>每一代软件技术都会短暂扮演银弹：第四代语言、面向对象、组件、低代码、微服务、云原生，如今是大模型。它们都产生了真实价值，也都在扩大应用边界后遇到新的复杂性。银弹神话反复出现，是因为人们倾向于把局部生产效率外推为系统交付效率。</p><p>AI 的特殊之处在于，它同时作用于多个阶段：需求表述、设计探索、编码、测试、运维与知识检索。它可能比过去任何单一工具影响更广。然而影响广仍不等于不受约束。只要软件需要映射一个不断变化的现实世界，模型就必须面对不完整需求、相互冲突的目标、组织权力与未知未来。</p><p>“没有银弹”也不应成为保守主义借口。Brooks 并没有说工具无用；他的判断是没有单项技术承诺在十年内把软件生产率、可靠性和简单性提高一个数量级。<sup class="ref"><a href="#ref-2">[2]</a></sup> 工程师应同时持有两种态度：积极利用 AI 消除重复劳动，严格拒绝把演示速度当成全生命周期证据。</p><p>真正可持续的提升往往来自组合：更小的系统边界、更清晰的领域模型、更短的反馈、更好的工具、更自动的验证、更安全的发布以及更健康的组织结构。AI 可以强化这套组合，但无法代替组合本身。</p><div class="table-wrap"><table><caption>Brooks 章节与 AI 时代问题的对应关系</caption><thead><tr><th>Brooks 的命题</th><th>AI 时代的对应问题</th><th>需要守住的原则</th></tr></thead><tbody><tr><td>The Tar Pit</td><td>生成容易，生产化与维护仍困难</td><td>以全生命周期而非 demo 衡量完成</td></tr><tr><td>The Mythical Man-Month</td><td>更多 Agent 带来上下文与集成税</td><td>先分解、再并行</td></tr><tr><td>The Surgical Team</td><td>一个负责人协调专门 Agent</td><td>概念权威集中，证据与反证分散</td></tr><tr><td>Aristocracy, Democracy…</td><td>设计主线与团队参与如何平衡</td><td>决策过程开放，最终语义一致</td></tr><tr><td>Second-System Effect</td><td>低成本生成功能导致范围爆炸</td><td>复杂性预算和删除机制</td></tr><tr><td>Passing the Word</td><td>规则、Skill、Memory 如何传递</td><td>权威来源、版本和适用范围</td></tr><tr><td>Why Did the Tower of Babel Fail?</td><td>多 Agent 上下文碎片化</td><td>共享语言与结构化交接</td></tr><tr><td>Calling the Shot</td><td>Agent 任务时长与成功率难估</td><td>历史数据、分位数和置信度</td></tr><tr><td>Ten Pounds in a Five-Pound Sack</td><td>上下文、算力、延迟和成本预算</td><td>选择信息，不迷信无限上下文</td></tr><tr><td>The Documentary Hypothesis</td><td>知识仓库成为生成控制面</td><td>少量、高信号、可验证文档</td></tr><tr><td>Plan to Throw One Away</td><td>快速生成多个实验实现</td><td>实验可丢弃，数据与契约可迁移</td></tr><tr><td>Sharp Tools</td><td>模型、MCP、沙箱、CI 工具链</td><td>最小权限、可复现、可审计</td></tr><tr><td>The Whole and the Parts</td><td>局部测试通过但系统行为错误</td><td>单元、契约、端到端与评测分层</td></tr><tr><td>Hatching a Catastrophe</td><td>大量小偏差在集成末期爆发</td><td>小批量、在制品限制和领先信号</td></tr><tr><td>The Other Face</td><td>AI 生成界面与解释影响用户信任</td><td>把可理解性视为产品契约</td></tr><tr><td>No Silver Bullet</td><td>把模型能力误当系统能力</td><td>区分任务基准、团队吞吐与业务结果</td></tr></tbody></table></div><p class="part-label">第三部分 · 从 AI Coding 到 Agent Engineering</p><h2 id="从代码资产到知识资产"><span class="section-no">13</span><a href="#从代码资产到知识资产" class="headerlink" title="从代码资产到知识资产"></a>从代码资产到知识资产</h2><p>传统软件组织把源代码视为核心资产，这是合理的，因为代码是机器执行的最终权威。但在 AI 生成能力普及后，代码的经济属性开始改变：许多实现可以根据规格、契约和示例重新生成。于是代码的一部分更像“编译结果”或“缓存”——重要、必须受控，却不再完整代表组织最稀缺的知识。</p><p>这里必须避免另一个夸张结论：代码绝不会变成可以随意删除的临时文件。生产代码承载经过验证的边界条件、性能优化、合规证据和事故修复；如果生成它的知识并不完整，代码本身就是唯一事实。所谓“代码像缓存”，是一种方向性判断：当规格和验证足够强时，更多实现细节将可再生；不是说今天已经可以抛弃源码。</p><p>未来更有价值的资产，是生成与判断背后的知识：领域模型、约束、策略、决策记录、评测集、失败案例、运维经验、工具能力和权限模型。它们决定 Agent 能产生什么，也决定哪些产出不得进入生产。TOGAF 所说的 Architecture Repository、DDD 的领域知识、SRE 的运行手册，在这里汇成同一个控制面。</p><p>知识资产与代码资产还有一个根本差异：知识不能只靠“存储”产生价值。它需要出处、责任人、适用边界、刷新周期和冲突解决。向量数据库可以找回一段文字，却不能判断它是否仍然代表组织决策。知识工程的核心不是检索率，而是治理事实。</p><figure class="article-figure"><img src="/assets/articles/mythical-man-month-ai-era/figure-04-software-asset-center-migration.webp?v=4a2fe93eed894943" width="1672" height="941" loading="lazy" alt="软件资产重心迁移双轴图：以可再生性为横轴、治理价值为纵轴，资产从 Source Code 依次迁移到 Framework、Platform、Knowledge、Skill、Memory 和 Architecture Repository"><figcaption><p><strong>图 4 · 软件资产重心迁移</strong>　随着实现的可再生性提高，软件资产重心从代码、框架和平台，逐步上移到知识、Skill、Memory 与 Architecture Repository；后者通过版本化决策、约束和策略形成组织级治理控制面。</p></figcaption></figure><h2 id="Agent-Engineering：从提示词走向运行系统"><span class="section-no">14</span><a href="#Agent-Engineering：从提示词走向运行系统" class="headerlink" title="Agent Engineering：从提示词走向运行系统"></a>Agent Engineering：从提示词走向运行系统</h2><p>Prompt Engineering 关注单次输入如何获得更好的输出；Context Engineering 关注在正确时刻给模型提供正确的信息；Loop Engineering 进一步处理模型如何使用工具、观察结果、纠错与终止；Agent Engineering 则把模型放进一个可运行、可观测、可治理的系统。最后，Knowledge Engineering 负责这个系统所依赖事实的生产与生命周期。</p><p>这几个阶段不是相互替代，而是逐层包含。好的提示无法弥补错误数据；好的上下文无法弥补无边界工具权限；好的循环无法弥补错误目标；好的 Agent 架构也无法弥补组织没有权威知识源。工程成熟度越高，关注点越从“模型说了什么”转向“系统在什么条件下允许它做什么，以及如何证明结果”。</p><p>OpenAI 的 Agent 构建指南把模型、工具和指令视为基础，并区分单 Agent 与多 Agent 编排，同时强调 guardrails。Agents SDK 又把工具调用、handoff、会话、人工介入与 tracing 纳入运行时；轨迹可记录模型生成、工具调用、交接和防护事件。<sup class="ref"><a href="#ref-26">[26]</a></sup><sup class="ref"><a href="#ref-27">[27]</a></sup> Anthropic 对 Agent 的经验则强调从简单、可组合模式开始，只有在任务价值需要时才增加自主性和复杂度。<sup class="ref"><a href="#ref-30">[30]</a></sup></p><p>这些实践与 Brooks 的思想高度一致：少量清晰构件优于华丽框架；组织和接口比人数更重要；系统必须保留一条可理解的控制主线。所谓 Agent Engineering，不是把更多模型接在一起，而是设计一个能够安全委派、发现偏差、保留证据并在必要时停下来的执行组织。</p><div class="table-wrap"><table><caption>从 Prompt 到 Knowledge 的五层工程对象</caption><thead><tr><th>层次</th><th>核心问题</th><th>主要产物</th><th>典型失败</th></tr></thead><tbody><tr><td>Prompt</td><td>如何表达当前任务</td><td>目标、约束、输出格式</td><td>指令含糊、验收缺失</td></tr><tr><td>Context</td><td>需要哪些事实</td><td>检索、项目地图、状态摘要</td><td>信息过期、冲突、噪声过多</td></tr><tr><td>Loop</td><td>如何观察、行动与终止</td><td>工具调用、重试、预算、停止条件</td><td>死循环、过度调用、错误累积</td></tr><tr><td>Agent</td><td>如何委派与承担流程</td><td>角色、权限、handoff、guardrail、trace</td><td>责任模糊、越权、不可审计</td></tr><tr><td>Knowledge</td><td>事实如何产生与更新</td><td>领域模型、ADR、契约、评测集、Memory</td><td>知识腐化、来源不明、旧规则固化</td></tr></tbody></table></div><h2 id="多-Agent-不是免费并行，而是一种新组织设计"><span class="section-no">15</span><a href="#多-Agent-不是免费并行，而是一种新组织设计" class="headerlink" title="多 Agent 不是免费并行，而是一种新组织设计"></a>多 Agent 不是免费并行，而是一种新组织设计</h2><p>把 Agent 数量当成云实例数量，是最危险的类比之一。计算任务只要无共享状态就容易横向扩展，软件任务却经常围绕共享概念和共享文件。多 Agent 的价值存在于真正可分解的工作：独立模块、不同证据源、互不覆盖的验证角色，或可以通过明确契约重新组合的候选结果。</p><p>当任务高度耦合时，增加 Agent 会引入四种税。第一是分解税：人必须把问题切成可独立完成的单元。第二是上下文税：每个 Agent 都要获得足够而不矛盾的信息。第三是协调税：依赖、顺序和变更需要被调度。第四是验证税：所有局部结果最终必须在系统层面证明相容。</p><p>多 Agent 架构通常有两类基本形态。Manager 模式由一个中心 Agent 保留控制，调用专家 Agent 作为工具；handoff 模式把控制权交给新的专家。前者有利于保持主线，后者有利于长流程中的专业自治。没有一种形态普遍更好，选择取决于谁拥有最终上下文、错误是否可逆、交接是否需要用户参与。</p><p>最实用的原则仍然来自排队论和持续交付：限制在制品，缩短批量，尽早集成。与其同时启动二十个任务后在末尾处理冲突，不如维持少量高价值并行流，让每个变更持续通过构建、测试和契约门。Agent 速度越快，越需要 WIP 限制，否则验证队列会成为新的晚期项目。</p><figure class="article-figure"><img src="/assets/articles/mythical-man-month-ai-era/figure-05-multi-agent-throughput-model.webp?v=1f6b1051b1111f4a" width="1672" height="941" loading="lazy" alt="多 Agent 吞吐模型：低耦合任务具有正并行收益，随着任务耦合度提高，分解税、上下文税、协调税和验证税持续增加，净边际吞吐收益穿过零收益线后转为负值"><figcaption><p><strong>图 5 · 多 Agent 吞吐模型</strong>　净吞吐收益并不等于 Agent 数量带来的理论并行收益，还必须扣除分解、上下文、协调和验证成本。任务耦合度越高，这些税负增长越快，边际收益最终可能转负。</p></figcaption></figure><h2 id="架构必须从“建议”变成可执行治理"><span class="section-no">16</span><a href="#架构必须从“建议”变成可执行治理" class="headerlink" title="架构必须从“建议”变成可执行治理"></a>架构必须从“建议”变成可执行治理</h2><p>过去的架构文档主要服务于人的阅读。Agent 加入后，架构原则还必须在执行路径上发挥作用。仅写“保持模块解耦”太抽象；更有效的表达是：哪些模块可以依赖哪些模块，哪些数据只能由哪个服务写入，哪些 API 需要幂等键，哪些目录不允许自动修改，哪些变更必须由安全负责人批准。</p><p>这意味着架构需要双重表示。一层是面向人的意图：原则、模型、权衡和例外理由；另一层是面向机器的约束：类型、Schema、静态分析规则、策略即代码、测试、CI 门禁、权限清单和部署检查。前者没有后者会沦为愿望，后者没有前者会成为无人理解的禁令。</p><p>Architecture Guardian 不应只是另一个会写评论的 Agent，而应是一套分层控制。低风险规则自动执行，中风险偏差要求解释，高风险动作需要人工批准；所有例外留下时限和责任人。Agent 的工具采用最小权限，读取和写入分离，生产操作默认不可逆时停下，运行轨迹可审计，敏感上下文有明确边界。</p><p>测试在这里也需要升级为评测。确定性代码可以用输入输出断言；包含模型的系统还要评估任务成功、工具选择、事实性、安全、成本、延迟与退化。评测集应来自真实失败和关键业务场景，并持续防止“模型升级后指标更好、业务边界却悄悄变化”。</p><div class="principles"><div class="principle"><strong>01 · 约束可定位</strong> — 每条规则说明来源、适用目录或系统边界，不把全局口号强加给所有任务。</div><div class="principle"><strong>02 · 证据可复现</strong> — Agent 交付的不只是补丁，还包括验证命令、输出摘要和未验证风险。</div><div class="principle"><strong>03 · 权限可收敛</strong> — 默认只授予完成任务所需的最小工具、网络、文件和环境权限。</div><div class="principle"><strong>04 · 例外可过期</strong> — 任何绕过门禁的决定都有责任人、原因、复审日期和自动提醒。</div><div class="principle"><strong>05 · 变更可回退</strong> — 把回滚、补偿和数据恢复设计为完成条件，而不是事故发生后的补丁。</div><div class="principle"><strong>06 · 轨迹可审计</strong> — 记录关键上下文、工具调用、审批和结果，同时避免无边界保存敏感内容。</div></div><h2 id="重新衡量生产力：代码更多，不等于价值更快"><span class="section-no">17</span><a href="#重新衡量生产力：代码更多，不等于价值更快" class="headerlink" title="重新衡量生产力：代码更多，不等于价值更快"></a>重新衡量生产力：代码更多，不等于价值更快</h2><p>AI 时代最糟糕的管理反应，是用代码行、提交数或 Agent 完成任务数证明投资回报。SPACE 框架早已提醒，开发者生产力至少涉及满意度与福祉、绩效、活动、沟通协作以及效率与流，不能由单一指标替代。<sup class="ref"><a href="#ref-21">[21]</a></sup> 当生成成本下降，活动指标与真实价值之间的距离只会更大。</p><p>经验数据也要求克制。METR 在 2025 年对 16 位熟悉成熟开源项目的开发者进行随机对照试验，共覆盖 246 个真实任务；在特定的早期 2025 工具和研究条件下，允许使用 AI 的组平均完成时间反而增加约 19%。研究者明确把它视为特定人群、工具和时间点的快照，而非 AI 永远降低效率的结论。<sup class="ref"><a href="#ref-32">[32]</a></sup> 它最重要的启示，是主观“感觉更快”不能代替测量。</p><p>另一边，2025 DORA 报告把成功采用 AI 描述为系统问题，而不是单纯工具问题，并强调价值流管理让局部提升转化为产品绩效。<sup class="ref"><a href="#ref-31">[31]</a></sup> 这正是 Brooks 视角：局部程序员效率不是项目吞吐，项目吞吐也不是业务结果。组织的架构、平台、流程与文化会调节工具效果。</p><p>一个可靠的度量组合应同时观察四层：任务层看完成时间、返工和评测通过率；工程系统层看变更前置时间、部署频率、失败率和恢复时间；团队层看认知负荷、审阅队列与知识扩散；业务层看用户结果、风险和总成本。还要区分绿地与遗留系统、熟悉与陌生代码库、短任务与长任务，不把平均值当作普遍规律。</p><div class="callout"><p>**建议的核心指标：**从“Agent 生成了多少”转向“一个经过验证、可回退、可维护的业务变更从提出到生效需要多久”。前者奖励库存，后者关注价值流。</p></div><h2 id="人的新位置：从代码作者到意图、边界与责任的设计者"><span class="section-no">18</span><a href="#人的新位置：从代码作者到意图、边界与责任的设计者" class="headerlink" title="人的新位置：从代码作者到意图、边界与责任的设计者"></a>人的新位置：从代码作者到意图、边界与责任的设计者</h2><p>“AI 放大架构师，而不是程序员”是一个有力量但不够准确的判断。优秀程序员从来不只是打字者，他们在代码层发现需求矛盾、性能边界和失败模式。AI 改变的不是“程序员消失、架构师胜利”，而是所有软件角色都要向更高杠杆的判断移动。</p><p>未来工程师的核心能力包括：把模糊问题转成可验证假设；识别领域边界和不变量；设计适合委派的任务；构造能够揭示错误的评测；理解安全、数据与运行后果；在模型给出流畅答案时保持反证意识。阅读和审阅的重要性可能超过亲手输入每一行代码。</p><p>架构师也不能退化为写规则的人。架构是一组持续被代码、指标和事故检验的决策。真正的架构工作需要进入价值流：观察 Agent 在哪里误解系统，哪些规则经常被绕过，哪些边界制造不必要协调，再据此简化系统。维护 AI 行为边界，与维护软件边界是同一件事。</p><p>责任尤其不能外包。Agent 可以提出迁移方案，批准停机窗口的人仍需理解风险；Agent 可以生成权限策略，签署合规责任的人仍需知道谁能访问数据。组织必须防止“模型建议”成为无人负责的被动语态。每一个不可逆决定，都应能回答：谁授权、依据什么、如何监控、如何撤销。</p><figure class="article-figure"><img src="/assets/articles/mythical-man-month-ai-era/figure-06-human-work-center-migration.webp?v=749928c29b20ca62" width="1672" height="941" loading="lazy" alt="人的工作重心迁移：随着生成自动化程度提高，人类时间从 Typing 逐步转向 Reviewing、Framing、Governing 与 Learning；五类工作持续存在，表示重心迁移而非角色替代"><figcaption><p><strong>图 6 · 人的工作重心迁移</strong>　生成自动化提高后，Typing 仍然存在，但人类时间更多流向 Reviewing、Framing、Governing 与 Learning。变化的不是角色被逐层删除，而是判断、治理与反馈学习获得更高权重。</p></figcaption></figure><p class="part-label">第四部分 · 面向组织的工程路线</p><h2 id="从个人提效到组织能力：一条可落地的路径"><span class="section-no">19</span><a href="#从个人提效到组织能力：一条可落地的路径" class="headerlink" title="从个人提效到组织能力：一条可落地的路径"></a>从个人提效到组织能力：一条可落地的路径</h2><p>组织采用 Coding Agent，最常见的错误是先购买席位，再等待生产率自然出现。个人可以在没有治理的情况下获得局部收益，组织规模化却需要先建立可吸收能力。下面的路径并非成熟度认证，而是一种降低风险的实施顺序。</p><h3 id="阶段一：选择边界清楚、可验证的任务"><a href="#阶段一：选择边界清楚、可验证的任务" class="headerlink" title="阶段一：选择边界清楚、可验证的任务"></a>阶段一：选择边界清楚、可验证的任务</h3><p>从测试补充、文档同步、依赖升级、静态分析修复、内部脚手架等任务开始。每类任务必须有明确验收、稳定构建和回滚方式。记录基线时间与返工，不只收集主观满意度。高风险生产操作、关键权限与不可逆数据迁移暂不自治。</p><h3 id="阶段二：修复知识入口与工程反馈"><a href="#阶段二：修复知识入口与工程反馈" class="headerlink" title="阶段二：修复知识入口与工程反馈"></a>阶段二：修复知识入口与工程反馈</h3><p>为仓库建立一页式系统地图：如何构建、测试、运行，主要模块和所有权，关键约束与禁止事项。清理失效文档，补上高价值测试，缩短 CI 时间。Agent 不是绕过工程健康的捷径；脆弱测试和缓慢反馈会直接限制它的有效循环次数。</p><h3 id="阶段三：把架构规则机器化"><a href="#阶段三：把架构规则机器化" class="headerlink" title="阶段三：把架构规则机器化"></a>阶段三：把架构规则机器化</h3><p>选择最昂贵的三到五类偏差，例如跨层依赖、越权数据访问、API 不兼容、缺少迁移或敏感信息泄漏，把它们变为静态规则、契约测试或策略门禁。规则数量宁少勿滥，并为例外提供正式流程。</p><h3 id="阶段四：建立风险分级委派"><a href="#阶段四：建立风险分级委派" class="headerlink" title="阶段四：建立风险分级委派"></a>阶段四：建立风险分级委派</h3><p>按可逆性、数据敏感性、爆炸半径和用户影响分级。低风险变更可以自动生成并自动验证，中风险需要指定评审，高风险只允许 Agent 调研和提出方案。所有级别都保留轨迹与产物来源；权限随任务临时授予，而非永久开放。</p><h3 id="阶段五：再引入多-Agent-与长任务"><a href="#阶段五：再引入多-Agent-与长任务" class="headerlink" title="阶段五：再引入多 Agent 与长任务"></a>阶段五：再引入多 Agent 与长任务</h3><p>只有当单 Agent 流程的失败模式已被理解，才通过 Manager 或 handoff 引入专业分工。为交接定义结构化包：目标、当前状态、证据、修改范围、未决风险与下一步。限制在制品，给长任务设置预算、检查点和停止条件。</p><h3 id="阶段六：用事故和评测更新知识"><a href="#阶段六：用事故和评测更新知识" class="headerlink" title="阶段六：用事故和评测更新知识"></a>阶段六：用事故和评测更新知识</h3><p>把每次误生成、漏检、错误工具调用和人工接管转化为评测用例或更清晰的约束。定期删除无效规则和旧 Memory。成熟组织的优势不是从不出错，而是每次错误都让控制面更精确，而不是只让提示词更长。</p><div class="table-wrap"><table><caption>Agent 工程运行检查表</caption><thead><tr><th>层面</th><th>上线前必须回答</th><th>最小证据</th></tr></thead><tbody><tr><td>目标</td><td>任务的完成和不完成分别是什么</td><td>可执行验收条件</td></tr><tr><td>上下文</td><td>事实来自哪里，冲突以谁为准</td><td>来源、版本、时间戳</td></tr><tr><td>工具</td><td>Agent 可以读写什么，能否产生外部副作用</td><td>权限清单与沙箱策略</td></tr><tr><td>验证</td><td>谁证明局部与系统行为都正确</td><td>测试、评测、扫描与人工审阅</td></tr><tr><td>运行</td><td>超时、循环、部分失败如何处理</td><td>预算、重试、停止与补偿策略</td></tr><tr><td>责任</td><td>谁批准不可逆动作，谁接管异常</td><td>审批人与升级路径</td></tr><tr><td>学习</td><td>失败如何回流到知识和评测</td><td>复盘、用例和规则版本记录</td></tr></tbody></table></div><h2 id="软件工程下一站：管理可生成系统"><span class="section-no">20</span><a href="#软件工程下一站：管理可生成系统" class="headerlink" title="软件工程下一站：管理可生成系统"></a>软件工程下一站：管理可生成系统</h2><p>软件工程的下一站，不是“人人不再写代码”，而是越来越多系统同时包含确定性软件、概率性模型和能够采取行动的 Agent。它们的边界会比传统应用更动态：同一目标可能产生不同路径，工具和数据实时变化，长期 Memory 又把过去带入现在。工程的任务从管理静态制品，扩展为管理可生成行为。</p><p>第一项变化是<strong>规格重新成为一等资产</strong>。但这不是回到瀑布式大文档，而是建立可演进、可测试的意图：场景、契约、不变量、策略和评测。规格与实现之间的反馈会更短，二者甚至可以互相生成，但人必须保留对语义的裁决。</p><p>第二项变化是<strong>软件供应链扩展为知识供应链</strong>。组织不仅要追踪依赖包来自哪里，还要追踪 Agent 使用了哪些模型、指令、工具、知识源与评测版本。错误可能不在代码提交中，而在一次过期检索、一条被污染的 Memory 或一次权限配置变更中。</p><p>第三项变化是<strong>架构从结构设计扩展到行为治理</strong>。过去的图主要回答组件如何连接；未来还要回答谁可以代表谁行动、哪类决定必须征求批准、系统如何解释自己的证据、何时必须停止自治。这会让安全、合规、SRE、产品和架构更早汇合。</p><p>第四项变化是<strong>源代码不再是唯一的人机边界</strong>。自然语言、Schema、Policy、Skill、评测集与操作轨迹共同定义系统。工程团队需要像审查代码一样审查这些对象：版本化、测试、评审、发布和回滚。Prompt Review、Skill Review、Memory Review 不是 Code Review 的替代，而是新的审查面。</p><p>第五项变化是<strong>竞争优势来自反馈系统，而非某个模型</strong>。基础模型会更新，工具会趋同，真正难复制的是组织如何把领域知识编码为边界，把真实失败转为评测，把运行证据转为改进，再让 Agent 在这些约束内加速。这个闭环越快，AI 越像杠杆；闭环越弱，AI 越像复杂性放大器。</p><figure class="article-figure"><img src="/assets/articles/mythical-man-month-ai-era/figure-07-software-engineering-control-chain.webp?v=0cd96f97b9d686ca" width="1672" height="941" loading="lazy" alt="真正的软件工程控制链：Problem、Intent、Architecture、Knowledge、Agent、Code、Deployment、Evidence、Learning 依次连接，Evidence 反馈校准 Intent、更新 Knowledge 并扩充 Evaluation 评测"><figcaption><p><strong>图 7 · 真正的软件工程控制链</strong>　从 Problem 到 Learning 的主链跨越控制面、执行面和证据学习面；生产运行产生的 Evidence 持续校准 Intent、更新 Knowledge 并扩充评测，使软件工程成为闭环学习系统，而非单向代码生成流水线。</p></figcaption></figure><h3 id="结语：Brooks-没有说错，只是管理对象变了"><a href="#结语：Brooks-没有说错，只是管理对象变了" class="headerlink" title="结语：Brooks 没有说错，只是管理对象变了"></a>结语：Brooks 没有说错，只是管理对象变了</h3><p>1975 年，软件工程的显性问题是如何组织程序员完成前所未有的大系统；2026 年，问题扩展为如何组织人、模型、工具、知识与自动化共同演进系统。过去我们审查提交，未来还要审查 Agent 的上下文与行动轨迹；过去我们管理开发者之间的沟通，未来还要管理 Agent 之间的交接；过去架构约束主要靠人记住，未来它必须同时被人理解、被机器执行。</p><p>不变的是：软件仍然是对现实问题的模型，任何模型都需要取舍；复杂系统仍然需要概念完整性；沟通仍然消耗时间；新增参与者仍然增加协调；快速产出仍然不能替代正确判断；责任仍然必须落在人和组织上。</p><p>变化的是：代码不再是最稀缺的生产要素，知识与验证成为新的瓶颈；原型和候选方案变得便宜，选择与长期拥有变得更重要；架构师的影响力可以通过 Agent 被放大，架构错误也可以以同样速度扩散。</p><p>所以，《人月神话》在 AI 时代最大的启示，不是劝我们怀疑新工具，而是教我们把新工具放回系统。AI 可以让一支好团队更快验证、更快学习、更快交付；也可以让一个边界混乱的组织更快堆积难以解释的代码。决定两者差异的，从来不是生成速度本身，而是我们是否拥有清晰的意图、完整的概念、可靠的反馈和敢于承担后果的人。</p><p>当代码变得廉价，判断就变得昂贵；当智能体变得普遍，软件工程的核心将是设计它们必须服从的现实。</p><section class="references" id="references"><h2 data-no-number="true">参考文献与延伸阅读</h2><p class="note">英文书名与论文名保留原文。产品与研究资料以本文资料更新时间为界；链接均指向作者、出版机构、研究团队或官方项目页面。</p><ol><li id="ref-1">Brooks, Frederick P. Jr. <em>The Mythical Man-Month: Essays on Software Engineering</em>. Addison-Wesley, 1975; Anniversary Edition, 1995.</li><li id="ref-2">Brooks, Frederick P. Jr. “<a href="https://doi.org/10.1109/MC.1987.1663532">No Silver Bullet—Essence and Accidents of Software Engineering</a>.” <em>Computer</em>, 20(4), 1987.</li><li id="ref-3">IBM. “<a href="https://www.ibm.com/history/system-360">The IBM System/360</a>.” IBM History.</li><li id="ref-4">Parnas, David L. “<a href="https://doi.org/10.1145/361598.361623">On the Criteria To Be Used in Decomposing Systems into Modules</a>.” <em>Communications of the ACM</em>, 1972.</li><li id="ref-5">Conway, Melvin E. “<a href="https://www.melconway.com/Home/Committees_Paper.html">How Do Committees Invent?</a>” <em>Datamation</em>, 1968.</li><li id="ref-6">Dijkstra, Edsger W. “<a href="https://www.cs.utexas.edu/~EWD/transcriptions/EWD03xx/EWD340.html">The Humble Programmer</a>.” ACM Turing Lecture, 1972.</li><li id="ref-7">Royce, Winston W. “Managing the Development of Large Software Systems.” Proceedings of IEEE WESCON, 1970.</li><li id="ref-8">Boehm, Barry W. “<a href="https://doi.org/10.1109/2.59">A Spiral Model of Software Development and Enhancement</a>.” <em>Computer</em>, 1988.</li><li id="ref-9">Gamma, Erich, et al. <em>Design Patterns: Elements of Reusable Object-Oriented Software</em>. Addison-Wesley, 1994.</li><li id="ref-10">Beck, Kent, et al. “<a href="https://agilemanifesto.org/">Manifesto for Agile Software Development</a>.” 2001.</li><li id="ref-11">Fowler, Martin. “<a href="https://martinfowler.com/articles/continuousIntegration.html">Continuous Integration</a>.” 2006.</li><li id="ref-12">Evans, Eric. <em>Domain-Driven Design: Tackling Complexity in the Heart of Software</em>. Addison-Wesley, 2003.</li><li id="ref-13">Humble, Jez, and David Farley. <em>Continuous Delivery</em>. Addison-Wesley, 2010.</li><li id="ref-14">Beyer, Betsy, et al., eds. “<a href="https://sre.google/sre-book/table-of-contents/">Site Reliability Engineering</a>.” O’Reilly / Google, 2016.</li><li id="ref-15">Forsgren, Nicole, Jez Humble, and Gene Kim. <em>Accelerate</em>. IT Revolution, 2018.</li><li id="ref-16">Nygard, Michael. “<a href="https://www.cognitect.com/blog/2011/11/15/documenting-architecture-decisions">Documenting Architecture Decisions</a>.” 2011.</li><li id="ref-17">Brown, Simon. “<a href="https://c4model.com/">The C4 Model for Visualising Software Architecture</a>.”</li><li id="ref-18">Ford, Neal, Rebecca Parsons, and Patrick Kua. <em>Building Evolutionary Architectures</em>. O’Reilly, 2017.</li><li id="ref-19">Skelton, Matthew, and Manuel Pais. <em>Team Topologies</em>. IT Revolution, 2019.</li><li id="ref-20">The Open Group. “<a href="https://pubs.opengroup.org/togaf-standard/adm/chap07.html">TOGAF Standard: Architecture Repository</a>.”</li><li id="ref-21">Forsgren, Nicole, et al. “<a href="https://www.microsoft.com/en-us/research/publication/the-space-of-developer-productivity-theres-more-to-it-than-you-think/">The SPACE of Developer Productivity: There’s More to It Than You Think</a>.” <em>ACM Queue</em>, 2021.</li><li id="ref-22">Jimenez, Carlos E., et al. “<a href="https://arxiv.org/abs/2310.06770">SWE-bench: Can Language Models Resolve Real-World GitHub Issues?</a>” 2023.</li><li id="ref-23">NIST. “<a href="https://www.nist.gov/itl/ai-risk-management-framework">AI Risk Management Framework</a>.” 2023.</li><li id="ref-24">OpenAI. “<a href="https://openai.com/index/introducing-codex/">Introducing Codex</a>.” May 2025.</li><li id="ref-25">OpenAI. “<a href="https://openai.com/index/introducing-the-codex-app/">Introducing the Codex App</a>.” February 2026.</li><li id="ref-26">OpenAI. “<a href="https://openai.com/business/guides-and-resources/a-practical-guide-to-building-ai-agents/">A Practical Guide to Building Agents</a>.”</li><li id="ref-27">OpenAI. “<a href="https://openai.github.io/openai-agents-python/">OpenAI Agents SDK Documentation</a>”; see also <a href="https://openai.github.io/openai-agents-python/tracing/">Tracing</a>.</li><li id="ref-28">Anthropic. “<a href="https://www.anthropic.com/news/model-context-protocol">Introducing the Model Context Protocol</a>.” November 2024.</li><li id="ref-29">Google Developers Blog. “<a href="https://developers.googleblog.com/en/a2a-a-new-era-of-agent-interoperability/">Announcing the Agent2Agent Protocol</a>.” April 2025.</li><li id="ref-30">Anthropic. “<a href="https://www.anthropic.com/engineering/building-effective-agents">Building Effective Agents</a>.” December 2024.</li><li id="ref-31">DORA / Google Cloud. “<a href="https://cloud.google.com/resources/content/2025-dora-ai-assisted-software-development-report">2025 State of AI-assisted Software Development Report</a>.” 2025.</li><li id="ref-32">Becker, Joel, et al. “<a href="https://metr.org/blog/2025-07-10-early-2025-ai-experienced-os-dev-study/">Measuring the Impact of Early-2025 AI on Experienced Open-Source Developer Productivity</a>.” METR, 2025.</li><li id="ref-33">Anthropic. “<a href="https://www.anthropic.com/engineering/claude-code-best-practices">Claude Code: Best Practices for Agentic Coding</a>.” 2025.</li><li id="ref-34">Fowler, Martin. “<a href="https://martinfowler.com/articles/2025-nature-abstraction.html">The New Nature of Abstraction in Software Development</a>.” 2025.</li><li id="ref-35">Thoughtworks. “<a href="https://www.thoughtworks.com/radar">Technology Radar</a>.” Continuous series.</li><li id="ref-36">Allspaw, John, and Paul Hammond. “<a href="https://www.youtube.com/watch?v=LdOe18KhtT4">10+ Deploys Per Day: Dev and Ops Cooperation at Flickr</a>.” Velocity, 2009.</li></ol></section>]]>
    </content>
    <id>https://ryu.xin/zh/posts/mythical-man-month-ai-era/</id>
    <link href="https://ryu.xin/zh/posts/mythical-man-month-ai-era/"/>
    <published>2026-07-23T16:00:00.000Z</published>
    <summary>从 Brooks 到 Agent Engineering：重读《人月神话》，讨论 AI 时代软件工程五十年的变化与不变。</summary>
    <title>重读《人月神话》：AI 时代的软件工程再思考</title>
    <updated>2026-07-23T16:00:00.000Z</updated>
  </entry>
</feed>
