今天不讨论格式(因公司而宜),只讨论思路和需要注意的地方。思路和注意的地方清楚了,才能一气呵成,写出清晰易懂、简介的需求文档,俗称PRD。
撰写思路
1、明确需求文档的目的
给领导看,留档(工作记录),供开发在开发时参考(这才是重点)
2、文档至少包括哪些内容
时间、版本、编辑人 + 需求列表(目录)+ 每个需求说明
3、文档每部分如何撰写(这部分我说详细一点)
(1)描述界面长什么样
界面从上到下包含什么元素,(一些隐藏的也要描述,比如下拉菜单)哪些元素需要弱化,哪些元素需要突出,有/无数据时怎么样;
(2)用户在这个界面怎么进行操作
用户在这个界面是单纯浏览,还是编辑,操作的主流程,还有分支流程(比如登陆注册页面还有忘记密码,第三方登陆等分支流程);
(3)描述可交互的地方如何交互
手指触控时/点击后控件的样式变化,对其他控件的影响,弹窗显示还是toast提示等,弹窗在页面的哪个位置(顶部、中间、底部),会不会2s后自动消失,还有包括网络异常时的交互;
(4)相关逻辑关系讲述清楚
比如列表怎么排序,用户的操作对页面布局如何影响,数据的+1/-1,可以多次操作吗,不同状态下各是什么样的操作,页面跳转逻辑等;
(5)页面相关业务规则描述
这个主要考虑一个操作对其他操作、控件、页面、数据等的影响。比如删除数据不止对当前页面,对其他所有页面的影响都要描述出来。
撰写注意点
1、筛选和排序不一样:筛选是列表部分符合显示,排序是列表全部显示;
2、默认状态是什么:默认(任何操作之前)状态是什么样子;
3、多个状态:要考虑清楚总共有多少状态,状态是如何切换的;
4、数据的显示要考虑:无数据、部分数据、数据很多、数据异常等情况时的显示样式;
5、要考虑页面在不同网速的状态:网速流畅、网速缓慢、无网络,4G、3G、2G、WiFi;
6、注意对用户的输入做限定;
7、不要期望用户一步步按你的流程走,多考虑其他情况;
8、要注意不同情况下给用户不同的提示和引导(提示语、提示方式的设计说明)
9、不同的用户的权限(可进行的操作,可看到的内容)有何不同;
10、如何对不同的东西进行区分(按钮可点击与不可点击状态,不同级别用户徽章,之类的);
11、一些操作要注意有没有前提条件;
12、注意多设备的兼容性与差异;
13、注意多系统的兼容性与差异;
14、注意账号在不同设备之间的情况,是否互踢,在这台机器登陆能否在另外一台机器看到之前的一些数据(数据是否在服务端);
15、功能涉及多个端时(公司业务较多,wap,web,微信,app等)要表述清楚;
16、在写流程的时候,要注意一条线写到底,不要漏,每个节点有什么要注意的(比如聊天界面,图片的话支不支持查看大图,可以保存多久,消息是否可以撤回删除等,要注意有没有禁言机制等);
17、关于网络异常时的连接(两个端,用户端和另外一个端)情况,比如断线多少秒之内重连可以继续连接成功,超过10s则连接失败,等等。心跳包啊,这些概念,我自己都不太懂,哈哈;
18、再说一点很重要的,切换思维,忘掉自己是一名产品经理/助理的身份,不要说看起来就这么简单呀,还需要怎么说明吗。其实不然,在开发看来可能蹦出许多让你意外的误解。所以,多多去理解开发的思维,不断记录总结从而纠正,用清晰质朴、近乎‘白痴’的语言去描述,那么, 你就成功了。