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太麻烦了,我还是跟师傅学吧"。
有兴趣辩论这个问题的同好,欢迎在公众号给我留言。尤其欢迎反对者来打我脸,具体的实践经验比理论分析值钱得多。
引用来源
Mary Shaw, "Prospects for an Engineering Discipline of Software" (1990), IEEE Software Arthur D. Little, Unit Operations (1915) Daniel Kahneman,《Noise: A Flaw in Human Judgment》(2021) Kausel et al., "Overconfidence in personnel selection", Organizational Behavior and Human Decision Processes Atul Gawande,《The Checklist Manifesto》 W. Edwards Deming, quality management principles BMAD-METHOD:https://github.com/bmad-code-org/BMAD-METHOD