乐于分享
好东西不私藏

把需求文档丢给AI,苦干一天写出一堆Bug:产品经理用AI开发为什么一定会崩?

把需求文档丢给AI,苦干一天写出一堆Bug:产品经理用AI开发为什么一定会崩?

你一定见过这种画面——

某音上刷到一个人,对着Cursor说了几句话,10分钟生成一个App。

评论区炸了:

“程序员要失业了。”“以后人人都是开发者。”“产品经理自己就能把活干了。”

你信了。

你正好有一个想法,想做一套建设方案撰写系统。

需求分析做完了,原型图画好了,文档写得清清楚楚。

你打开 Opencode,把需求文档和原型丢进去:

“帮我开发一个 Mac 客户端。”

AI开始疯狂输出。

创建项目、创建页面、创建数据库、创建接口、创建菜单、创建配置——

几十个文件刷刷刷地出来了。

你看着终端里滚动的日志,心里只有一个念头:

卧槽,真快。


然后你点了运行。

页面打不开。

按钮点不动。

数据存不进去。

跳转全是404。

功能缺了一半。

你改了几行字,重新让AI修。

它修好了A,搞坏了B。

你让它修B,它搞坏了C。

你再让它修C,A又炸了。


一天下来,你心力憔悴。

你开始怀疑人生:

不是说AI写代码很厉害吗?

为什么到了我这儿,全是Bug?

问题到底出在哪?


这个问题,其实不是你的问题。

也不是Opencode的问题。

而是你踩进了一个绝大多数非技术背景的人都会踩的坑——

你把AI当成了「程序员」。

但AI不是程序员。

它是一个能力很强、但极度不靠谱的新员工。


我知道这时候肯定有人要说了:

“不对啊,我看网上那些教程,AI确实能一次生成完整的App啊。”

没错。

但你仔细看看那些教程做的都是什么:

Todo App

计算器

Markdown编辑器

RSS阅读器

这些项目的需求链路是:

需求 → 开发 → 完成

一个会话,一次生成,搞定。


但你的建设方案撰写系统里面有什么?

项目管理、客户管理、文档管理、知识库、AI生成、Word导出、模板管理、权限管理、本地存储……

这实际上已经是一个中型软件

你相当于招了一个刚毕业的实习生,甩给他200页需求文档,让他一个人把整栋楼盖起来。

结果一定崩。


真相:写代码只占开发工作的20%

很多人以为「写代码 = 开发」。

但软件开发真正的工作量分布是这样的:

环节
占比
需求分析
20%
架构设计
20%
编码
20%
联调
15%
测试
15%
修复
10%

AI最擅长的恰恰只是那20%的编码环节。

剩下的80%——架构怎么搭、模块怎么拆、数据怎么流通、出了Bug怎么定位——它搞不定。

更致命的是,AI有一个天生的弱点:

它没有全局记忆。

今天你让它改首页,它把首页改好了。

明天你让它改方案页,它不知道首页的结构已经变了。

于是它按照自己以为的方式改了方案页,结果首页报错了。

你修复首页,知识库又炸了。

你修复知识库,方案页的样式全乱了。

这就是软件工程里让所有程序员最头疼的问题——

回归缺陷(Regression)。


题外话:正规开发到底分几步?

聊到这里,我想先岔开一个话题。

因为上面那张工作占比表虽然看起来直观,但对非技术背景的人来说还是太抽象了。

你可能在想:

行,我知道写代码只占20%了。但那80%具体是什么?每一步谁来做?

这是一个非常好的问题。

因为当你知道正规的软件开发流程之后,你就会立刻明白——

产品经理写完PRD,并不是开发的开始,而只是开发准备完成。

很多非技术人员以为:

PRD开发上线

但实际上,一个标准互联网项目是这样的:


第一步:产品需求(PRD)

负责人:产品经理

输出:PRD文档、原型图、业务流程图

内容包括:

为什么做:比如「建设方案编写效率低,人工重复劳动多」

做什么:项目管理、知识库管理、方案生成、Word导出

怎么操:用户点击生成按钮 → 系统自动调用AI生成方案

到这里,产品的工作基本结束。


第二步:需求评审

负责人:产品经理 + 技术负责人 + 测试负责人

这是产品经理和技术团队第一次正面交锋。

你以为你写得够清楚了,技术会问出一堆你压根没想过的问题。

产品说:支持导出Word。

技术会问:保留格式吗?支持目录吗?支持页眉页脚吗?字体用哪个?

产品说:支持AI生成。

技术会问:调用哪个模型?失败怎么办?超时怎么办?一次生成多久算超时?token上限多少?

很多需求问题是在这个环节暴露的。

评审不通过,打回重改。评审通过,进入下一阶段。


第三步:技术方案设计

负责人:技术负责人(Tech Lead)

这一步产品经理基本不参与。

技术负责人要回答一个核心问题:这个东西技术上怎么做?

PRD说:支持知识库。

技术负责人要决定:

用SQLite还是PostgreSQL?

文档怎么存?

向量库用什么?

检索方案是什么?

全文搜索还是语义搜索?

输出:技术方案文档


第四步:架构设计

负责人:架构师或高级技术负责人

这一步决定系统的骨架:

模块怎么拆:项目模块、客户模块、知识库模块、AI模块、导出模块

数据怎么组织:Customer、Project、Proposal 之间的关系是什么

系统怎么通信:前端 → 接口层 → 业务逻辑层 → 数据层

架构设计是未来能否持续迭代的关键。这一步做不好,后面改一次崩一次。


第五步:UI设计

负责人:UI设计师

输出:高保真设计稿(Figma / Sketch / MasterGo)

注意:开发不看原型,开发看设计稿。

因为设计稿包含:颜色、字体、尺寸、间距、交互状态(点击、悬停、加载、错误、空状态)。


第六步:开发任务拆分

负责人:技术负责人

把系统拆成一个个可以独立开发的任务:

任务001:项目列表页

任务002:项目新增功能

任务003:项目编辑功能

任务004:项目删除功能

开发不会拿整个PRD去写代码。开发拿的是一个个具体任务。


第七步:开发

负责人:前端工程师 + 后端工程师

前端负责:页面、按钮、表单、交互、动画

后端负责:数据库、接口、业务逻辑、鉴权

这一步才是真正写代码。

而很多人以为「开发 = 软件开发」,其实只是其中一环。


第八步:测试

负责人:测试工程师

测试不看代码。测试只看需求。

PRD说:项目名称不能为空。

测试会验证:空名称能不能保存?50个字能不能保存?特殊字符能不能保存?

发现问题 → 提交Bug → 开发修复 → 回归测试。

测试过不了,代码不能上线。


第九步:产品验收

负责人:产品经理

测试通过不代表产品通过。

功能没Bug,但是体验很差——按钮位置不对、操作步骤太多、加载速度太慢——产品经理仍然可以拒收。

最终验收权在产品经理手里。


第十步:上线

负责人:运维 + 开发

部署服务器、配置数据库、绑定域名、申请SSL证书。

上线后持续观察:日志、性能、错误率、用户反馈。

至此,一个功能才真正交付到用户手上。


现在你看出问题了吗?

整个流程里,真正写代码的人只有第七步的开发工程师。

但决定项目成败的是:

产品经理(需求定义)

技术负责人(方案设计 + 任务拆分)

架构师(系统骨架)

测试工程师(质量把关)

写代码只是这十步中的一步。

而你现在的AI开发模式是什么?

产品经理 ↓AI(一个人干十个人的活)

于是AI直接从PRD跳到了写代码。

跳过需求评审 → 没人挑战你的需求逻辑漏洞

跳过技术方案 → AI按自己「猜」的方式实现

跳过架构设计 → 模块耦合严重,改一处崩一片

跳过测试 → Bug直到运行时才发现

难怪你会崩。


问题不是需求太多,而是你一次性给太多了

你可能会想:是不是我的需求写得太多了?

是,但这不是核心原因。

核心原因是:你一次性交给AI的上下文太大了。

AI模型有一个关键限制——上下文窗口。

你扔给它一整个系统的需求文档、原型图、几十个模块的说明,它不可能全都记住。

它在写第5个模块的时候,已经忘了第1个模块的数据结构。

于是它开始「猜」。

猜错了,你就得到了一个Bug。

你再让它改,它再猜。

AI不是在开发,它是在盲猜。


你缺的不是AI,是一个Tech Lead

很多AI开发教程都在教你怎么写Prompt。

但它们都漏掉了最关键的一件事——

你缺少了一个「技术负责人」的角色。

对比一下上面的正规流程和你的流程:

正规流程 你的流程产品经理 产品经理 ↓ ↓技术负责人(方案 + 拆分 + 验收) AI(一人分饰十角) ↓开发工程师 ↓测试工程师

中间那一整层——从技术方案到测试验收——全部缺失了。

这个角色干什么?三件事:

第一,拆需求。

把「建设方案撰写系统」拆成独立模块:

模块1:项目管理

模块2:客户管理

模块3:知识库

模块4:方案生成

模块5:Word导出

每一个模块可以独立开发、独立测试、独立验收。

第二,定架构。

数据模型长什么样?API怎么设计?状态怎么管理?文件怎么组织?

这些东西确定之后,AI写代码才有了「规矩」,而不是想怎么写就怎么写。

第三,写验收标准。

“能做出来”不等于”能做对”。

你得告诉AI什么是「对」的:

项目管理模块验收标准:✓ 能新增项目✓ 能编辑项目✓ 能删除项目✓ 数据关闭后重新打开仍在

没有验收标准,AI就是边猜边写,你就是在玩Bug抽卡游戏。


产品经理用AI开发的正确姿势

如果你是非技术背景的产品经理,想做自己的工具,下面这套流程是我实测最有效的:

第一阶段:先出文档,再写代码

不要一上来就让AI写代码。

先让它出这些:

PRD:产品需求文档

技术方案:架构设计

数据模型:数据库设计

页面设计:UI交互

API设计:接口定义

每出一份,你评审一份。

评审通过,再进入下一份。

全部通过,才开始写代码。

这一步本质上就是在用一个AI模拟「技术负责人 + 架构师」的角色。

第二阶段:按模块开发,一次只做一个

不要说「帮我开发建设方案系统」。

要说「本周只开发项目管理模块,验收通过后下周再做客户管理」。

一次只做一个模块,做完验收,验收通过,再进下一个。

Anthropic 2026年的一项研究分析了40万个AI编程会话,发现了一个重要结论:

决定AI编程成功率的,不是你会不会写代码,而是你对你正在解决的问题理解有多深

模块越小,理解越深,成功率越高。

第三阶段:先写测试,再写功能

这是AI开发最高效的技巧,没有之一。

不要说「帮我实现项目管理」。

先让AI写验收标准,然后把验收标准转成测试用例。

最后才说:「根据这些测试用例,实现功能。」

这样每次修改之后,跑一遍测试。

测试全过,说明没改坏东西。

测试挂了,说明引入新Bug了,立即修复。

第四阶段:建立回归测试清单

你现在最痛苦的是「修A坏B,修B坏C」。

解决方法是维护一个回归测试清单:

项目管理:☐ 新增 ☐ 编辑 ☐ 删除客户管理:☐ 新增 ☐ 编辑 ☐ 删除知识库:☐ 导入 ☐ 删除 ☐ 搜索方案生成:☐ 创建 ☐ 保存 ☐ 导出

每次开发完成后,让AI自己执行一遍检查。

第五阶段:冻结版本,禁止顺手重构

很多AI项目死在这里。

你今天修Bug,AI顺手重构了代码结构。

明天增功能,AI顺手改了数据模型。

后天再修Bug,AI又调整了目录结构。

最后整个项目成了一坨无法维护的「屎山」——不对,是屎山Plus。

应该这样做:

V0.1:禁止重构,禁止新增,只修缺陷缺陷稳定后 → V0.2:允许新增功能功能稳定后 → V0.3:允许重构

每一步都锁死,不要跳步。


给AI建一套「记忆系统」

这是Opencode、Cursor、Claude Code最大的共同弱点——

它们不是真正理解你的项目,它们只理解当前会话的上下文。

所以你必须给AI建一套项目文档:

project/├── 01_PRD.md产品需求├── 02_ARCHITECTURE.md # 系统架构├── 03_DATA_MODEL.md # 数据模型├── 04_MODULE_SPEC.md # 模块说明└── 05_TEST_CASE.md # 测试用例

每次开发前,让AI先读这些文档,再写代码。

这样它不会今天一个数据结构,明天又一个数据结构。


写在最后

Gartner预测,到2027年,超过40%的AI项目会被取消或缩减。

MIT的研究显示,95%的生成式AI项目从未成功落地。

但你看另一边——

GitHub的数据触目惊心:仅Claude Code一个工具,每天贡献了约13.5万次Git提交,占全球GitHub总提交量的4%。

AI写代码的能力已经不需要验证了。

真正需要验证的是:你能不能管住AI写的代码。

你现在的经历,本质上是一次痛苦的认知升级——

从「把AI当成代码生成器」升级到「把AI当成开发团队成员」。

这一步很痛苦,但也是AI开发真正开始变得高效的起点。

很多AI开发教程喜欢说”AI时代不需要软件工程了”。

实际上恰恰相反:

AI把编码成本降到了接近零,但把”需求、架构、测试、验收”的重要性放大了十倍。

因为代码写得越快,错误传播得也越快。真正限制项目成功的,已经不是编码速度,而是工程管理能力。

对于不懂代码的产品经理来说,最有效的模式不是:

产品经理 → AI开发
产品经理 → AI开发
 ↓
产品经理 ↓AI架构师(出方案 + 拆任务) ↓AI开发工程师(写代码) ↓AI测试工程师(写测试 + 回归) ↓产品验收
管理,而不是当成一个万能程序员来使用。

这样,你的项目成功率会从现在的20%左右,提升到70%以上。

而且最关键的是——

Bug数量不会随着功能增加而指数级爆炸。

这才是真正能用AI做出中大型产品的方法。

◆◆◆

最后送你一句话:

不要问AI能不能写出代码。

要问你自己:你能不能管住它写出的每一行代码。

你的AI,你定义。