把需求文档丢给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%
很多人以为「写代码 = 开发」。
但软件开发真正的工作量分布是这样的:
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
AI最擅长的恰恰只是那20%的编码环节。
剩下的80%——架构怎么搭、模块怎么拆、数据怎么流通、出了Bug怎么定位——它搞不定。
更致命的是,AI有一个天生的弱点:
它没有全局记忆。
今天你让它改首页,它把首页改好了。
明天你让它改方案页,它不知道首页的结构已经变了。
于是它按照自己以为的方式改了方案页,结果首页报错了。
你修复首页,知识库又炸了。
你修复知识库,方案页的样式全乱了。
这就是软件工程里让所有程序员最头疼的问题——
回归缺陷(Regression)。
题外话:正规开发到底分几步?
聊到这里,我想先岔开一个话题。
因为上面那张工作占比表虽然看起来直观,但对非技术背景的人来说还是太抽象了。
你可能在想:
行,我知道写代码只占20%了。但那80%具体是什么?每一步谁来做?
这是一个非常好的问题。
因为当你知道正规的软件开发流程之后,你就会立刻明白——
产品经理写完PRD,并不是开发的开始,而只是开发准备完成。
很多非技术人员以为:
PRD↓开发↓上线
但实际上,一个标准互联网项目是这样的:
负责人:产品经理
输出:PRD文档、原型图、业务流程图
内容包括:
为什么做:比如「建设方案编写效率低,人工重复劳动多」
做什么:项目管理、知识库管理、方案生成、Word导出
怎么操:用户点击生成按钮 → 系统自动调用AI生成方案
到这里,产品的工作基本结束。
负责人:产品经理 + 技术负责人 + 测试负责人
这是产品经理和技术团队第一次正面交锋。
你以为你写得够清楚了,技术会问出一堆你压根没想过的问题。
产品说:支持导出Word。
技术会问:保留格式吗?支持目录吗?支持页眉页脚吗?字体用哪个?
产品说:支持AI生成。
技术会问:调用哪个模型?失败怎么办?超时怎么办?一次生成多久算超时?token上限多少?
很多需求问题是在这个环节暴露的。
评审不通过,打回重改。评审通过,进入下一阶段。
负责人:技术负责人(Tech Lead)
这一步产品经理基本不参与。
技术负责人要回答一个核心问题:这个东西技术上怎么做?
PRD说:支持知识库。
技术负责人要决定:
用SQLite还是PostgreSQL?
文档怎么存?
向量库用什么?
检索方案是什么?
全文搜索还是语义搜索?
输出:技术方案文档
负责人:架构师或高级技术负责人
这一步决定系统的骨架:
模块怎么拆:项目模块、客户模块、知识库模块、AI模块、导出模块
数据怎么组织:Customer、Project、Proposal 之间的关系是什么
系统怎么通信:前端 → 接口层 → 业务逻辑层 → 数据层
架构设计是未来能否持续迭代的关键。这一步做不好,后面改一次崩一次。
负责人: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,你定义。
夜雨聆风