Appearance
第 6 课:与 AI 协作确认需求
第二章:需求定义与文档 | 第 6 课
课前思考
你有一个清晰的产品想法,你打开 AI 工具,描述了一番你的需求,AI 开始生成代码。一切看起来都很顺利——直到你运行起来,发现 AI 做了一个和你想象的完全不同的东西。
问题出在哪?不是 AI 不够聪明,而是你的需求描述中充满了"你以为不用说但 AI 其实不知道"的隐含信息。
这一课要解决的问题是:如何确保 AI 真正理解了你的需求,而不是按照自己的默认理解去执行。
AI 的理解盲区
AI 的工作方式和人有一个根本差异:AI 不会"脑补"。
当你说"帮我做一个登录功能"时:
- 人类开发者会问:"用户名+密码?还是手机验证码?还是第三方登录?"
- AI 可能会直接按照最常见的模式生成代码——如果这不是你要的,你就得返工。
更危险的是,AI 不一定会追问。AI 有时会追问模糊的地方,但也可能直接按照"常见做法"处理,而这种默认处理往往与你的预期不符。
常见的理解偏差来源
| 偏差来源 | 具体表现 | 导致的后果 |
|---|---|---|
| 用户模糊 | "给职场人士用的工具"——职场人士是谁? | AI 猜错目标用户群体 |
| 边界不明确 | "做一个聊天功能"——群聊?私聊? | AI 可能做了一整套 IM 系统 |
| 约束未说明 | 你没说只能用纯前端 | AI 选用了数据库和后端框架 |
| 默认值差异 | "显示列表"——多少条?分页吗? | AI 可能猜 10 条,也可能猜 100 条 |
| 状态遗漏 | "提交表单"——提交中、失败、成功怎么办? | AI 可能不做加载状态和错误处理 |
核心问题不是"AI 会犯错",而是"AI 犯错了你可能到运行时才发现"。
核心方法一:让 AI 主动追问
传统的"用户说、AI 做"模式有一个问题——用户需要自己去发现遗漏了什么。但现实中,很多细节是在对话中逐渐清晰的。
更好的方式是:让你的 AI 反过来问你问题。
如何启动追问
描述完你的需求后,加一句:
"基于现有方案,列出多个你不确定的问题向我确认。"
AI 会输出一批问题(通常 3-7 个),你逐一回答后,AI 根据你的回答继续追问,直到双方对齐。
一个追问示例
你提出需求:
"我想做一个待办清单应用。"
你启动追问:
"基于现有方案,列出多个你不确定的问题向我确认。"
AI 第一轮追问:
- 目标用户是谁?是个人使用还是团队协作?
- 核心功能有哪些?(添加、勾选、删除就够了吗?需要分类标签吗?)
- 数据存储在哪里?本地浏览器还是云端?
- 需要用户登录吗?
- 有移动端需求吗?
你回答后,AI 继续深入:
你:1.个人使用 2.只做添加/勾选/删除 3.本地存储 4.不需要登录 5.只做桌面端
AI:明白了。还有几个问题:
- 本地存储的话,用户清理浏览器数据任务会丢失——这个风险可接受吗?
- "完成"的任务是删除还是保留但标记为已完成?
- 任务有截止日期吗?
- 列表为空时显示什么?
注意 AI 是如何根据你的回答,不断挖掘更深的隐藏假设的——从"清理浏览器数据会丢失"到"空列表显示什么"。
追问的终点
当满足以下条件时,可以停止追问:
- AI 的理解与你的预期完全一致——逐条检查,没有偏差
- 所有关键细节都已明确——没有模糊地带
- 边缘情况已讨论——异常情况怎么处理有明确方案
- 你自己也感到清晰了——通过回答问题,你对自己的需求也有了更清晰的认识
核心方法二:使用确认模板
每次讨论完需求后,使用以下模板让 AI 输出它的理解:
请确认你理解了我的需求,按以下格式回复:
- 目标用户:你理解的目标用户
- 核心功能:你理解的 3-5 个核心功能
- 不做的事情:你理解的不做的功能
- 可能的问题:你认为我可能没考虑到的地方
如果有任何不确定,请列出问题清单。
这个模板的价值在于:强迫 AI 把隐含的假设显性化。 当 AI 写下"目标用户是职场白领"时,你可以立即纠正——"不对,目标用户是大学生"。这种显性对比让误解无处藏身。
| 只说"帮我做X" | 用确认模板 |
|---|---|
| AI 按猜测理解 | AI 必须明确写出它的理解 |
| 不知道 AI 理解对不对 | 能逐项检查 |
| 有误解只能返工 | 在写代码前就发现误解 |
核心方法三:方案先行
一个非常有效的实践:先让 AI 输出方案,确认后再写代码。
"请先不要写代码,先给出实现方案:数据结构设计、主要页面/组件及其职责、核心流程的实现思路、可能遇到的技术难点。我确认后再写代码。"
这样做的好处:
| 直接写代码 | 先出方案 |
|---|---|
| 方向性错误发现得晚 | 方案阶段就能纠偏 |
| 有误解返工量大 | 方案阶段就能发现 |
| 结果是否可控不确定 | 方案确认后再写,预期明确 |
方案先行把"想清楚做什么"和"怎么实现"分开。第一阶段只关注高层设计是否合理,第二阶段只关注代码细节。这样你审查方案的认知负担更小,也更容易发现方向性的错误。
必须确认的 5 类细节
无论用追问还是确认模板,以下 5 类细节都必须在让 AI 开始写代码之前确认清楚:
1. 用户与场景
- 目标用户是谁?(具体到人,不是"所有人")
- 使用场景是什么?(决定了做移动端还是桌面端)
- 解决什么问题?(确保做的是有价值的功能)
2. 核心功能(明确边界)
- 最核心的 3-5 个功能是什么?
- 用户完成任务的完整流程是什么?
- 有哪些状态变化?(加载、成功、失败、空数据)
3. 不做的事情(范围管理)
- 哪些功能这次不做?
- 哪些功能永远不做?
记住:AI 倾向于"多做"。必须明确告诉它边界。
4. 数据与状态
- 需要存储哪些数据?
- 数据从哪里来?
- 边缘情况怎么处理?(快速点击、网络错误、空数据、超长输入)
5. 技术约束
- 有技术栈限制吗?
- 需要兼容哪些设备和浏览器?
- 有性能要求吗?
常见误区
误区一:AI 问的问题太基础,觉得没必要回答。 结果是跳过了关键确认,理解偏差被隐藏。即使是基础问题,也应该明确回答来消除歧义。
误区二:回答模糊,让 AI "看着办"。 "都可以"、"你决定"——AI 会按默认方式处理,可能不符合你的需求。明确给出选择,不要模糊。
误区三:怕麻烦,一轮问答就喊停。 深层假设没被挖掘出来,后续返工成本更高。耐心回答多轮问题,直到双方真正对齐。
误区四:AI 确认了,但生成的代码还是不对。 检查是不是遗漏了某些细节,或者让 AI 生成方案时没有仔细审核。方案是代码的蓝图,方案错了代码一定错。
本课实践
用你现在正在做的产品想法,完成以下练习:
- 向 AI 描述你的需求(不要太详细,就像你平时会做的那样)
- 用"基于现有方案,列出多个你不确定的问题向我确认"启动追问
- 回答 AI 的问题,直到它没有新的追问
- 用确认模板让 AI 输出它的完整理解
- 检查 AI 的理解是否与你一致,标记出不一致的地方
记录这个过程中你被 AI 问到的最让你"意外"的 3 个问题——那些你之前完全没想到但确实很重要的细节。
下一步
掌握了如何与 AI 确认需求之后,下一课我们将学习如何把这些确认过的信息组织成一份结构化的 PRD——它不是给老板看的报告,而是你和 AI 之间的"执行契约"。
课程讨论
有问题或想法?欢迎在下方留言讨论。