首页
开发服务
APP开发
微信开发
网站开发
小程序开发
3D开发
蛋壳观点
解决方案
剧本杀门店系统
蛋壳案例
关于我们
如何写需求文档--基础篇
2021/08/25

书写需求文档是产品经理的必修课,可以说需求文档贯穿了我们的工作,从接手项目到原型设计、项目开发、测试验收都必不可少。

一、为什么需要写需求文档

第一,对于开发,需求文档就是产品经理和开发沟通的工具,一份清晰的需求文档不仅能和开发说明“项目要干什么”,“要实现什么功能”,而且也能交代清楚“交互和跳转的逻辑是什么”、“每种情况下的处理逻辑是什么”,可以减少开发期间沟通成本,提成开发完整度。大多数情况下我们都会在测试阶段拖延很长时间,并不可避免地补充了亿点细节。因为大多数开发经常只会以你提供需求文档为准,需求文档以外的不在他们的工作范围,如果你的文档描述的越细,后期测试阶段可以花更少的时间来弥补开发漏掉的需要处理的细节。

第二,对于测试,需求文档是他们工作推进的标准。一个项目能不能顺利验收其实测试也起到很多作用。而一份完整的需求文档可以保证让测试可以按照项目按照你所设想的方向收尾,减少后期产品验收的工作量。

第三,对于产品经理,首先,验收开发交付的产品时,要以需求文档为准。其次,我们每个可能手头上都不止一项目,没有人有过目不忘的记忆。一份详细的需求文档可以方便后期迭代时回溯历史需求,或者项目交接便利后来者的工作,也方便我们对于自己的工作进行复盘。

 

二、如何写需求文档

1、 搭建框架

在写需求文档前,需要先搭建框架,其实我们在拿到业务部的需求时,已经有一个项目的大概框架了。这个时候我们则需要把每个模块尽可能细化到功能点,其实就是先写目录。结合每个功能的操作,把涉及到多个页面或多个系统的状态变化整理出来;同时也可以检查下大框架下的内容是不是有遗漏,有没有遗漏描述某一项功能逻辑。

在这一步我们基本就可以把一级菜单、二级菜单以及功能描述的大点梳理出来。一般我的思路:一级菜单是大的功能模块(比如小程序首页、后台用户管理)->二级菜单具体功能点/列表(比如小程序首页轮播图、后台用户管理用户列表)->功能描述再从面到点细化(比如先说明用户列表展示字段、有哪些操作,在具体描述每个操作的说明)。

2、功能描述

通常完成了目录框架,自己对整个需求就很清晰了。接下来就是挨个补齐具体的需求的功能描述。那么功能描述要怎么写呢,我们经常会很纠结,需求到底要写到多细,常常以为写的很详细了,结果研发还是有很多疑问。除了功能的规则外,还需体现以下几点

1. 输入框

输入框主要用途是输入内容,需要注意:

(1)基本说明

  • 字段类型:文本/数字/时间等
  • 长度限制:11位;超过xx位省略处理
  • 是否必填:是/否
  • 校验规则:为空校验、有效性校验

(2)交互说明

  • 调取键盘类型、选择器的类型等

(3)特殊情况

  • 默认回显用户手机号或者其他的功能要求

2. 按钮

这里的按钮是指可以点击的单个对象:按钮、链接文字、图标等。需要注意:

  • 交互说明:详细列举各状态(未登录时、非会员用户等)下,点击按钮的交互,以及对应的结果(成功、失败、跳转页面等)。
  • 操作提醒:列举各种操作结果对应的toast提示语
  • 通知:操作完成后如果触发短信通知、或者推送消息

3. 文本展示

页面文本展示信息。由于用户身份、状态的改变或者按钮交互,会导致文本改变,有的甚至是样式的改变。需要需注意:

  • 长度规则:字数限制、x行显示多余省略等
  • 状态说明:在不同条件下可以呈现不同的状态
  • 排序规则:按照创建时间降序、优先级排序等

4. 整体回顾

在完成需求文档后,找个时间静下来从头阅读一遍。这一步可以差缺补漏,补充一下细节、排查下逻辑是否严谨。

5. 其它补充

1. 及时将开发过程中与开发讨论的细节、需求的调整、补充记录下。

人无完人,我们没办法可以将每个需求点都考虑的非常细,开发过程总会遇到遗漏的细节或者需要调整方案的地方。讨论过后记得及时更新需求文档,方便同步项目其他成员,也方便后期回溯。

2. 将常用交互规则以及项目特定的名次定义写在全局说明里。

比如列表一页展示多少条数据、时间的格式、一些特殊名次的解释(比如土地工项目中关于月度销售额的解释)等写在全局的说明,方便查阅和管理。

 

3、整理属于自己的模板库。

随着项目的积累,其实有很多功能是重叠的。可以适时整理一些通用的“套路”出来复用即规范了自己的文档,也减少重复工作量。

END