俗语有云:人人都是产品经理,身为开发人员,要开发一款卓越的产品,还必须得从产品经理的角度去思考、设计以及看待遇到的各类问题。
产品需求文档是将商业需求文档(BRD)和市场需求文档(MRD)用更加专业的语言进行描述。
一、什么是产品需求文档
该文档是产品项目由“概念化”阶段进入到“图纸化”阶段的最主要的一个文档。当然,这个定义针对的是一个全新的产品。广义上来讲,产品需求的描述,应该包含有产品的战略和战术,战略是指:产品定位、目标市场、目标用户、竞争对手等。战术是指产品的结构、核心业务流程、具体用例描述、功能&内容描述等。
PRD的主要使用对象有:开发、测试、项目经理、交互设计师、运营及其他业务人员。开发可以根据PRD获知整个产品的逻辑;测试可以根据PRD建用例;项目经理可以根据PRD拆分工作包,并分配开发人员;交互设计师可以通过PRD来设计交互细节。PRD是项目启动之前,必须要通过评审确定的最重要文档。
二、产品需求文档的要素
1、文档的命名和编号
文档的编号和命名很关键,每个产品都是经过若干个迭代才完成的,而每个迭代所完成的产品功能或者升级的需求都可能是不一样的,因此需要定义清楚该文件属于产品的哪个迭代,修改了几个版本。文件命名的方法一般是通过版本号定义,比如简单的方法是,XX产品V1.0PRD_V2,前面的V1.0是产品迭代的编号,后面的V2 PRD的版本号。稍微详细点可以定义成,XX产品XXXX需求PRD_V2,即对本次迭代的需求任务做命名,这样更便于阅读和记忆。
2、文档的版本历史
包括,编号、文档版本、章节、修改原因、日期、修改人。编号只是为了记录修改的顺序,文档版本显示的当前修改的内容属于文档的第几个版本(或第几次修改,一次修改一般为一个版本),章节是具体到修改内容属于的功能模块,以便阅读人及时找到修改后的内容,修改原因说明为什么要修改该需求,让阅读者直观的了解原因。日期是指需求文档修改的时间,修改人是指需求内容的修改者。
3、目录
不需要自己新建,文档完成后直接更新模版中的目录即可。目录是用来了解文档结构的。
4、引言
这部分的内容有:产品概述及目标、产品roadmap、预期读者、成功的定义标准和判断、参考资料、名词说明。
-
产品概述:解释说明该产品研发的背景以及核心功能。
-
产品roadmap:为产品规划的蓝图,每个关键阶段完成的核心任务。产品研发是个不断迭代的过程,需要经过若干个版本的迭代,,对一个功能点做了N个迭代后最终又回归到了第一个迭代是很常见。产品经理需要做好心理准备。产品roadmap并不需要全部规划好所有的阶段目标,但是对产品未来发展趋势的一种预估,要达到目标,需要更多的更新和迭代。清晰的呈现产品的roadmap可以帮助产品经理把握产品的全貌,更好的控制研发过程。
-
预期读者:文档的使用对象
-
成功的定义和判断标准:旨在说明产品的目标
-
参考资料:PRD的参考资料
-
名词说明:名称、说明。名称就是对文档中会出现的比较新的名称,说明则是对这些名称进行解释。
5、需求概述
需求概述通常包括需求概览、用户类与特征、运行环境、设计和实现上的限制、项目计划、产品风险等等。
-
需求概览:分两部分,一是业务流程图,对产品整个业务流程的发生过程做图形化的展示,是对产品整体功能流程的阐释。二是需求清单,对本次要开发的需求任务做分类,给出简明扼要的需求描述并标注优先级。
-
用户类与特征:产品的最终用户,确定产品的最终使用者,并对使用者的角色和操作行为做出说明。
-
运行环境:该产品上线后的使用环境,比如支持的浏览器及其版本,操作系统、数据库的要求等等,测试人员在看到环境要求后会在测试时重点测试,而最终上线产品时需要把最佳的运营环境告知给用户。设计和实现上的限制:比如控件的开发环境、接口的调用方式等等。
-
项目计划:对于prd中要开发的内容,给出关键里程碑,比如需求评审通过的时间、开发的完成时间、上线时间等等。
-
产品风险:描述产品可能存在的风险,比如性能瓶颈,没有解决的问题,用户不当使用的风险等等。
6、功能需求
功能需求一般是由功能详情和主流程说明两大部分。功能详情是所有的产品功能的描述和规划。功能详情包括以下内容:
-
简要说明:介绍此功能的用途,包括其来源或背景,能够解决哪些问题。
-
场景描述,产品在哪种情况下会被用户使用,就是用户场景模拟。这也是产品经理讲“好”故事的必备条件。
-
业务规则:每上产品在开发时都有相应的业务规则,将这些规则清晰的描述出来,让开发、测试人员能够直观的明白该规则,且没有产生歧义。业务规则必需是完整的、准确的、易懂的。业务规则的描述上如果涉及到页面交互或者页面的修改,建议给出页面的草图或者页面截图在图上说明要修改的内容。另外也建议对页面的输入框、下拉框的内容格式、长度、控件之间的关联性做出说明,什么时候可见,不可见,灰掉或点亮的条件在文档中都给出说明。方便阅读者理解业务规则。
-
界面原型:如前所述,涉及到页面交互的部分,产品经理需要设计页面原型。原型设计通常需要产品经理和UI设计师一起来完成。建议的做法是,产品经理可设计一个页面框架,将该页面要呈现的字段及其特征以及页面要使用的场景向交互设计师解释清楚。之后交互和视觉设计师完成产品的原型设计。
-
使用者说明:对产品使用者做出说明,可融入简要说明中。
-
前置条件:该需求实现依赖的前提条件。比如,上传照片时,需要存有图像文件。
-
后置条件:操作后引发的后续处理。
-
主流程:把主流放在最后是有道理的,结合上面所说的,做出主流程说明,对每个功能流程走向分点说明(这是非常重要的)。
看过很多的PRD,文档中对既没有前提条件,也没有后置条件,只对主流程做了说明,但是在描述主流程时却没有描写主流程中每个功能流程的各种走向,只有一个主走向,让人感觉prd成了操作手册。事实上,对分支的介绍是非常重要的,开发和测试中提出的各类问题均与对分支的定义不明有关。一个合格的PRD不仅要描述主流程,同时对分支流程所出现的各类问题都要做详细阐述并给出解决办法。PRD的特征一定是明确的、全面的阐述需求及各类异常情况的处理而不是等到开发和测试阶段发现问题后再给以答案(虽然PRD不可能百分之百的覆盖所有的可能,但是最大化的思考所有的业务问题是编制PRD时必须遵守的原则)。另外,在描写功能需求时给出的办法中不能出现“可能”、“或者”等词,一定是明确的,准确的描述。如果有别的方案,建议写入“可选方案”,在产品构建的早期可选方案可以为功能实现提供更多的选择,当方案确定后可在文档中注明本次使用了哪种方案。
推荐一个方法:“用例”,在面向对象的软件设计模型中,用例是一个被阐述的内容,用例是对功能使用场景的解释。用例很条理的介绍了每个功能的前置、后置条件,主流程介绍,帮助开发、测试等角色快速的了解产品功能。
7、效益成本分析
通过这一点上能看出产品经理必须是个全才,不仅要具备行业知识,还需要有财务知识。一个产品的成本衡量一般包括三个方面:效益预测、产品技术成本和其他成本支出。
效益预测是指所提供的功能在未来能产生的效益,可通过对比以往的产品或者竞争对手的产品来做预估,效益预测的指标,如每个功能点的潜在用户数、使用频率,吸引到的新的用户特征及数量。产品技术成本是指研发设计以及上线后的运营需要的资源需求,包括人力,软硬件(带宽、服务器、机房)支出。当有项目经理时可以由项目经理来协调这部分需求,如果没有项目经理,产品经理得挑头了,召集开发经理去找运维等部门落实此事。其他的成本还包括支持成本,比如上线后的运营资源投入、市场推广投入以及客服服务投入等。
此处建议产品经理们都去学习一门课《非财务人员的财务管理》体验下财务的过程管理,如果能亲历沙盘训练,记录财务明细账目,核算资产负债、现金流量、利润率的计算,对成本和利益的核算非常有帮助,而且财务上要求的一丝不苟、精益求精也是每个产品经理需要长期坚持和遵守的。
8、整合需求
产品整合能力是产品经理很重要的一个能力,业务合作通常是不可避免的,将隶属于两个不同来源的业务功能做整合也是常见需求,比如系统登陆使用公司的域用户登陆,或者付款使用财付通、支付宝付款,解决好整合需求也是体现产品经理核心竞争力的一大重要表现。
9、BETA测试需求
很多产品在正式上线前都有BETA版本或者内测版本,或者叫灰度版本,目的是在测试产品的一些核心功能或者性能。这部分内容不是必须的,但如果需要,需要给出在此阶段要实现的目标或测试、衡量标准。
10、非功能性需求
一般情况下非功能性需求包括以下几个部分:产品营销需求、运营需求、财务需求、法务需求、使用帮助、问题反馈等。这些信息构成了产品上线的完整内容,也很好的体现了产品经理的综合素质。
11、运营计划
产品上线后如何运营,目标受众是什么,建议的推广策略、问题反馈途径、风险监控、亮点宣传等等,以及与运营人员的协作方式。作为产品的设计人员不是开发完产品就能画句号的,让产品用起来、用得好,有口碑更为重要,所以非常建议运营计划的制定上有产品设计人员的参与。
再次,说下需求变更,需求不是一成不变的,在产品研发过程中需求变更是正常的,产品团队成员需正确的看待需求变更,并要控制好变更。这里的建议是在做需求分析时,尽可能把每个问题都考虑透彻,提前做好需求变更的预估及应对方案,必要的情况下和团队成员提前沟通存在变更的内容。
在与团队沟通变更时,需要以一种开放的心态,从团队成员的角度、产品未来的发展趋势、市场格局的变化正确的提出变更需求,始终保持产品方向的正确和团队成员目标的一致。
三、产品需求文档的相关内容
1、文档意义
该文档在产品项目中是一个“承上启下”的作用,“向上”是对MRD内容的继承和发展,“向下”是要把MRD中的内容技术化,向研发部门说明产品的功能和性能指标。
1、文档撰写
在该文档中,基点依然是MRD中的内容,只是把重心放在了“产品需求”上,而产品需求本身是在MRD中有所体现的,区别就是在于,PRD要把MRD中的“产品需求”的内容独立出来加以详细的说明。
这部分是PD写得最多的内容,也就是传统意义上的需求分析,我们这里主要指UC(use case)文档。主要内容有,功能使用的具体描述(每个UC一般有用例简述、行为者、前置条件、后置条件、UI描述、流程/子流程/分支流程,等几大块),Visio做的功能点业务流程,界面的说明,demo等。Demo方面,可能用dreamweaver、ps甚至画图板简单画一下,有时候也会有UI/UE支持,出高保真的demo,开发将来可以直接用的那种。
2、文档核心
该文档中,侧重的是对产品产品功能和性能(即“产品需求”)的说明,相对于MRD中的同样内容,要更加详细,并进行量化。在一些国外的公司,是允许把MRD和PRD合并成一个文档的,通常叫做“Marketing & Product Requirements Document”。
四、产品需求文档的写作方法
1、写前准备
在写PRD文档之前,我们需要先罗列出产品功能的信息内容,这一步是将想法逐渐清晰的第一步,也是帮助我们接下来规划功能的辅助信息,同时也可以辅助服务端技术人员创建数据库。因为这是第一步,所以我们不需要罗列的很详细,在之后的步骤里,我们会逐步改进和完善信息内容。
例如一篇文章的信息内容主要有:文章标题、文章正文、文章作者、发布时间、所属分类。初始的功能需求只有这些信息内容,但是在之后的功能规划中逐渐更加细致的考虑时,可能会增加或者删减,因此第一步我们不用刻意的追求信息的全面。
罗列信息内容的方式有很多种,文本形式、思维导图形式等等都可以,最主要的是能够清晰易懂,我最常用的方法就是思维导图,因此我称这一步为信息结构图。
2、梳理需求
当我们对产品的信息结构了解后,我们就需要规整脑海中的产品需求,让想法更加结构化,因此这一步是梳理产品的需求。我们首先要罗列出产品的频道及页面(产品结构图),其次再基于产品结构图梳理出频道及页面中的功能,并延伸构建出用户的操作流程(用户流程图)。
以上两步是为了让我们在撰写产品需求文档之前能够对产品有一个全面的了解,类似鸟瞰式的一目了然,也方便调整完善。
3、原型设计
当我们逐渐清晰了产品的需求后,并梳理了产品的各个频道及页面,那么这一步就要开始验证这些想法的具体界面表现和方案的可行性了。
首先我建议通过手绘的形式快速在草纸上绘制出产品的原型,推演和讨论方案的可行性,当有一定的进展之后,我们再通过软件工具进行更深入的设计。移动产品可以考虑灰模原型,网站产品可以考虑交互原型,对于这两种原型方式,无论是移动产品还是网站产品都可以使用,具体取得于你的个人习惯和团队要求。
对于产品经理来说,原型设计是为了帮助我们细致的考虑方案,并论证方案的可行性,同时也是为了避免产品宣讲时,抽象的语言描述导致听众理解困难和理解偏差。
4、撰写文档
当我们通过以上三个大的步骤之后,我们就已经非常清晰产品的需求了,一般情况下,通过原型加描述的方式就已经完成了PRD文档的目的(很多产品经理直接使用Axure制作PRD)。
当然也会有一些个人或团队的要求不一样,对PRD文档有特定的规范标准,这类情况可能是需要存档归类。无论什么样的规范标准,PRD文档的目的都是相近的,因此功能描述的方式也是相似的,所以在这里我分享了三种撰写PRD文档的方式。
5、用例文档
《产品需求文档(PRD)的写作方法》的补充文章,主要讲解PRD文档中的重要辅助文档“用例文档”。
注:该方法为互联网产品经理唐杰所作