瑞典马工

BMAD是AI编程从手艺走向工程的第一步

大年初三,我们的AI Coding社群里爆发了一场关于BMAD的激烈辩论。反对者说它"又臭又长,把人类对齐的流程用于AI对齐,带来很大的负担"。支持者说它是"目前水平最高且最有可推广性的软件工程框架"。几百条消息,谁也没说服谁。

辩论中反对方最常说的一句话是"我不需要流程"。说这话的都是高水平开发者,二十年研发经验,在微软亚马逊干过,写skills和agents信手拈来。他们的意思很明确:我的经验和直觉足够好,流程只会拖慢我。

Carnegie Mellon的Mary Shaw教授研究了土木工程和化学工程从作坊到工业的演化史,提出了一个三阶段模型:手艺、商业、专业工程。手艺阶段的标志是什么?产出质量取决于从业者的天赋,知识靠师傅带徒弟,不可复制。"我不需要流程"换个说法就是"我的手艺够好"。这是手艺人宣言,不是工程师宣言。

AI编程今天就在手艺阶段。

编纂:从手艺到工程的分水岭

手艺阶段不是不能出好活,是好活不可复制。那怎么才能从手艺跨到工程?答案是编纂(codification):把个人经验变成可复制的规范。

1915年之前,没有"化学工程师"这个职业。只有"制碱的人"、"炼油的人"、"制酸的人",每个行业靠师傅带徒弟,知识不可迁移。你跟了制碱师傅十年,去了炼油厂还是从零开始。Arthur D. Little在MIT提出了unit operations的概念:不管你生产什么化学品,底层都是同一批基本操作,蒸馏、过滤、结晶、蒸发。他把千行百业的化工经验编纂成通用的基本操作,写成教科书。从此你不需要跟师傅十年才能炼油,你学会unit operations,去哪个化工行业都能干。

编纂不是说师傅的经验没用。编纂是说:经验必须被结构化、可传授、可审计,才能成为工程。质量管理之父Deming说过,85%的失败是系统和流程的缺陷,不是员工的问题。把质量归咎于个人天赋,是手艺思维。把质量归因于系统,是工程思维。

当一个领域的可靠性不再取决于从业者的天赋,而取决于流程和规范的质量时,这个领域就从手艺变成了工程。

为什么高手最抗拒编纂

编纂的阻力往往来自高手。

哈佛外科医生Atul Gawande在全球8家医院推行了一个90秒的手术安全清单,死亡率下降超过三分之一。受益最大的不是新手,是资深外科医生。Gawande的解释很精辟:现代专业领域的错误分两种,无知之错(不知道怎么做)和无能之错(知道怎么做但没做到)。专家的主要问题是后者。他们太熟练了,系统性地跳过"显而易见"的步骤,而这些步骤恰恰是出错的地方。

群里支持BMAD的陈明说了一句很有分量的话:

我第一次用bmad,就帮我发现了架构师的局限。而这个局限,其实在我从业很多年来一直没意识到。

一个从业多年的架构师,被BMAD的流程逼着回答了他本来不会去想的问题,从而发现了自己的盲区,这正是结构化流程的优势。面试官恨结构化面试,外科医生恨手术清单,AI编程高手恨BMAD。三者都对自身判断力过度自信。

BMAD是编纂

那BMAD的目标正是codify软件工程的基本操作和流程。

第一,分步约束。BMAD把"做一个软件"拆成四个阶段:分析、规划、方案、实现。每个阶段产出一份带版本号的约束文档,brainstorming report、PRD、架构设计、epic和story。每一层的输出成为下一层的binding spec。PRD约束架构设计,架构约束story拆解,story约束代码实现。你不能跳过PRD直接画架构。

第二,延迟全局判断。在方案阶段和实现阶段之间,有一个Implementation Readiness Gate。它验证PRD、架构、故事三者是否对齐,结果只有三种:通过、有疑虑、不通过。所有维度评判完毕之前,不允许写代码。

第三,对抗性审查。BMAD有一个叫TEA的角色,独立于开发者,专门做质量审查,把问题分成三级:阻断性问题、重大问题、次要问题。阻断性问题必须解决才能继续。这是编纂的质量保障机制,不是走过场。

第四,知识可追溯。所有文档带版本号,check in到git。做好了知道为什么好,做砸了知道为什么砸。直觉不可审计,文档可以。

有人说BMAD是"Scrum还魂"。Scrum的角色分工解决的是人与人之间的政治问题:信息不对称、利益冲突、沟通瓶颈。BMAD的agent链条解决的是决策质量问题:分步约束防止跳步,延迟判断防止直觉接管,对抗审查防止无能之错。这是结构化决策的工程化实践,是codification,不是仪式。

有人说BMAD是"用抗生素治骨折"。BMAD治的不是感染也不是骨折,治的是过度自信的人带来的噪音。


化学工程从手艺到工程用了一代人。软件工程还没完成这个转变。AI编程让这个问题更加紧迫:LLM放大了手艺阶段的所有毛病,不可审计、不可复制、质量靠运气。

BMAD不完美。但它的方向是编纂,而编纂是从手艺到工程的唯一道路。反对者看到的成本是真实的,但编纂的成本永远低于不编纂的代价。从来没有哪个化学工程师说"unit operations太麻烦了,我还是跟师傅学吧"。

有兴趣辩论这个问题的同好,欢迎在公众号给我留言。尤其欢迎反对者来打我脸,具体的实践经验比理论分析值钱得多。


引用来源

  1. Mary Shaw, "Prospects for an Engineering Discipline of Software" (1990), IEEE Software
  2. Arthur D. Little, Unit Operations (1915)
  3. Daniel Kahneman,《Noise: A Flaw in Human Judgment》(2021)
  4. Kausel et al., "Overconfidence in personnel selection", Organizational Behavior and Human Decision Processes
  5. Atul Gawande,《The Checklist Manifesto》
  6. W. Edwards Deming, quality management principles
  7. BMAD-METHOD:https://github.com/bmad-code-org/BMAD-METHOD