作为产品经理,我们在设计每个功能流程的时候,最难考虑的应该就是各种功能的细节应该如何打造了。碰到这个时候,往往就会想,如果我是处女座,那该多好啊。
细节处理不好,经常会被程序猿吐槽,这个功能考虑不周、那个功能的判断条件没有写清楚、这个数据没有做限制等等,对于刚入行的同学,弱小的心灵怕是难以承受这样的打击。
如何避免被反复吐槽,做出一个令技术找不到嘈点的功能,来,让燧人分享一下经验。
第一步:定义这个功能的正常流程
一般在设计功能流程的时候,我们会先设定这个功能的流程应该如何行走。在这个阶段,我建议大家先放下所有分支流程及异常流程,只设计最简单,最正常的流程行进。
举个栗子,假设设计一个手机号码的注册功能时,用户的人机交互正常流程应该按照如下的方式行进。
这里可看到,用户可操作4个子功能、分别是输入手机号码、点击获取验证码、输入验证码、确定注册。当然,按照产品的需求,可以提供更多的输入项目让用户输入,这里需要结合自身产品去考虑。
这样就有了一个基本流程,这个流程只能作为一条主线,并不能直接交付开发。
第二步:模拟用户场景,检验流程是否满足
所谓模拟用户场景,则需要考虑三个场景
1、用户在什么时候会使用这个功能;(如何开始)
2、用户在使用这个功能的时候希望能提供给他们什么;(如何行进)
3、用户在结束这个功能的时候希望是怎样的。(如何结束)
那还是按照刚才的功能流程,先考虑如何开始:
实际上,我们需要考虑的是,这个功能的入口是否合理(有些同学可能将功能设计得很好,但忘记了入口在哪里)
其次,我们再考虑这个功能在用户进行的时候,是否可满足用户的需求。
在这里,我将输入验证码修改成自动读取验证码并输入,这个可以方便用户不用来回切换程序来进行输入。当然还会有其他令用户体验更好的功能,这里面不细说。
主要的原理是行进中的流程,应该将自己代入到用户当中,去感受这个功能是否让用户感到舒适,或者为了用户的体验,应该增加哪些功能。
最后,我们再考虑如何结束:
在流程的完结,应该考虑功能最终体现给用户是什么效果,这里以注册来做例子,则是返回到进入前的页面。而其他功能,请脑补会出现什么结果。
至此,我们进入到流程考虑的第三步。
第三步:极端的模拟
为了确保,我们对于功能考虑的完善,那需要对刚才所制作好的流程图,每一个环节去考虑分支及异常事项。这里面我惯用的方法,则是通过代入极端数值去验证流程是否具备对异常情况的应对方案。而对于无数值输入的功能,则按照是/否的形式去思考。
示例1:(是非判断)
第一个环节:打开页面A提示进入到注册功能(不需用户进行任何数值输入,我们用是、否的方式考虑)
考虑的问题:
是
什么场景下,打开页面A会提示并进入注册功能?
否
什么场景下,打开页面A不会提示并进入注册功能?
通过这个方法,引入用户是否已登录的判断。
示例2:(当涉及到数值输入我们需要引入极端数值)
在输入手机号码的环节涉及到数据的交互,这个时候我们可以采取是否判断+极端数值的办法去考虑异常流程。
是:
如果用户输入的是手机号,怎么办
否
如果用户输入的不是手机号,怎么办
最大数值:
在输入无限多的手机号数时,怎么办?
最小数值:
在不输入手机号码或只输入1个数字的时候,怎么办?
通过这四个问题,就可以归纳出,应该对流程做出如下限制:
1、用户应在此输入框中,只能输入数字
2、用户应在此输入框中,必须输入11位的数字
而上文所说的第二步及第三步,是一个反复思考的步骤。
我所建议的是,当第三步修改完毕,返回第二步重新考虑,然后再一次进行第三步的修改。直至发现功能流程已达到改无可改的时候。
各位,我所举例的注册流程只是作为例子,仍然有很多地方需要完善,如果各位感兴趣的话,不妨按照我说说的方法,用喔这个例子,去检验最终出来的流程,是不是会令你感到完美?
----燧人,某电商高级产品经理,5年从业经验。