第5章 像产品经理一样思考
开场:从模糊想法到清晰需求
"我想做一个App。"
这句话,我听过无数遍。
但当我问"做什么App?"的时候,答案往往是模糊的:
- "就是...一个社交App,但和现有的不一样"
- "我想做一个帮我管理时间的工具"
- "做一个能自动整理照片的相册"
这些想法都不错。但它们不是"需求",只是"方向"。
AI听不懂方向。AI需要的是清晰的描述。
这一章,我要教你一个产品经理每天都在用的技能:需求拆解。
把一个模糊的想法,分解成AI能理解的结构化描述。
这个能力不管用什么工具都需要,它是AI编程的底层能力。
你会学到什么
- 什么是用户故事,如何写好它
- GRIP框架:结构化描述需求
- 一个完整的拆解案例
- 常见错误和解决方法
第一节:AI听不懂什么?
首先,让我们看看AI听不懂什么样的描述。
模糊的描述
以下是AI难以理解的描述方式:
- "做一个好看的网站"——好看的标准是什么?
- "要现代化一点"——现代指的是什么风格?
- "用户体验要好"——怎样的体验才算好?
这些描述的问题是什么?
- "好看"没有标准——你觉得好看,AI不一定觉得好看
- "现代化"是抽象的——AI不知道你指的是什么风格
- "体验好"没有具体指标——是快?是流畅?还是简单?
清晰的描述
以下是AI能够理解的描述方式:
- "做一个个人博客,首页显示最新五篇文章,每篇文章有标题、摘要、发布日期"
- "使用Tailwind CSS的蓝色系配色,主色#3B82F6"
- "页面加载时间不超过2秒,在移动端也能正常显示"
这些描述AI能听懂,因为它们是:
- 具体的——说清楚了要什么
- 可验证的——可以判断是否达标
- 有边界的——明确了范围
第二节:用户故事
产品经理有一个常用的工具叫"用户故事"(User Story)。
它的格式很简单:
作为[谁],我想要[做什么],为了[什么目的]。
一个完整例子
让我们把"我想做一个记账本"转换成用户故事。
模糊版:我想做一个记账本。
用户故事版:
作为自由职业者, 我想要追踪每月的收入和支出, 为了了解我的财务状况,做好税务准备。
看,一下子就清楚了:
- 谁在用?自由职业者
- 要做什么?追踪收入支出
为了什么?财务状况、税务准备
用户故事的价值
用户故事的价值在于:
- 它强迫你思考"谁"——你的目标用户是谁
- 它强迫你思考"什么"——具体要做什么功能
- 它强迫你思考"为什么"——这个功能解决什么问题
这三个问题的答案,就是AI需要的信息。
多个用户故事
一个产品通常有多个用户故事。我们的记账本可能有:
作为用户,我想要添加收入记录,为了追踪我的收入来源。
作为用户,我想要添加支出记录,为了追踪我的花费。
作为用户,我想要查看总余额,为了了解我的财务状况。
作为用户,我想要按月份筛选记录,为了做月度分析。
多个用户故事合在一起,就是一个完整的需求描述。
第三节:GRIP框架
用户故事是一个好的开始,但对于AI编程来说,还需要更多信息。
我总结了一个GRIP框架。请见表5-1。
表5-1 GRIP框架说明
| 字母 | 代表 | 含义 | 示例 |
|---|---|---|---|
| G | Goal | 目标是什么 | 做一个自由职业者的记账本 |
| R | Role | 谁在使用 | 自由职业者,可能不太懂财务 |
| I | Input | 用户输入什么 | 收入/支出金额、类别、日期 |
| P | Process | 系统做什么 | 记录、计算、筛选、导出 |
用GRIP框架重新描述记账本
让我们用GRIP框架重新描述记账本项目:
G(目标):做一个帮助自由职业者管理财务的记账本工具
R(用户):自由职业者,可能同时有多个收入来源,需要为报税做准备
I(输入):
- 收入:金额、来源(客户/平台)、日期
- 支出:金额、类别(软件/设备/交通)、日期
P(处理):
- 显示当前余额
- 列出所有记录
- 按月份筛选
- 导出为CSV(方便报税)
这样的描述,AI完全可以理解了。
第四节:一个完整的拆解案例
让我们从一个模糊的想法开始,一步步拆解成清晰的描述。
原始想法
"我想做一个帮助设计师找灵感的网站。"
第一步:写用户故事
作为平面设计师或插画师, 我想要浏览和收集设计灵感, 为了在开始新项目时有参考方向。
第二步:用GRIP框架展开
G:做一个设计灵感收集和浏览网站
R:设计师,可能同时在做多个项目
I:
- 浏览:按类别(平面/插画/UI/3D)筛选
- 收藏:点击按钮保存喜欢的作品
- 标签:给收藏的作品加标签
P:
- 显示精选作品列表
- 点击可查看大图
- 收藏的作品显示在个人页面
- 支持按标签筛选收藏
第三步:添加约束条件
技术约束:
- 使用bolt.new快速搭建
- 数据存储在浏览器本地(不需要后端)
设计约束:
- 简洁风格,突出图片
- 移动端友好
- 图片使用占位符或Unsplash API
MVP定义(最小可行版本):
- 显示随机精选作品(使用占位图)
- 每个作品有收藏按钮
- 点击收藏后,作品出现在"我的收藏"页面
以后再加:
- 标签系统
- 用户登录
- 分享功能
第四步:最终描述
现在,你可以把这个描述给AI了:
我想做一个设计灵感网站。
目标用户:设计师,想要浏览和收集设计灵感。
MVP功能:
- 显示精选作品列表(用占位图)
- 每个作品有收藏按钮
- 点击收藏后,作品出现在"我的收藏"页面
技术要求:
- 数据存储在本地localStorage
- 简洁风格,图片为主
- 移动端友好
[图 5-1] 需求拆解过程示意
图表说明:从左到右的流程:原始想法 → 用户故事 → GRIP框架 → MVP定义 → 最终描述
SVG生成提示词: "A horizontal process diagram showing 5 steps from left to right: 1. 原始想法 - '灵感网站' → 2. 用户故事 - '设计师浏览收集灵感' → 3. GRIP框架 - Goal/Role/Input/Process → 4. MVP定义 - 核心功能列表 → 5. 最终描述 - 结构化需求文档."
第五节:常见错误和解决方法
错误1:一次性描述太多功能
表现:
我想做一个包含社交、电商、内容管理、支付系统的完整平台...
问题:
AI不知道从哪开始,容易产生混乱的结果。
解决:
先定义MVP。比如"先做一个用户注册和登录的版本",其他功能以后再加。
错误2:描述技术实现而不是需求
表现:
我想要你用React、Node.js、PostgreSQL数据库...
问题:
限制了AI的选择,可能导致它放弃了更好的方案。
解决:
描述你想要的功能,让AI决定技术实现。比如"我想要用户可以注册和登录,数据要能持久化保存"。
错误3:没有约束条件
表现:
我想要一个好看的网站。
问题:
"好看"没有标准,AI无法理解你的审美。
解决:
给一些参考。比如"使用蓝色配色,类似Medium的风格:简洁、白底黑字、大标题、留白充足"。
错误4:缺少上下文
表现:
添加一个搜索功能。
问题:
AI不知道要搜索什么、怎么搜索、结果怎么显示。
解决:
添加一个搜索功能,让用户可以通过标题搜索文章,结果按相关度排序,每页显示10条。
第六节:一个练习
现在,轮到你了。
拿出一个你想做的项目,用我们学过的方法拆解它:
-
写用户故事:作为...我想要...为了...
-
GRIP框架:目标、用户、输入、处理
-
MVP定义:哪些功能是最小可行的
-
约束条件:技术、设计、时间
写下来。然后试着把这个描述给AI,看看结果如何。
本章小结
这一章,我们学习了"需求拆解"——这是AI编程的核心底层能力。
我们介绍了两个核心工具:
- 用户故事:澄清谁、做什么、为什么
- GRIP框架:结构化描述目标、用户、输入、处理
我们还用一个完整的案例展示了拆解过程:从"灵感网站"这个模糊想法,到结构化的需求描述。
最后,我们讨论了四个常见错误和解决方法:不要一次性做太多、描述需求而非技术实现、添加约束条件、提供足够的上下文。
在下一章,我们会学习"上下文工程"——如何给AI足够的背景信息,让它更好地理解你。
记住:
AI听不懂模糊的想法。
但如果你能把想法拆解清楚,AI能帮你实现它。