我在个人项目中使用 BMAD 框架的经历(需要耐心)
Source: Dev.to
请提供您希望翻译的正文内容(除代码块和 URL 之外),我将按照要求将其翻译成简体中文并保留原有的格式。
我的初始期望
进入时,我的期望相当简单:
- 我会输入我的想法。
- 让工作流指引我。
- 我会快速编写代码,方向更明确,死路更少。
这… 部分正确。但还有一个很大的前提。
真相
BMAD 不是 “20 分钟内开始编码” 的快速上手设置。它更像是:
“把工作前期做好,这样编码就不再是最难的部分。”
如果你习惯先拼凑一个原型再去弄清产品,这会让你感觉 慢——有时甚至慢得让人痛苦。
BMAD 首先强迫你做的事
在你能够感受到通常意义上(交付代码)的 “高效” 之前,BMAD 会让你经历一套完整的工作流:
- 定义问题 —— 不只是 “我想构建 X”,而是 “存在哪些痛点,针对谁?”
- 定义用户角色
- 头脑风暴方案
- 研究相关领域
- 明确约束条件(时间、资金、基础设施、团队、目标平台)
- 把这些转化为史诗、用户故事和执行计划
所有这些都很有价值,但并非免费。
时间投入
对我而言,在写下第一行代码之前,大约花了 12–16 小时。如果你以 “周末项目” 的心态来看,这个数字听起来荒唐,但我越是沉下去,就越能理解:
- BMAD 强迫你去思考那些平时会等到项目已经混乱才去处理的内容。
- 我也做过太多相反的事:
- 快速构建 → 发现方向错误 → 重写 → 丧失动力 → 放弃。
所以,是的,这种前期投入是真实存在的——而且这正是它的意义所在。
对业务方面的新视角
我真心喜欢的一点是,BMAD 中呈现的框架让你从不同的角度审视,尤其是围绕你正在构建的产品的业务层面。
典型的工程师优先问题
- “我想使用什么技术栈?”
- “哪种架构看起来更简洁?”
- “哪些云服务最便宜?”
BMAD 驱动的问题
- 这到底是为谁准备的?
- 他们想要实现什么目标?
- 他们目前是怎么做的?
- 为什么他们会考虑切换?
- 能证明价值的最小可行方案是什么?
即使你认为自己已经知道这些答案,把它们写下来也能迫使你更清晰。价值不在于它会告诉你什么神奇的东西;价值在于它让你对决策负责。
但同样,你需要用时间来换取这种清晰——此时你不是在写代码,而是在思考和记录。
派对模式:有趣(也很痛苦)
如果你还没用过,派对模式 基本上就是“快速获取多种视角并生成大量材料”的模式。当你需要广度时,它非常有用:
- 不同的解决方案
- 不同的权衡
- 不同的产品视角
- 风险清单
- 架构选项
我的错误
我让它同时使用 LangSearch 和 Gemini 运行派对模式。这个组合彻底耗尽了我的上下文窗口和使用额度。
发生了什么(事后看来可预见):
- 派对模式会 阅读、获取来源、综合,然后 生成。
- → 大量 token 输入
- → 大量 token 输出
- → 根据使用的工具,可能产生大量付费调用
我尝试聪明一点,指示它:“不要阅读所有内容,只把东西放进文件并做摘要。” 实际上,这并没有如预期那样工作。一旦你指示工作流进行深度研究,它往往会坚持下去——收集材料以便为结论提供依据。这对质量有好处,但如果不小心,成本控制会很糟糕。
使用派对模式的建议
- 有目的地使用它。
- 设定边界(范围、来源、最大深度)。
- 假设它会很昂贵,如果让它自由运行的话。
Source: …
架构错误
在完成所有设置和工作流后,我终于到了开始编写代码的阶段。几乎立刻我就意识到自己犯了一个架构错误。
这一点很重要,因为这类错误在让助手主导、自己仅“监督”而不是主动构建时很容易出现。
出了什么问题
- 我让架构师关注 低成本,于是它倾向于 无服务器 方案——具体来说是 AWS Lambda 风格的计算。
- 然后我又让它使用 NestJS。
纸面上听起来没问题,但实际上相当棘手:
- NestJS 可以在无服务器环境中运行,但除非正确配置,否则并不是“直接把 NestJS 丢进去就能部署到 Lambda”。
- 通常需要一个 适配层(例如
@vendia/serverless-express或类似模式),或者使用更直接面向无服务器请求处理的框架。
没有这些,你会得到一堆不匹配的假设:
- 长生命周期的服务器模式 vs. 冷启动
- 框架启动时间 vs. 延迟预期
- 请求生命周期差异
- 部署打包和处理程序绑定
结果
- 到处都是错误。
- 系统不断尝试自我修复,形成循环,却没有真正的进展。
我花了 大量时间(大约 六小时)来尝试修复它。
令人沮丧的是,当时我并没有立刻知道哪里出错。错误并不像 “使用了错误的导入” 那样清晰,而更像是:
- 某些东西失败。
- 你修复了表面症状。
- 另一些东西又失败。
- 修复引入了新的问题。
- 于是陷入循环。
如果你曾在项目早期遇到不匹配的架构决策,你会明白这种感觉。代码在单独运行时是“正确”的,但环境和假设却不对。
收获
AI 辅助的工作流可能会不断提出在本地看似合理的改动,却没有解决 框架 与 部署模型 之间的根本不匹配。
TL;DR
- BMAD 需要大量前期思考和文档工作——预计在写第一行代码前要花 12‑16 小时。
- 收获是决策更清晰、产品‑市场匹配度更好,后期死路更少。
- Party mode 功能强大但消耗 token 多;使用时请设定明确的限制。
- 将 低成本无服务器 目标与像 NestJS 这样的 重量级框架 结合时要小心——确保有合适的适配器,或选择更合适的技术栈。
如果你愿意在前期投入时间,BMAD 能帮你在后期省下大量痛苦。若你抱着“随便搞一下”的心态,请做好启动较慢的准备。
情况
我陷入了一个循环,AI 不断“批准”合理的编辑,却从未收敛。它一直转个不停,我一直在想 它为什么会卡住。
触发突破的因素
- 我注意到该过程花费了太多时间却没有收敛。
- 我启动了 BMAD 工作流 并进行了一次 回顾。
回顾迫使我们暂停并回答以下问题:
- 我们想要做什么?
- 什么在阻碍我们?
- 我们做了哪些假设?
- 有什么改变了吗?
- 哪个决策导致了反复失败?
关键洞察
回顾显示 设置错误——架构与运行时模型不匹配。
确定的选项
- 调整 NestJS 设置,使其在无服务器处理程序模型中正常运行。
- 更改计算模型(例如,在 ECS/Fargate 上的容器化服务或简单的虚拟机),具体取决于目标。
- 选择更自然适配无服务器的框架。
关键点:回顾终止了无休止的补丁工作,开启了真正的诊断。
为什么像 BMAD 这样的结构化工作流很重要
大多数工程师在个人项目出问题时不会进行回顾;我们只会更努力地埋头苦干。
埋头苦干很少有帮助。
修复后有什么变化
- 出现了 Story – 真实、范围明确、可测试的任务,而不是模糊的“构建后端”条目。
- 我可以明确告诉系统要实现什么;从想法到工程任务的转换已经完成。
我的新角色
- 监督
- 审核决策
- 对代码进行合理性检查
- 偶尔对请求和更改点击是/否
- 确保工作与目标保持一致
这与“我什么都做”感觉截然不同。它把瓶颈从“我打字有多快?”转移到“我审查和引导的能力有多好?”
如果你曾经带领过团队,你会认出这种模式:你并不是在写每一行代码,而是确保正确的工作得以完成。
权衡
| 要求 | 含义 |
|---|---|
| 耐心 | 设置需要时间;早期阶段感觉缓慢。 |
| 好答案 | 你必须提供清晰、深思熟虑的输入。 |
| 审查所有内容 | 你需要持续参与整个过程。 |
| 接受慢速 | 初始坡度陡峭;把它视为前期思考、文档编写和执行结构的前置工作。 |
把 BMAD 当作 魔法代码生成器 会导致挫败感。把它当作 前置思考的过程 则更有意义,初始坡度过去后就会变得直截了当。
可恢复性:一次重大胜利
因为所有内容都有书面记录,你不再依赖记忆或脆弱的聊天上下文。你拥有具体的人工制品:
- Personas
- Problem statements
- Architecture notes
- Epics
- Stories
- Decisions & trade‑offs
你可以在一天或一周后回来,只需说:
- “Execute this epic.”
- “Continue this story.”
- “Implement the next task.”
- “Run a retrospective on the last change.”
这并不像重新开始。对于个人项目来说,这可以降低导致动力丧失的 context‑reconstruction tax。
当 BMAD 合适(以及不合适)
- 不理想 用于快速脚本或一次性 API 测试 – 它太笨重。
- 理想 用于任何你真正想发布的东西,即使是单独开发者。
我的实战经验
-
为设置预留时间。
- 期望在第一小时内就开始写代码会与工作流冲突。
-
小心使用“派对模式”。
- 有用,但会快速消耗上下文和额度。
-
不要随意对待架构提示。
- “低成本”会引导你采用无服务器模式,这虽好,但也会限制框架选择和部署形态。
-
卡住时使用回顾。
- 本能是继续前进;更聪明的做法是停下来诊断。
-
故事是收益所在。
- 好的故事把执行转化为机械化、可重复的过程。
-
接受早期摩擦。
- 第一期会感觉有摩擦,但这正是目的:它迫使你放慢速度,明确你在做什么,并将决策显式化。
-
跟踪时间和额度。
- 我在几个地方浪费了时间(和额度),尤其是使用派对模式,因架构不匹配损失了六小时,本可以更早发现。
-
一旦文档和工作流就位,流程就会顺畅。
- 从史诗和故事中恢复,指导实现而不必不断重写需求,这是真正的生产力提升。
最后思考
如果你尝试 BMAD,请准备:
- 耐心 – 设置阶段是有意的前期投入。
- 纪律 – 保持文档和审查循环紧密。
- 一种心态,即在编写代码之前花更多时间思考。
轮到你了
如果这与你产生共鸣,你在结构化 AI 辅助工作流方面有什么经验? 我很想听听你的想法。