当前位置: 首页 > news >正文

产品需求文档的写作(一) – 写前准备(信息结构图)

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

当我们初次接触产品需求文档时,首先会从网络上寻找产品需求文档模板,希望从中了解和学习具体的写作要求,但实际上,现在网络上绝大部分的PRD文档都是与实际工作不相符的,或者说是复杂的。

前几天一位从事产品类工作的朋友,发来一份他写的产品需求文档目录截图给我(下图),当时我就郁闷了,这些类目更像是MRD文档,而不是PRD文档了,因此我决定写几篇讲述写作PRD文档的文章,分享一些我关于PRD文档的见解和写作方法。

QQ聊天记录

PRD是英文Product Requirement Document的缩写,中文的意思是产品需求文档,具体的名词介绍大家可以询问GooglePRD文档是基于BRDMRD的延续文档,主要用于产品设计和开发使用,因此阅读这份文档的人群绝大多数是设计与技术人员。在这类人群中,设计师更多依赖于原型进行交互或视觉的设计,因此看这份文档的人就会偏向于技术人员。相对于技术人员,他们不太关注产品的商业需求和市场愿景,因为在进行产品讨论立项时,产品的定义就已经向参与设计和研发的人员宣讲过,因此技术人员更多的是关注界面、功能、交互、元素等等内容,因此PRD文档是一份详细的产品功能需求说明文档,是产品文档中最底层和最细致的文档。

PRD文档是一份没有闲话,直入主题的功能说明文档,因此我们在写作时,脑海里构思的是成品产品的界面功能的逻辑线框图。在写作这份文档前,我们需要先做一些准备,把BRD、MRD的相关需求消化并融合规划出产品的结构图。因为这些准备工作是属于思维类的,所以我推荐使用思维导图软件(MindManager)进行规划工作。

规划产品的第一步就是梳理出产品的信息结构,有了信息结构我们才能继续往下规划产品结构,并且信息结构是服务端技术人员创建数据库的依据,是数据结构的辅助文件。对于新产品或者新功能,没有人能够比产品经理更加清楚所需要的信息内容了,因此第一步我们就需要先将这些信息罗列出来,形成结构化。(如下图)

信息结构图

这张图是以我的博客作为示例,在罗列信息结构时,我们更多的是考虑信息数据,因此在这一步,我们还不需要深入的考虑产品的界面与功能。信息结构的考虑有面向前端的,也有面向后端的,具体视产品类型而定。

例如CMS之类的程序,这类程序采用框架式开发,将功能与模板独立,因此前端具有多变性,并且这类产品属于平台型产品。针对这类产品,我们在规划信息结构时,只需要简单的考虑一些前端的功能需求,更多的是面向后端管理员操作进行考虑,从后端入手规划和罗列出所需要的信息内容结构。

无论是什么样的产品类型,无论从哪里入手,我们第一步都是先要罗列信息结构,因为信息结构图不仅是辅助技术人员创建数据库的图表,也是辅助产品人员进行产品功能规划的参考,只有对信息或数据的结构了解,我们才能玩转数据,玩转产品。

在信息结构转数据结构时,如果是针对已经存在的产品而增加的新功能,那么技术人员就需要根据这个信息结构进行数据库对比,已经存在的数据便直接调用,如果不存在,则就需要具体的讨论,确定新信息的使用途径和以后的扩展方向,以便确认是创建数据表还是创建数据字段。(虽然产品经理不需要技术开发,但是如果能够懂技术原理和数据库原理,非常有助于产品规划和技术沟通。)

信息结构图是产品层面的理解,如果要入库这些信息,还需要进行数据结构的讨论。一条信息的存储有很多附加属性,具体是存成字段还是数据表,还是说存在中间表或者关联表,这些都需要在完成PRD文档后和数据库技术人员共同讨论。讨论时除了展示信息结构图,还要讲解产品原型和功能需求,以便数据库技术人员了解产品意图,方便他们做数据库规划时考虑到以后的扩展。

信息结构图是我们将概念想法形成结构化的第一步,也是我们接下来几步工作的辅助文件,同时在接下来的几步工作中,我们还会不断的完善信息的结构。

下一篇我将讲解如何梳理产品需求,并根据信息结构规划出产品结构图和用户流程图。

本文出自 产品经理@唐杰 ,转载时请注明出处及相应链接。

本文永久链接: http://tangjie.me/blog/52.html

转载于:https://my.oschina.net/keepShipping/blog/205066

相关文章:

  • 【Nodejs开发】第1章 述与环境搭建
  • 在管理实际中,心态很重要,当你以欣赏的态度去看一件事,你便会看到许多优点,以批评的态度,你便会看到无数缺点。...
  • linux上未分区硬盘的格式化实践
  • 烂泥:【解决】windows live write报连接到日志时出错
  • 数据库持久连接理解
  • 怎么知道自己系统是32位,还是64位?
  • iOS ARC基本原理
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • 如何从一个XtraBackup完整备份中恢复一个InnoDB表
  • hadoop技术在传统银行业务中的应用
  • Entity Framework 简单查询
  • Metaspace 之二--PermGen vs. Metaspace 运行时比较
  • Codrops 教程:实现内容倾斜的 3D 幻灯片效果
  • Windows之权限的继承性 累加性 优先性 交叉性及四项基本原则
  • 给 Easyui Datagrid 扩展方法
  • CentOS7 安装JDK
  • leetcode98. Validate Binary Search Tree
  • MaxCompute访问TableStore(OTS) 数据
  • Shadow DOM 内部构造及如何构建独立组件
  • tensorflow学习笔记3——MNIST应用篇
  • Yii源码解读-服务定位器(Service Locator)
  • 安卓应用性能调试和优化经验分享
  • 记录:CentOS7.2配置LNMP环境记录
  • 批量截取pdf文件
  • 写给高年级小学生看的《Bash 指南》
  • 学习使用ExpressJS 4.0中的新Router
  • 移动端唤起键盘时取消position:fixed定位
  • 做一名精致的JavaScripter 01:JavaScript简介
  • ​【已解决】npm install​卡主不动的情况
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (三)c52学习之旅-点亮LED灯
  • (十) 初识 Docker file
  • (十八)SpringBoot之发送QQ邮件
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算
  • *2 echo、printf、mkdir命令的应用
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .NET(C#、VB)APP开发——Smobiler平台控件介绍:Bluetooth组件
  • .NET是什么
  • ;号自动换行
  • @基于大模型的旅游路线推荐方案
  • [ vulhub漏洞复现篇 ] AppWeb认证绕过漏洞(CVE-2018-8715)
  • [2019.3.20]BZOJ4573 [Zjoi2016]大森林
  • [AIGC] SQL中的数据添加和操作:数据类型介绍
  • [Android]通过PhoneLookup读取所有电话号码
  • [C\C++]读入优化【技巧】
  • [Firefly-Linux] RK3568修改控制台DEBUG为普通串口UART
  • [IE编程] IE8的SDK 下载
  • [iOS开发]iOS中TabBar中间按钮凸起的实现
  • [JS入门到进阶] 前端开发不能写undefined?这是误区!
  • [mit6.s081] 笔记 Lab2:system calls