Session 1: 需求分析 - 清晰的意图是成功的一半
上节课你建立了指挥官心态,这节课学习:如何把模糊的想法变成 AI 能听懂的指令。
🎬 开场故事:为什么大多数项目失败?
小明的失败
小明想做"喝水提醒 App"。
他打开 AI:"帮我写一个喝水提醒 App"
AI 问了几个问题,然后开始写代码:React Native、Firebase 后端、推送通知...
3 小时后,小明得到了 500 行代码。
他运行,报错。
他问 AI:"报错了"
AI:"你需要先安装 React Native 环境,配置 Android SDK..."
小明头都大了:"我只是想提醒自己喝水而已..."
小明失败的原因:他没想清楚自己要什么,AI 就按"企业级方案"来做了。
小红的成功
小红也想做喝水提醒。
但她先问自己几个问题:
- 我真的需要一个"App"吗?还是网页就行?
- 谁用?就我自己,还是别人也要用?
- 要多复杂?还是只要能记录就行?
然后她这样问 AI:
"我想做一个最简单的喝水记录工具,只有我自己用。每喝一杯水,我在网页上点一下,记录时间和水量。每天显示总共喝了多少。不要提醒功能(我手机自带提醒)。不要服务器,数据存在浏览器就行。最简单的方案。
请给我:
- 最简单的实现方案
- 为什么这个方案最简单
- 核心功能是什么(不超过 3 个)"
10 分钟后,她得到了一个 HTML 文件,双击打开就能用。
小红成功的原因:她想清楚了需求,并且告诉了 AI 明确的约束。
🧠 核心概念:两个层面的需求
系统设计师(还有聪明的普通人)会问自己两个问题:
1. 功能需求(Functional Requirements)
简单说:这个工具能做什么?
| 小明(模糊) | 小红(清晰) |
|---|---|
| "喝水提醒 App" | "记录每次喝水的时间和水量" |
| "有提醒功能" | "不需要提醒,只记录" |
| "可能以后分享" | "只有我自己用,不分享" |
为什么重要? 功能需求决定你要做什么。
2. 非功能需求(Non-Functional Requirements)
简单说:这个东西要做到什么程度?
| 维度 | 小明的想法(没说) | 小红的想法(明确) |
|---|---|---|
| 用户量 | 没说 → AI 假设"多人使用" | 明确:只有我自己 |
| 部署 | 没说 → AI 假设"需要服务器" | 明确:无服务器,纯前端 |
| 复杂度 | 没说 → AI 给"完整方案" | 明确:最简单,核心功能 |
| 提醒 | 说了要 → 但实际不需要 | 明确:不需要 |
为什么重要? 非功能需求决定你用什么技术方案。
为什么要分这两类?
因为资源是有限的。你不可能什么都做。分类后,你可以:
- 功能需求 → 决定做什么
- 非功能需求 → 决定做到什么程度、用什么技术
更重要的是:告诉 AI 你的非功能需求(约束),能防止 AI 过度设计。
🛠️ 实战工具:5W1H + 约束清单
5W1H 框架
用这 6 个问题描述你的想法:
| 问题 | 英文 | 你要回答什么 | 为什么重要 |
|---|---|---|---|
| 谁用? | Who | 你自己?朋友?客户? | 决定复杂度(自己用简单,别人用要考虑权限等) |
| 做什么? | What | 核心功能是什么? | 定义 MVP 范围 |
| 什么时候用? | When | 每天?工作时?特定场景? | 决定性能要求 |
| 在哪里用? | Where | 手机?电脑?需要联网吗? | 决定技术方案 |
| 为什么做? | Why | 现有工具为什么不能解决? | 验证需求真实性 |
| 怎么用? | How | 用户怎么和这个工具交互? | 设计界面和流程 |
约束清单(防止 AI 过度设计的关键)
在和 AI 对话前,先填写这个清单:
【我的约束条件】
技术能力:
□ 完全不懂代码
□ 略懂 HTML/CSS
□ 有其他技术基础(请注明):______
预算:
□ 必须免费
□ 低成本(每年 < 100元)
□ 可以接受一定成本:______
时间:
□ 一周内上线
□ 一个月内
□ 三个月内
部署偏好:
□ 无服务器(最简单)
□ 可以接受托管服务(Vercel/Netlify)
□ 愿意学服务器(如果需要)
维护意愿:
□ 不想维护,设置好就不动
□ 可以接受偶尔调整
□ 愿意持续改进
特别注意:
□ 不要用我不懂的技术
□ 代码要简单易懂
□ 先跑起来最重要
□ 其他:______
这个清单的作用:
- 让你自己先想清楚边界
- 给 AI 明确的约束,防止它放飞自我
- 建立可控感——你知道什么是你能接受的,什么是不能接受的
📝 实战案例:小红的读书笔记工具
第一步:头脑风暴(想到什么写什么)
小红说:
"我看书的时候有很多想法,想记下来。现在用备忘录,但是太乱了。我想做一个专门的读书笔记工具。"
第二步:填 5W1H 表格
| 问题 | 小红的回答 |
|---|---|
| Who 谁用? | 主要我自己用。可能以后想分享给同样爱看书的朋友(但 MVP 不做分享功能)。 |
| What 做什么? | 1. 记录书名和作者 2. 记录摘抄的句子 3. 写自己的感想 4. 给书打标签(比如#心理学 #小说) 5. 能搜索之前记的内容 |
| When 什么时候用? | 看书的时候、看完书整理的时候、想回顾的时候 |
| Where 在哪里用? | 主要在手机上看书记录,偶尔在电脑上整理。希望能同步(但 MVP 可能先做单机版)。 |
| Why 为什么做? | 备忘录太乱了,没有结构。Notion 太复杂,我只想简单记录。 |
| How 怎么用? | 打开 → 选书(或新建)→ 添加笔记 → 保存。就这么简单。 |
第三步:确定约束条件
技术能力:□ 略懂 HTML/CSS(大学学过一点,忘了大半)
预算:□ 必须免费
时间:□ 一周内上线第一版
部署:□ 无服务器(先做 HTML 文件版本)
维护:□ 不想维护
特别注意:
☑ 不要用我不懂的技术(如 React/Vue)
☑ 代码要简单,我能看懂
☑ 先做单机版,同步功能以后再说
第四步:区分功能需求和非功能需求
功能需求(必须有的功能):
- [ ] 添加一本书(书名、作者)
- [ ] 给书添加笔记(摘抄、感想)
- [ ] 查看所有书籍列表
- [ ] 查看某本书的所有笔记
非功能需求(要做到什么程度):
- [ ] 单机版,无服务器
- [ ] 数据存在浏览器本地
- [ ] 界面简单,手机可用
- [ ] 代码简单,我能看懂
第五步:确定 MVP(第一版)
如果只能做 3 个功能:
- 添加书籍(书名、作者)
- 添加笔记(内容、关联到书)
- 查看列表(书和笔记)
其他功能(标签、搜索、同步)→ 以后再说
🤖 和 AI 一起完善需求
现在你可以把这份草稿给 AI,让它帮你查漏补缺。
Prompt 模板:需求分析
我想做一个【读书笔记工具】。
【5W1H 分析】
- Who: 主要我自己用
- What: 记录书名、摘抄、感想
- Where: 主要在手机,偶尔电脑
- Why: 备忘录太乱,Notion 太复杂
【我的约束条件】
- 我是非技术人员,略懂 HTML
- 预算:免费
- 时间:一周内上线
- 无服务器,数据存本地
- 代码要简单,我能看懂
【功能需求】
1. 添加书籍(书名、作者)
2. 添加笔记(摘抄、感想)
3. 查看书籍和笔记列表
请帮我:
1. 分析这个需求的可行性(简单/中等/困难)
2. 列出我可能遗漏的 3 个重要功能
3. 列出 3 个潜在问题或风险
4. 建议 MVP(第一个版本)应该包含什么功能
5. 指出我的约束条件是否合理,有没有冲突
🔍 AI 建议评估 - 需求分析篇
评估框架
当 AI 给出需求分析建议时,问自己:
□ 这个建议符合我的约束条件吗?(技术能力、预算、时间)
□ AI 建议的功能是"必须有"还是"可以有"?(MVP 思维)
□ AI 指出我遗漏的功能真的重要吗?(没有它能用吗?)
□ AI 指出的风险我理解吗?能应对吗?
□ AI 说"简单"或"困难"的理由是什么?合理吗?
AI 可能给出的回答示例
AI 回答:
可行性分析:中等。核心功能简单,但跨设备同步需要后端支持。
可能遗漏的功能:
- 导入书籍信息(扫码 ISBN 或从豆瓣导入,省去手动输入)
- 导出功能(防止服务关停数据丢失)
- 阅读进度追踪(看到第几章了)
潜在风险:
- 同步功能可能需要服务器,有持续成本 → 与"无服务器"约束冲突
- 如果支持图片(拍书页),存储成本会增加
- 用户可能想要分享功能,变成社交产品,复杂度飙升
MVP 建议: 第一版只做单机版网页,数据存在浏览器本地。功能只保留:添加书、添加笔记、查看列表。
你的评估
哪些建议应该采纳?
✅ 采纳:
- "第一版只做单机版" → 符合你的约束
- "导出功能" → 虽然 MVP 不做,但以后要考虑(数据安全)
🚫 不采纳(或推迟):
- "扫码 ISBN 导入" → 超出了简单 HTML 的能力范围
- "阅读进度追踪" → 不是核心需求
- "同步功能" → 明确违反"无服务器"约束
关键判断原则:
- 与约束冲突的建议 → 除非修改约束,否则不采纳
- 超出能力范围的建议 → 标记为"以后再说"
- 增加复杂度但不增加核心价值的建议 → 不采纳
⚠️ 常见陷阱
陷阱 1:功能越多越好
❌ "我要加 AI 分析、加社交分享、加阅读统计、加小组讨论..."
✅ 正确做法:
- 先问自己,去掉这个功能,核心还能用吗?
- 如果还能用,那这个功能就不是 MVP 必须的
- 参考标准:MVP 只做"没有它就不能用"的功能
陷阱 2:追求完美再开始
❌ "我想把所有需求都想清楚再动手"
✅ 正确做法:
- 用 30 分钟填完 5W1H + 约束清单就够了
- 不完美很正常,边做边改
- 指挥官心态:先出发,路上调整方向
陷阱 3:忽视非功能需求
❌ 只关心"能做什么",不考虑"要做到什么程度"
✅ 正确做法:
- 问自己"如果 1000 人用会怎样?"(你可能不需要考虑)
- "如果断网了会怎样?"(单机版没问题)
- "我要花多少钱维护?"(约束清单的重要性)
陷阱 4:忽视"为什么"
❌ 别人说做个 App 好,我就做
✅ 正确做法:
- 现有工具(备忘录、Notion、Flomo)真的不能解决吗?
- 如果能,为什么还要做?(可能是伪需求)
- 5W1H 中的 Why 不是摆设
✅ 本节课作业
选一个你想做的项目(哪怕是"我想重新做刚才那个喝水记录"),完成:
作业 1:填写 5W1H 表格
项目名称:_________________
【Who 谁用?】
主要用户:_________________
是否分享给别人:□ 是 / □ 否
【What 做什么?】
核心功能 1:_________________
核心功能 2:_________________
核心功能 3:_________________
以后可能加的功能:_________________
【When 什么时候用?】
使用频率:_________________
典型场景:_________________
【Where 在哪里用?】
主要设备:□ 手机 □ 电脑 □ 平板 □ 其他_____
网络要求:□ 必须联网 □ 最好能离线 □ 无所谓
【Why 为什么做?】
现有工具的问题:_________________
为什么现有工具不能满足:_________________
【How 怎么用?】
用户主要操作流程:
1. _________________
2. _________________
3. _________________
作业 2:填写约束清单
【我的约束条件】
技术能力:□ 完全不懂代码 / □ 略懂 HTML / □ 有其他基础
预算:□ 免费 / □ 低成本 / □ 可接受范围:______
时间:□ 一周内 / □ 一个月内 / □ 三个月内
部署:□ 无服务器 / □ 托管服务 / □ 愿意学服务器
维护:□ 不想维护 / □ 偶尔维护 / □ 持续改进
特别注意(防止 AI 过度设计):
□ 不要用我不懂的技术(请注明哪些):______
□ 代码要简单易懂
□ 先跑起来最重要
□ 其他:______
作业 3:区分功能和约束
【功能需求清单】
(必须有的功能,用动词开头)
- [ ] _________________
- [ ] _________________
- [ ] _________________
【非功能需求清单】
(要做到什么程度,用形容词/副词)
- [ ] 性能:_________________
- [ ] 可靠性:_________________
- [ ] 成本:_________________
- [ ] 技术复杂度:_________________
作业 4:确定 MVP 范围
【MVP(第一版)功能】
只能选 3 个:
1. _________________
2. _________________
3. _________________
【为什么只选这 3 个?】
1. _________________
2. _________________
3. _________________
【明确不做的功能(至少列 2 个)】
1. _________________(为什么不做:_____________)
2. _________________(为什么不做:_____________)
作业 5:用 AI 检查
把上面的内容贴给 AI(用上面的 Prompt 模板)。
然后做 AI 建议评估:
- AI 的建议哪些应该采纳?为什么?
- AI 的建议哪些不应该采纳?为什么?
- AI 有没有建议违反你的约束条件?
作业 6(进阶):对比实验
实验 A:不加约束,直接问 AI "我想做一个 [项目]"
实验 B:加上完整的 5W1H 和约束清单,再问 AI
对比两个回答:
- 哪个更简单?
- 哪个更符合你的需求?
- 你更能理解哪个方案?
📎 模板下载
完整需求分析模板
# 项目需求分析
## 项目名称:
## 5W1H 分析
### Who(谁用)
- 主要用户:
- 次要用户:
- 是否分享/公开:
### What(做什么)
- 核心功能 1:
- 核心功能 2:
- 核心功能 3:
- 以后可能加的功能:
### When(什么时候用)
- 使用频率:
- 典型场景:
### Where(在哪里用)
- 主要设备:
- 网络要求:
### Why(为什么做)
- 现有工具的问题:
- 为什么现有工具不能满足:
### How(怎么用)
- 用户操作流程:
1.
2.
3.
## 约束条件
- 技术能力:
- 预算:
- 时间:
- 部署偏好:
- 维护意愿:
- 特别注意:
## 功能需求
- [ ]
- [ ]
- [ ]
## 非功能需求
- 性能:
- 可靠性:
- 成本:
- 技术复杂度:
## MVP 范围
第一版只做:
1.
2.
3.
明确不做:
1.
2.
🎯 下节课预告
Session 2: 架构设计 - 画一张 AI 能看懂的地图
我们会学习:
- 怎么把需求变成"框和箭头"的图
- 不需要会画画,用简单的文字就能表达
- 让 AI 帮你画出专业的架构图
- 如何用约束防止 AI 过度设计架构
记得带好你今天的需求分析作业!
💬 常见问题
Q: 我只是做个小工具,有必要这么正式吗?
A: 这个"正式"只需要 30 分钟。但它能帮你省几个小时甚至几天的返工。就像出门前先看看地图,不是让你写论文,就是别让地图别拿反了。
Q: 我想不清楚需求怎么办?
A: 正常!先用 AI 聊聊。把你模糊的想法说给 AI,让它帮你结构化。你可以说:"我有个模糊的想法,想做一个... 但具体怎么做还不清楚,帮我梳理一下。"
Q: 需求会变的,现在写这么多有用吗?
A: 会变的!所以这个文档是"活"的。第一版可能是错的,但有一个起点比没有强。而且写下来后,你能清楚看到"我当初为什么这么想",这对后续调整很有帮助。
Q: AI 给的建议我都要采纳吗?
A: 不需要! 用我们这节课学的评估框架,自己判断。AI 的建议只是参考,最终决定权在你。
完成这节课,你已经超过了 80% 的"想做点什么"的人。
因为大多数人直接开始写代码,而你想清楚了自己要做什么,以及更重要的是——不要做什么。
下一节课见! 🚀