Session 1: 需求分析 - 清晰的意图是成功的一半

上节课你建立了指挥官心态,这节课学习:如何把模糊的想法变成 AI 能听懂的指令。


🎬 开场故事:为什么大多数项目失败?

小明的失败

小明想做"喝水提醒 App"。

他打开 AI:"帮我写一个喝水提醒 App"

AI 问了几个问题,然后开始写代码:React Native、Firebase 后端、推送通知...

3 小时后,小明得到了 500 行代码。

他运行,报错。

他问 AI:"报错了"

AI:"你需要先安装 React Native 环境,配置 Android SDK..."

小明头都大了:"我只是想提醒自己喝水而已..."

小明失败的原因:他没想清楚自己要什么,AI 就按"企业级方案"来做了。


小红的成功

小红也想做喝水提醒。

但她先问自己几个问题:

  • 我真的需要一个"App"吗?还是网页就行?
  • 谁用?就我自己,还是别人也要用?
  • 要多复杂?还是只要能记录就行?

然后她这样问 AI:

"我想做一个最简单的喝水记录工具,只有我自己用。每喝一杯水,我在网页上点一下,记录时间和水量。每天显示总共喝了多少。不要提醒功能(我手机自带提醒)。不要服务器,数据存在浏览器就行。最简单的方案

请给我:

  1. 最简单的实现方案
  2. 为什么这个方案最简单
  3. 核心功能是什么(不超过 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)
□ 愿意学服务器(如果需要)

维护意愿:
□ 不想维护,设置好就不动
□ 可以接受偶尔调整
□ 愿意持续改进

特别注意:
□ 不要用我不懂的技术
□ 代码要简单易懂
□ 先跑起来最重要
□ 其他:______

这个清单的作用

  1. 让你自己先想清楚边界
  2. 给 AI 明确的约束,防止它放飞自我
  3. 建立可控感——你知道什么是你能接受的,什么是不能接受的

📝 实战案例:小红的读书笔记工具

第一步:头脑风暴(想到什么写什么)

小红说:

"我看书的时候有很多想法,想记下来。现在用备忘录,但是太乱了。我想做一个专门的读书笔记工具。"

第二步:填 5W1H 表格

问题 小红的回答
Who 谁用? 主要我自己用。可能以后想分享给同样爱看书的朋友(但 MVP 不做分享功能)。
What 做什么? 1. 记录书名和作者

2. 记录摘抄的句子

3. 写自己的感想

4. 给书打标签(比如#心理学 #小说)

5. 能搜索之前记的内容
When 什么时候用? 看书的时候、看完书整理的时候、想回顾的时候
Where 在哪里用? 主要在手机上看书记录,偶尔在电脑上整理。希望能同步(但 MVP 可能先做单机版)。
Why 为什么做? 备忘录太乱了,没有结构。Notion 太复杂,我只想简单记录。
How 怎么用? 打开 → 选书(或新建)→ 添加笔记 → 保存。就这么简单。

第三步:确定约束条件

技术能力:□ 略懂 HTML/CSS(大学学过一点,忘了大半)
预算:□ 必须免费
时间:□ 一周内上线第一版
部署:□ 无服务器(先做 HTML 文件版本)
维护:□ 不想维护

特别注意:
☑ 不要用我不懂的技术(如 React/Vue)
☑ 代码要简单,我能看懂
☑ 先做单机版,同步功能以后再说

第四步:区分功能需求和非功能需求

功能需求(必须有的功能):

  • [ ] 添加一本书(书名、作者)
  • [ ] 给书添加笔记(摘抄、感想)
  • [ ] 查看所有书籍列表
  • [ ] 查看某本书的所有笔记

非功能需求(要做到什么程度):

  • [ ] 单机版,无服务器
  • [ ] 数据存在浏览器本地
  • [ ] 界面简单,手机可用
  • [ ] 代码简单,我能看懂

第五步:确定 MVP(第一版)

如果只能做 3 个功能:

  1. 添加书籍(书名、作者)
  2. 添加笔记(内容、关联到书)
  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 回答

可行性分析:中等。核心功能简单,但跨设备同步需要后端支持。

可能遗漏的功能

  1. 导入书籍信息(扫码 ISBN 或从豆瓣导入,省去手动输入)
  2. 导出功能(防止服务关停数据丢失)
  3. 阅读进度追踪(看到第几章了)

潜在风险

  1. 同步功能可能需要服务器,有持续成本 → 与"无服务器"约束冲突
  2. 如果支持图片(拍书页),存储成本会增加
  3. 用户可能想要分享功能,变成社交产品,复杂度飙升

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% 的"想做点什么"的人。

因为大多数人直接开始写代码,而你想清楚了自己要做什么,以及更重要的是——不要做什么。

下一节课见! 🚀

results matching ""

    No results matching ""