前言
工作年限久了,接触的产品经理比较多,然后也参与过很不少产品评审会,在产品评审或者实际体验他们设计的产品,就会发现存在很多问题。而且,同一个人往往会反复出现类似的问题。实际上,这种问题产生的根本原因是他们并没有意识到这是错误的。本篇,我们就来总结产品经理在日常产品设计中经常犯的7个错误,帮助大家在平时的产品设计中避坑。
1. 列表筛选项与表头不对应
这是很多产品设计会犯的错,列表的筛选项与表头不一致的缺点在于用户筛选操作之后没法得到筛选结果是否符合筛选条件的反馈。举个例子,订单列表筛选项有个状态筛选,包括待支付、待发货、已发货、已收货、已完成等状态。然而,如果列表没有状态这一列,那么用户进行完状态筛选后无法通过列表确定订单的状态是不是和筛选的状态一致。结果,用户只能点击订单详情去核实,增加了不必要的操作。
对于筛选项,建议是筛选项对应的字段要在列表表头出现,以便于用户得到对应的筛选结果反馈。
2. 没有考虑列表为空的处理
这种情况一般来说都会有一个缺省的空白页,然而还是有不少的产品经理不会在文档说明,而团队内部也没有相应的约定。结果就出现了下面这种情况,给用户的感受就是这到底是网络慢还是没数据?
另外一种列表是用户个人相关的数据(如收货地址列表),这种情况只给出缺省的空白页是不够的,应当主动引导,下面给出的交互形式就做得比较好。
对于列表为空,要给出明确的无数据指示。同时,对于需要用户主动添加才有的数据,应当给出明确的引导。此外,对于网络错误、无权限、找不到对应资源、系统错误等情况也应该提供用户体验友好的缺省页面。
3. 表单没有相应占位文字
这是典型的偷懒式产品设计,所有的输入框占位文字都是“请输入”,所有的选择类表单占位文字都是“请选择”……这种设计对于有密集恐惧症的用户来说太不友好了!
通常来说,占位文字的作用是引导用户正确填写表单,比如解释字段的意思,给出示例或填写规则。
当然,也不是所有的字段都一定需要占位文字,比如姓名、手机号这些用户已经非常熟悉的字段不提供占位文字不会影响体验。对于那些比较难理解的字段,建议是给出示例,而对于有特殊规则的字段也要给出说明,避免用户填写错误。下面是某WMS系统的库位编码替换的表单,占位文字就给出了“替换内容若为空,则会直接删除编码字符”的提示,从而让用户知道不填写替换内容的操作结果。
4. 表单不明确校验规则
这个也是很常见的一个错误,产品经理想当然地认为技术会处理这种表单填写规则,结果是技术也不管这些细节。导致的问题就是系统出现各种各样因为填写的表单不正确导致的错误,列举一下常见的由于缺乏表单校验导致的问题:
- 文本类没有明确字段长度范围,导致输入的文字过长,界面错乱或是由于数据库长度限制导致报错。
- 数值类没有明确正负数,数值范围或者小数位数,结果导致程序出现各种数据统计问题。
- 文件没有明确大小限制,结果用户上传很大的文件占据服务器存储资源。
- 图片没有约定比例或尺寸,导致用户界面看起来图片变形,影响美观。
- 手机号、证件号码、邮箱没有校验对应规则,导致录入的数据错误。
- 唯一性数据没有明确限制,导致系统查询时出现多条数据的bug。
- 表单校验规则确实比较繁琐,建议对于常用的表单与技术约定好默认的校验规则,对于有特殊规则的表单再单独在原型或文档中标注。
5. 表单不考虑亲密性原则
亲密性原则
进行信息分组,将相关性强、同属性、同本质的内容放在一起。在设计中,联动的元素、字段,相关性高的信息,按就近原则布局,可有效避免用户视线的跳跃,避免用户错过或忽略关键信息。
曾经见过有产品经理在设计表单的时候,两个联动的字段中间隔了3个其他字段。用户选择第一个字段根本不知道会影响到另外一个字段,等到发现下面的字段不对时,又要返回到上面的字段进行修改,这种操作体验是非常糟糕的。
实际在表单排布时,我们需要遵循亲密性原则,一个是将关联的表单邻近放置,另一个则是表单较多的时候进行合理的分组。
6. 错误文案由开发自由发挥
这也是很多产品经理会犯的错误,曾经在不少产品中见过出现类似“An error occurred”的英文报错信息,实际上这是程序运行异常的报错信息。这种信息直接抛给用户体验是非常糟糕的,用户根本无法知道哪里出现了错误。由于产品经理没有明确错误提示文案,开发人员则根据自己的理解自行设定错误提示,会出现很多对用户不友好的错误提示。对于错误的处理,建议分成下面三类处理:
用户操作错误:用户操作错误是指用户自己的原因导致的错误,这种需要明确给出具体操作的错误原因和指引,例如对于表单填写错误,需要在表单下方给出错误的原因,如“最多只能输入10个字”。
业务错误:业务错误是指由于业务约束导致无法进行当前的操作,例如用户删除一条数据失败,但该条数据被其他数据关联导致无法删除,那么应该给出“该数据被用于xxx,无法删除。如需删除,请先进行xx操作”。
系统错误:系统错误是指系统程序运行异常导致的错误,这种错误建议是做统一处理,并且告知这不是用户的错误,比如“很抱歉!貌似我们的服务出现了问题!”同时为了方便收集错误信息,建议对于系统错误要求开发人员搭建错误日志跟踪和报警系统。我们的产品就在发生系统错误时会自动将错误信息推送到相关的钉钉群,开发人员看到相应的消息后可以直接根据消息中的错误日志id排查错误,第一时间解决问题。
7. 违反一致性原则
一致性原则
要求在相同或熟悉的功能和场景中,在一个(或一个品类)产品中使用一致的性能、操作和感觉。一致性的目的是降低用户的学习成本、用户的认知成本和误用的概率。
产品设计是否保持一致很容易反映出一个产品经理做事情的严谨性。有不少产品经理设计产品很随意,抱着“能用就行”的态度做设计,结果就会出现整个产品的一致性非常差。比如,列表的添加按钮一会在页面的右上角,一会在页面的左上角,搞得用户使用不同的页面像是在玩“躲猫猫”游戏一般,学习成本非常高。再比如移动端,有些页面使用长按删除,有的使用向左滑动删除,还有的需要点击“...”在弹层中点击删除……同一个产品,多种交互形式也会让用户困惑。
建议产品经理要严格要求自己,在绘制原型的时候保持一致性,同时在复核设计稿和前端页面时也需要注意一致性。更好的方式是内部建议一套原型和设计规范,统一界面布局、组件的样式和交互形式,确保交付给用户的产品体验的一致性。
总结
相信很多产品经理都有犯过本篇提到的7个错误中的一两个,犯错不要紧,重要的是如何避免重复犯错。个人的建议是平时多关注一些优秀产品的设计原则、设计规范。这方面,像腾讯、京东、阿里的UE/UX团队都会有相应的文章输出。此外,平时在产品设计过程中可以给自己列一份CheckList,避免自己犯类似的错误。最后就是保持写产品需求文档的习惯。写文档本身就是复核自己产品设计的过程,像我自己在写产品需求文档的过程中经常会发现之前产品设计没有考虑的点。