01 前言
写PRD是产品经理的基本功,但很多时候,我们无法得到系统的指导,全靠野蛮生长,简称野生产品经理。我们的PRD可能会面临很多问题,在开发过程中由于需求描述不明确,不断地进行修改最后导致延期。文档被领导挑出毛病,打击自信心,在同事中信誉度降低等等。
减少无效的沟通,提高工作效率,是一篇清楚的PRD带来的好处。
02 什么是PRD?
(1)PRD是什么
PRD是Product Requirement Document的简称,我们叫它产品需求文档,它的诞生意味着产品从概念化到图纸化的进化。
(2) PRD的对象有哪些?
以开发团队为主的研发、测试、视觉设计师、交互设计师等相关业务人员。
(3)PRD有什么作用?
- 研发根据PRD进行开发逻辑,并进行代码编写
- 测试根据PRD编写测试用例,进行后期的测试
- 视觉与交互设计师根据PRD设计
- 作为记录逻辑的文档,以便时间长了忘记逻辑可以翻看以前的文档
- 确保项目组所有成员对此次迭代内容达成共识的记录
03 写之前需要注意的问题
(1)这个需求在解决什么问题
很多情况是一个需求提过来,产品经理立马着手开始设计,甚至有时候需求方会附带自己的设计方案,有的产品经理也没有经过思考直接就执行了(早些时候我也这么干过,别人指哪打哪)
事实上一个需求最重要的是发现问题,发现问题比立马出解决方案更加重要。因为没有探究问题是什么,可能一开始设计的方向就是错的了。
我们需要考虑以下内容:
- 这个需求解决了谁的问题?这个谁可能是用户,可能是其他需求方如老板、运营、市场
- 问题的本质是什么?是不是如需求方所说?
这里有一种设计技巧可以使用,叫做RTPA设计框架,他的核心就是重新发现问题。我们可以使用以下的步骤:
可以看到,最后才是设计,在设计之前我们重点要搞清楚的是问题所在。
(2)需要多少资源
为实现这个需求,需要多少资源,多少人力,多少时间来完成,需要做一个大致的评估。
(3)是最简单的解决方案吗?
当前的设计是最简单的解决方案吗?实现起来难度怎么样?值不值得去做?
(4)有风险吗?
主要考虑做出来后能不能投入使用,会不会违反法规,或者违反第三方的规则导致不能使用。或者功能会影响别的方面,如线上bug引起的崩溃,或者导致什么数据下降。
(5)设计是否创新
有没有调研过竞品对于这个功能是怎样设计的,对于这个问题是怎么处理的,有没有行业内比较先进的做法。
总之,我们在设计之前需要考虑以上的问题,想清楚了再进行设计,可以少走弯路。
04 编写步骤
做完了设计之前的工作,就可以开始设计了。编写中有三个大的方向:
(1)搭框架
这一步主要定产品的大致框架,包括产品架构、信息架构、功能结构。
首先通过角色将系统划分开,系统中又包含子系统,再将系统中的功能按照模块划分成功能模块,再列出每个模块下的功能就成了。
-
产品框架
-
信息架构
(2)业务流程
分为主业务流程和子业务流程。每个业务中包含业务流程图、状态流转图、时序图。
业务流程图:
状态流转图:
登录时序图:
(3)文档细节
在对功能的描述中,【输入】【处理】【输出】是最关键的步骤,用户在前置条件下进行输入操作后,系统会进行怎样的处理,最后输出什么样的结果。文档主要在描述这些内容,以及一些有辅助作用的数据表,交互细节等。
05 文档组成部分
1. 修订记录
记录每次文档的修改信息,主要有,修改的功能、具体内容、修改的时间、谁修改的等信息,以便在以后查找起来方便。在Axure之类的平台中做文档还可以对每次修改添加一个超链接,快速定位到迭代。
2. 项目背景
从现状、方案、目标3方面描述。
- 现状:描述当前需求方遇到的问题,最好能跟价值模型关联;
- 方案:针对这个问题,所提供的解决方案概述;
- 目标:期望获得多少价值指标提升;
通过项目背景的描述,可以让项目参与者感受到自己的工作价值。
3. 项目范围
列出项目架构图和功能结构图。
4. 全局说明
主要包含需要对全局统一处理的一些描述,如名词解释、异常流程处理、其他默认规则。
名词解释
将一些不常见的,比较晦涩的名词列出并解释,以便大家的理解,与共识。异常流程处理
断网处理、无法预知的异常报错、服务器错误处理其他默认处理
加载方式、列表显示数据量、缺省显示
5. 业务流程
列出核心业务流程与子系统业务流程,一般功能性的业务流程都在功能描述里写。
6. 项目风险
了解有关的法律法规,有与第三方合作的需要了解别人的规则,提前避免风险。
或者功能会影响别的方面,如线上bug引起的崩溃,或者导致什么数据下降。
风险 | 可能性 | 严重性 | 应对策略 | 可应对性 |
---|---|---|---|---|
- | - | - | - | - |
7. 需求优先级&干系人
主要记录相关的需求是谁提的,以便有不清楚的地方可以快速定位到相关人员。
需求内容 | 优先级 | 提出者 | 相关业务部门 | 部门负责人 | 备注 |
---|---|---|---|---|---|
xxx | P0 | xxx | xxx | xxx | xxx |
xxx | P1 | xxx | xxx | xxx | xxx |
8. 功能需求
这块是细节最多的地方,每个功能说明都包含:设计背景(非必须)、功能描述(非必须)、用户场景(非必须)、输入/前置条件、后置条件、界面交互、业务流程、分支流程、异常处理、数据字典(非必须)
设计背景
非必须的元素,我习惯在交代功能之前,描述一下这个功能是怎么来的,是谁提出的,为什么要做,这样执行者看了不会觉得这个功能没有必要,反而还会帮忙思考怎样实现更加简单。功能描述
对这个功能是用来做什么的,进行一个描述用户场景
用户在什么样的情况下进入这个操作输入/前置条件
要操作这个功能,需要有什么条件,如什么角色,什么权限,处于什么状态,需要输入什么后置条件
进行了操作会输出什么,数据会有什么变化,页面会有什么跳转界面
每个界面可以拆解出很多元素,如视频、音频、图片、按钮、文字等等。
表单的每个元素要描述是否可为空、是否有初始内容、是否默认选中、是 否有字数限制等,还有对应的错误提示;
文本:最大显示长度,超过怎么处理;
链接:指定点击后跳转到哪个页面;
图片:显示的比例,缺省和加载失败的显示;
数据:写死还是通过后台配置;
最好使用图片和文字解释结合的方式,确保原型上要表达的和文字记录的符合。
业务流程
业务流程图、子业务流程图(根据合适的颗粒度拆分)与别的状态图之类的展示,也需要流程图和文字解释结合。异常
列出能够预知的异常情况,并有对应的处理方案。如网络错误、提交失败、服务器错误等等。数据字典
这步也是非必须的,列出来也只是给研发一个参考,我们自己也要大概清楚这个功能有哪些字段。
9. 非功能需求
埋点需求
我们需要采集的数据在这个功能里需要在哪里埋点。需要提供一个埋点需求表给研发。包括埋点的元素,触发的条件、采集的维度等。监控需求
监控某些接口,或前端元素,在发生异常时进行预警通知,能让我们提前知道异常并有所准备。性能需求
需要支持多少并发,如果是第三方服务的话需要多少额度。兼容性需求
需要兼容哪些设备,哪些浏览器版本之类的。
06 示例
这里的示例针对上面的第8点功能需求进行举例说明。
(1)功能描述
提供给商户进行账号登录。
(2)前置条件
输入正确的账号和密码进行登录操作
(3)后置条件
登录成功后,根据用户登录的账号与对应的角色进入到相应的首页。
如果选择了记住密码,需要保持登录30天,每一次登录都刷新这个token记录。
(4)界面
界面元素说明
元素 | 规则 |
---|---|
用户账户 | 1. 文本框,必填,点击失焦后校验 2.可以输入特殊字符 3. 最长长度为20个字符 4.错误提示:账号或密码不正确,请重新输入 |
密码 | 1. 密码框,必填 ,点击失焦后校验 2. 可以输入特殊字符 3. 长度为8-16个字符 4. 错误提示:账号或密码不正确,请重新输入 |
记住密码 | 1. 可选,默认不勾选 2. 勾选后,每次登录都保持30天,在保持期间每次登录都勾选 3. 失效后不再勾选恢复默认值 |
登录按钮 | 1. 默认灰色不可点击 2. 上面两个值输入成功后,颜色激活并可以点击 3. 点击后校验账密正确与否 |
(5)业务流程
业务流程步骤说明
步骤 | 用户 | 系统 | 规则 |
---|---|---|---|
1 | 输入账号 | 失焦后校验是否为空,为空高亮提示“账号不可为空” | 1. 文本框,必填 2.可以输入特殊字符 3. 最长长度为20个字符,超出后不可输入 4.错误提示:账号或密码不正确,请重新输入 |
2 | 输入密码 | 失焦后校验是否为空,为空高亮提示“密码不可为空” | 1. 密码框,必填 2. 可以输入特殊字符 3. 长度为8-16个字符 4. 错误提示:账号或密码不正确,请重新输入 |
3 | 勾选记住密码 | 刷新token时效 | 1. 可选,默认不勾选 2. 勾选后,每次登录都保持30天,在保持期间每次登录都勾选 3. 失效后不再勾选恢复默认值 |
4 | 点击登录按钮 | 校验账号密码是否正确,不正确返回“账号或密码不正确,请重新输入” | 1. 默认灰色不可点击 2. 上面两个值输入成功后,颜色激活并可以点击 3. 点击后校验账密正确与否 |
(6)异常流程
异常 | 规则 |
---|---|
服务器错误 | 提示:服务错误,请联系管理员 |
登录超时 | 提示:登录超时,请稍后再试 |
登录过于频繁 | 提示:您操作过于频繁,请30s后再试 |
(7)数据字典
登录数据字典
字段 | 类型 | 长度 | 必填 | 默认值 | 说明 |
---|---|---|---|---|---|
账号 | varchar | 1 - 20 | Y | - | - |
密码 | varchar | 8 - 16 | Y | - | - |
记住密码 | Boolean | - | N | - | - |
创建时间 | datetime | - | Y | - | 如2020-12-21 13:40:40 |
上次登录时间 | datetime | - | Y | - | 如2020-12-22 14:00:00 |
token | varchar | - | Y | - | - |
角色 | varchar | 10 | Y | 1 | 1. 一级商户 2. 二级商户 3. 三级商户 |
07 PRD模板
链接如下,自取哦~
链接: 链接: https://pan.baidu.com/s/1eXxbwwrZSAqEhnj4nBZIcA
提取码: rkxv