PRD到底该怎么写?更全面的文档范例来了

36 评论 122686 浏览 747 收藏 15 分钟

产品经理日常工作不可缺少的一点就是写PRD,想要写好它,需要一套完整的写作思路和框架。

2015年,我写了一篇梳理PRD的文章《PRD到底该怎么写?》,获得3.5万次阅读,423次收藏。至今已过去5年,在这5年里,我一直从事产品产品相关的工作,也经历过一次完整的创业,对PRD又有了一些新的思考。

这篇文章是《PRD怎么写》的升级版,弥补了之前文章的不足,对怎么写PRD,描述得更具体、更全面,是我思考的沉淀,也希望对大家有一定帮助。

01 你是否遇到过这样的问题?

  • PRD里关键需求描述不准确,研发过程中不断修改,导致项目延期;
  • 产品总监、项目经理、研发、测试总是不断挑刺,信誉度降低,自信心受打击;
  • 到新公司负责新项目,前任产品经理留下的文档晦涩难懂,不知所云。

如果遇到以上一个或多个问题,那么你可能需要反思,自己写PRD的思路是不是有问题?写PRD是产品经理非常重要的基本功,写好PRD,可以提高团队效率,减少无效的沟通。

02 什么是PRD?

PRD是Product Requirement Document的简称,其中文翻译为:产品需求文档。该文档是产品项目由“概念化”阶段进入到“图纸化”阶段的最重要的一个文档。

PRD的主要使用对象有:研发、测试、交互设计师及其他业务人员。

  • 研发可以根据PRD获知整个产品的逻辑,作为编码的依据;
  • 测试可以根据PRD编写测试用例,为正式测试做准备;
  • 交互设计师可以根据PRD设计交互细节;
  • 业务人员可以通过PRD提前了解产品,为运营和推广做准备;

PRD是项目启动之前,必须经过评审达成共识的最重要文档。

产品经理的PRD,就像建筑设计师的设计图纸,是设计和思考的文档化呈现。

《用户体验要素》作者在书中有一句很经典的话:“文档不能解决问题,但定义可以”,PRD就是要定义需求。

03 动手之前,先思考这几个问题

1. 解决什么问题?

解决用户什么问题?发现问题比解决方案更重要。给公司能否带来收益?相关干系人的需求是什么?是不是老板说这样做的?是不是“他们”说这样做的?他们是谁?真正的问题是他们说的那样吗?

产品经理正确的设计思路如下:

这叫RTPA设计框架,是一种逆向思维假设分析,我们要使用这样一种思考技巧:假设初始需求都是错误的,即问题并不存在,你需要重新发现问题。

不要需求方一提需求,就开始着手设计,多问几个为什么并着手调查,以了解真正的问题。

下面是一次完整的设计思路示例:

2. 怎么衡量?

不同的干系人,通过什么指标去衡量问题是否已解决?有没有埋点?有没有业务数据?谁来运营?

3. 需要多少资源?

为了实现这个解决方案,需要多少资源、多少人?能大致评估吗?

4. 会不会太复杂?

这个解决方案会不会太复杂?复杂是产品的坟墓。有没有性价比更高的解决方案?会不会影响现有的业务?会不会影响历史数据?

5. 有风险吗?

这个方案会有风险吗?有没有违法?相关政策是什么?尤其是金融、游戏领域,国家监管比较严,有可能上不了应用市场,有可能三方服务商不会提供服务。

6. 有创新吗?

有更创新的解决方案吗?竞品怎么做的,有没有调研3个以上的竞品方案。

7. 用户怎么说?

需求真的是提交人说的那样吗?有亲身体验过场景吗?有跟用户面对面交流吗?熟悉相关领域的基本知识吗?有看不懂的名词吗?

动手写文档或做设计方案之前,一定要问问自己以上几个问题,想清楚了在动手,任何一个问题没想清楚,都不要进行下一步。

04 写PRD的基本步骤

搭框架、定流程、扣细节,这是从一名产品前辈那了解到的产品设计流程,写PRD,也可以按照这个思路。

1. 搭框架

首先遍历出所有用户角色,再针对每个角色,提供相应的系统/功能,然后按照某种维度进行结构划分。这个步骤完成后,就可以输出产品的系统架构图及系统的功能结构图。

产品架构图,出自《电商产品设计全攻略》

更细化的功能结构图

产品由一个个功能组成,功能是逻辑结构,一个完整的功能具备输入、处理、输出三大特性。从大到小的划分是:系统>功能模块>功能,用户+功能组成了用例,用例是PRD文档里描述占比70%以上的内容,所以合理的功能结构,是写好PRD的前提。

2. 定流程

每个产品都有一个核心业务流程,这个核心业务流程涉及多个角色,这个步骤就是把各个角色和功能联系起来。通过核心业务流程,阅读者可以了解产品全貌,对产品有个宏观的认识。

此外,每个系统也有各自的核心业务流程,全业务流程+子系统业务流程,可以概括产品的业务逻辑。

这个步骤输出产品核心业务流程图,子系统核心业务流程图,活动图,状态机图,与外部系统交互可能还有时序图。

3. 扣细节

这一步的核心的画原型和功能设计,通过原型表达产品的界面和交互。功能设计主要是从输入处理输出三个方面去考虑,用户执行输入指令后,系统会进行逻辑处理,然后输出结果。此外,还要考虑功能涉及到哪些数据,表结构怎样设计,这些会涉及大量细节,PRD大部分内容,都是在描述这些细节。

步骤1和步骤2没有严格的顺序,也可以先梳理业务流程,再根据流程中的具体场景梳理出实际功能或系统结构。

05 文档的组成部分

1. 修订记录

记录每次文档更新的时间、作者、修订内容,便于追溯历史变动;

2. 全局说明

包括名词解释、统一异常处理、列表默认数据规则等。

  • 名词解释:每个行业都有专业术语,可以提前将晦涩难懂的术语提前做好解释,便于达成共识,更好沟通;
  • 统一异常处理:网络异常、后台服务异常的交互逻辑;
  • 列表默认数据规则:默认列表的排序方式,默认显示条数,超过多少条翻页,缺省值展现方式;
  • 所有涉及全局的描述,都可以罗列在这里。

3. 项目背景

每个产品,都有一套价值模型。以信贷产品为例,针对用户的价值指标有放款额、审批时长、是否上征信等;针对后台业务人员,有审批时效、通过率、放款率、坏账率等指标;针对老板,有投资回报比、员工成本、净利润等价值指标,每一个需求,应该都是围绕某个价值指标展开。

背景从现状、方案、目标3方面描述。

  1. 现状:描述当前需求方遇到的问题,最好能跟价值模型关联;
  2. 方案:针对这个问题,所提供的解决方案概述;
  3. 目标:期望获得多少价值指标提升;

通过项目背景的描述,可以让项目参与者感受到自己的工作价值。

4. 项目范围

项目范围对应搭框架部分,将功能结构图在此处罗列;

5. 业务流程

业务流程对应定流程部分,将核心业务流程、子系统业务流程在此处罗列;

6. 功能需求

这个部分在PRD中占比最大,搭框架部分,已经将产品功能点全部梳理出来了,这部分就是对功能点进行逐一描述。

功能是从系统的角度来看,我们还要考虑用户角度,所有我们采用用户+功能的方式来描述需求,这就是用例。完整用例名称一定是动宾结构,如添加文章、删除文章、修改文章、查看文章列表。

一个完整的用例包含:

  1. 描述(非必须)
  2. 前置条件
  3. 后置条件
  4. 界面交互
  5. 业务流程
  6. 异常和分支流程
  7. 数据字典(非必须)

1)描述

功能的简要描述。

2)前置条件

要操作此功能,需要具备什么角色、权限或状态。

3)后置条件

执行完这个用例后,关联的数据会有什么变化,页面怎么跳转。

4)界面

每个界面都可以拆分成多个元素,如表单、文本、链接、图片等;

表单的每个元素要描述是否可为空、是否有初始内容、是否默认选中、是否有字数限制等,还有对应的错误提示;

文本要考虑最大显示长度,超过怎么处理;

链接一定要指定点击后跳转到哪个页面;

图片要考虑显示的比例,如果未加载出来该显示什么;

还要考虑界面的内容是写死还是通过后台配置;

界面元素:

5)业务流程

当用户完成输入并提交时,后端应该做什么校验,不同输入该怎么处理,不同结果该返回什么值,最好通过业务流程图+文字来描述,确保逻辑完整。

示例:

文字版:

6)异常和分支流程

异常流程如网络错误、接口返回异常、服务器内部错误等;

以登录为例,分支流程包括找回密码、密码登录等,分支流程非必须,简单的分支流程可以直接通过主流程体现,具体可以视情况按照一定颗粒度进行拆分。

7)数据字典

这个用例涉及哪些数据,可以通过数据字典描述,这一步非必须,最终表结构也不一定就是这样,只是给开发一个参考。有技术背景的产品,也可以做得更细。以注册功能涉及的用户表为例:

产品经理一定要懂基本的数据库知识,程序=数据结构+算法。用户使用产品时,本质上是在和数据进行交互,只是在用户和数据之间,加了一些列算法。

7. 非功能需求

数据需求。常见的就是数据埋点,产品经理需要梳理出埋点事件表,告知开发,让开发在编码过程中进行埋点。

监控需求。需要监控某个接口或某些服务,当出现异常时,可以发送报警信息至相关人员。

性能需求。需要支撑多大的并发,运维人员可以提前准备部署方案。

06 最后

一定要用正确的思路去写PRD,更要想清楚PRD所呈现方案的价值。方向不对,努力白费。记住,找准问题比解决方案更重要。

 

作者:刀哥;公众号:刀哥说。

本文由 @刀哥 原创发布于人人都是产品经理,未经作者许可,禁止转载。

题图来自Unsplash,基于CC0协议。

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 大佬,有没有原型模板啥的可以学习下呀,感激不尽哦!

    来自广东 回复
  2. 和我认知里的PRD不太一样,感觉比较像DRD的写法。产品定位,用户调研,需求分析,竞品分析这些部分不需要写吗?

    来自山东 回复
  3. 一直很苦恼需求文档咋写,老是写的不规范,终于找到了示例

    来自北京 回复
  4. 请问下作者,前置功能和后置功能是什么意思,可以举例说明下吗?

    来自江苏 回复
    1. 我的理解是,前置条件是指你这个功能点,需要其它模块或者功能协助调整的,比如上下游,上游要改造什么,才能衔接上这部分需求;后置条件是指你这个功能点可能对后续其它的业务流程或者功能有什么影响,比如下游的流程。

      来自河北 回复
  5. 刀哥,有没有模板呀,跪求大佬来一份呀,拜托拜托

    回复
  6. 要是有模板就更好了,是不是我要求太高了

    来自四川 回复
  7. 关于文本的限制从产品的角度我们是给前端的限制条件更好些还是给数据库的限制条件更好些呢?

    来自天津 回复
    1. 前端吧,如果从后端进行限制,加大访问速度。

      来自陕西 回复
  8. 如果能提供一个模板就更好了

    来自福建 回复
  9. 又细致又清晰,不仅说了怎么写PRD,还说了在写PRD之前要考虑的事情,打开了思路。
    请教刀哥几个问题:
    1. 您举得例子是用户注册登录的操作,所有的交互只停留在页面内,完整定义了字段规则和异常提示。但是如果涉及到多个页面之间的交互,或者有需要用户操作的弹窗提示。全部放在【规则】这一栏是不是不太好,会显的比较杂乱,导致考虑不全面。
    2. 数据字典这个地方是为了让开发去记录这些数据吗?

    来自北京 回复
    1. 1、页面见的交互可以用剪头+备注说明业没有问题,这样对阅读者更友好;
      2、数据字典是尽可能描述自己能想到的数据字段,供开发参考,不是必须要写的。

      来自四川 回复
  10. 😉 很棒,看了几次都觉得受益匪浅。感谢分享

    来自广东 回复
  11. 曾经苦逼的写接口说明、AC;如今每个公司食物链顶层的人总会对每个人的能力有不同的“正确且严格”的解读。真不知道PM怎么活下来的 😥

    来自广东 回复
  12. 受益匪浅

    来自广东 回复
  13. 怒赞

    回复
  14. 写的非常的好,值得学习借鉴。

    来自北京 回复
  15. 受教,感谢

    来自山东 回复
  16. 评论区大家的需求基本是一种,最好是能展现个真实的案例文档,这样会理解会更直观些

    来自河南 回复
  17. 如果有个案例就完美了 😳

    来自湖北 回复
    1. 刀哥已收到。

      来自四川 回复
  18. 最后评论一个就是,快说,是不是偷偷的把某家公司的PRD模板给解释了一下,然后上传的啊 💡

    来自河南 回复
    1. 刀哥从事产品多年,踩过不少坑,都是经验之谈。

      来自四川 回复
  19. 大赞一个,这篇文章综合了其他许多介绍PRD文档的写法,很多产品总是把PRD一点一点的写成了一个交互文档,而真正存在内涵的是项目背景业务流程、详细的功能需求、非功能需求等等,如果是个pd数量很大的项目那就可能会牵扯到数据字典,最后的最后,就是感觉真的是很好!

    来自河南 回复
  20. 有很大的收获,谢谢!!

    来自美国 回复
  21. 要是能提供一个完整真实的案例就相当不错了

    来自新疆 回复
  22. 受教了

    回复
  23. 受教了

    回复
  24. 受教了

    回复
  25. 只问一句:产品的信息结构图在哪?还是有必要输出吧。

    来自浙江 回复
    1. 每个用例都有数据字典,我理解这就是信息结构,只是没有做信息结构图。

      来自四川 回复
    2. 数据字典已经到了软件研发的概要设计阶段了。
      信息结构图原没有数据字典这么详细(有长度,有类型,主外键。。。),但是产品经理在一开始进行主流程设计,功能解析设计阶段,就应该有一张信息结构图。

      来自浙江 回复
    3. 灰常有道理,有信息结构图,让相关人员能更快速了解整体、全貌,数据字典偏细。

      来自四川 回复
    4. 有经验的研发测试,看到信息结构阶段,差不多就知道如何实现功能了

      来自广东 回复
  26. 说,哪里抄来的。

    回复
    1. 刀哥混迹IT圈多年,关注互金、保险、理财领域,不存在抄一说,有问题欢迎和刀哥讨论。

      来自四川 回复