老生新谈:PRD到底怎么写?
做产品经常会写PRD,但是如果没有一套完整的写作思路和框架,写出的PRD质量就不会太好,导致遗漏重要信息,在项目过程中被开发、前端、测试吐槽。趁这个周末有空,来梳理下一下写PRD的逻辑。
一、什么是PRD?
PRD为Product Requirement Document的简称,其中文翻译为:产品需求文档。该文档是产品项目由“概念化”阶段进入到“图纸化”阶段的最主要的一个文档。当然,这个定义针对的是一个全新的产品。广义上来讲,产品需求的描述,应该包含有产品的战略和战术,战略是指:产品定位、目标市场、目标用户、竞争对手等。战术是指产品的结构、核心业务流程、具体用例描述、功能&内容描述等,本文主要讨论的是战术部分。
PRD的主要使用对象有:开发、测试、项目经理、交互设计师、运营及其他业务人员。开发可以根据PRD获知整个产品的逻辑;测试可以根据PRD建用例;项目经理可以根据PRD拆分工作包,并分配开发人员;交互设计师可以通过PRD来设计交互细节。PRD是项目启动之前,必须要通过评审确定的最重要文档。
产品经理的PRD,就像建筑设计师的设计图纸,是整个设计和思考的结晶,同时,也是思考过程呈现。《用户体验要素》作者在书中有一句很经典的话:“文档不能解决问题,但是定义可以”,这也是PRD的另一个重要的作用:定义产品需求,在团队内达成共识。
二、写作的逻辑
写PRD,其实就是一个产品的业务需求分析过程,最近在看一本书,叫《火球UML大战需求分析》,里面提到了需求分析过程,作者的这个需求分析思路是基于传统软件/系统,但是我觉得这种思路是相通的,可以应用于所有产品。我根据这个思路,做了部分改良,形成了以下的逻辑:
整理产品结构 分析核心业务流程 分析及整理用例 分析及整理非功能性需求 整理需求文档并评审整理产品结构
就像修建一座商场,在设计的时候,需要考虑整个商场的结构,商场包含美食区、服装区、百货区、休闲娱乐区等,然后每个区域又可以按商家或类型细分。产品也是这个道理,产品是由功能和内容组成,这些功能和内容,按照某种纬度,组成频道/模块,最终形成产品的整体结构。由于产品的结构一般比较大,这里仅以产品结构中的个人中心这个模块为例:
产品结构一般通过MindManger梳理。需要注意的是,产品结构≠页面结构,产品结构是逻辑上的,页面结构是物理上的,至于具体的结构和方法,可以参看《用户体验要素》一书。
分析核心业务流程
每个产品,都会有几个核心的业务,分析并梳理出几个核心业务流程,可以帮助产品经理了解产品逻辑。笔者做的是B端产品,核心业务流程一般都会涉及到多个角色,而C端产品,核心流程的用户则比较单一。涉及到多个角色的业务流程,可以使用泳道图,单个角色可以使用普通的活动图。另外,在分析业务流程的时候,还可以配合使用状态图和顺序图,具体使用什么工具,视情况而定,重点是梳理清楚逻辑。
分析及整理用例
这个步骤是更具体,也很重要的的一步,前面2个步骤确定了范围和流程,这一步针对流程上的某个节点来具体描述。以会员中心→内容管理这个模块为例,这个模块狼蚁网站SEO优化包含的用例有:
新增文章 修改文章 删除文章 查看文章列表 查看文章详情现在,就可以按照上面这个列表,来一一的描述用例。一个完整的用例应该包含以下主要内容:
在描述需求时,有2种方式,一种是用例描述,另外一种是功能点描述。用例描述和功能点描述最大的区别在于,描述的角度不一样,用例是从人和系统的旁观者来描述,而功能点是从产品的角度来描述。通过用例描述需求,最好用文档,并且有统一的用例模板,而功能描述只需要在Axure里,以注释的方式描述即可。 在描述需求时,有2种方式,一种是用例描述,另外一种是功能点描述。用例描述和功能点描述最大的区别在于,描述的角度不一样,用例是从人和系统的旁观者来描述,而功能点是从产品的角度来描述。通过用例描述需求,最好用文档,并且有统一的用例模板,而功能描述只需要在Axure里,以注释的方式描述即可。其实,关于需求怎么描述,没有完全正确的方式,只有最合适的方式,具体因人而异。《启示录》一书作者就建议描述产品需求只需要高保真原型+注释就可以,完全不需要文档,以下是书中的一些观点:
产品说明(需求)文档的主体应该是高保真原型,由它体现产品的功能需求、信息架构、用户体验、交互设计、视觉设计。高保证原型最大的优势是可以用于测试。
与其花几个星期撰写冗长的Word文档,既没人读,也无法测试,还不如和设计师一起创建原型。
详细内容可以参看这本书的第十八章,「重新定义产品说明文档」一节。
不管是用例描述还是功能描述,规则都是最重要的一部分,这里主要讲一下如何描述能完整无误的阐述需求并让阅读者看懂。规则的描述,主要是从3方面思考。
数据规则。主要指页面从数据库调取数据并展现的规则,比如查看文章列表这个用例,需要描述文章列表页面展示哪些字段、每个字段的类型及长度、列表的排序规则刷新频率等。 状态逻辑。文章不同状态之间切换的触发点是什么,比如状态为已发布的文章,要变为下架,可能的触发条件有:发布时间已过期、手动操作下架等。 交互规则。界面上存在交互的元素,一一列举并说明,比如链接、按钮、滑动、下拉的具体交互规则及异常处理。另外,整个场景由于网络问题、系统问题导致的异常也需要说明。分析及整理非功能性需求
非功能需求涉及比较广,比如产品的性能需求,访问速度达到多少、最大能支持多少人同时访问;比如设计需求,产品要设计成小清新风格还是成熟稳重的风格等;还比如统计需求,产品要统计哪些字段,形成哪些报表等。这个可以根据具体的需求来描述。
整理需求文档并评审