在使用产品的过程中,用户总会遇到一些超出预期的情况。网络连不上、权限不够、服务器崩溃——这些看似偶然的问题,其实直接决定了用户会不会继续信任这个产品。对B端产品来说更是如此,效率就是命根子,一次莫名的卡顿就可能耽误业务进度,最后变成“这产品没法用”的全面否定。

我最近收到一个用户反馈:一款查询工具打开后页面一片空白,什么提示都没有。用户第一反应就是系统坏了,结果其实是这个账户没有对应页面的查询权限。这种因为权限配置导致的“假性故障”,正好暴露了产品在异常状态设计上的大问题。用户对着空白页反复刷新却毫无头绪,业务被迫中断却找不到原因——这种挫败感一旦积累起来,很容易就会形成“这产品根本不行”的印象。这不是功能缺失造成的,而是异常处理没做到位导致的用户信任流失。
要解决这个问题,得先搞清楚一个基本问题:什么才算产品意义上的“异常”?

从逻辑上讲,正常状态就是产品运行结果符合既定流程、交互设计和用户预期——用户完成操作后看到的,正是他预料之中的结果。反过来,如果操作结果和预期出现偏差,比如页面一片空白、加载一直卡着没反应、提交后提示无权操作,这些就是异常状态。异常的产生通常来自外部因素的干扰:网络不稳定、服务器过载、用户权限不足、文件大小超限……这些情况可能在任何环节出现。外部因素不可控,产品设计者没办法完全避免,但可以通过预先的场景化设计来应对。
就拿开头提到的权限问题来说。用户因为权限不足导致页面空白时,合理的做法应该是在界面上清楚地告诉用户当前状态——不是系统故障,而是账户权限不够。同时给出解决方案,比如“联系管理员获取授权”或者引导用户返回上一页。而不是让用户在完全不知情的情况下反复刷新,干着急却不知道怎么回事。
基于这个认识,异常状态的设计可以遵循四条核心原则。这些原则来自用户体验设计的通用方法论,但在异常处理这个场景中特别有针对性。

第一条原则是状态可见。用户需要清楚地知道系统现在是什么状态。很多时候,用户根本意识不到系统出现了异常。如果不明确告诉用户,他们会觉得系统还在正常运行,就会一直等下去。等半天没有任何结果,焦虑情绪就来了,反复尝试几次还是不明所以,最后直接走人。所以在界面上呈现系统状态,让用户快速判断当前情况,这是减少用户时间浪费和负面情绪的关键。比如网络太慢导致加载异常,没有状态提示的话,用户只能对着进度条盲目等待,不知道还得等多久,也不敢随便离开。而有状态可见设计的界面会直接告诉用户加载失败了,虽然没解释具体原因,但用户已经知道这是异常状态,可以选择刷新或返回,不用再做无效等待。
第二条原则是可退出。当异常状态用户自己解决不了的时候,强行把他们留在当前页面反复尝试,只会让负面情绪越来越重。对于服务器异常这类用户无能为力的状况,产品应该提供一个明确的退出通道,让用户能快速离开,去处理其他事情。相比之下,那种只通过弹窗告诉用户异常原因,却把他们滞留在原地、什么操作都做不了的设计,会让用户陷入“走也不是,留也不是”的尴尬境地,反而更容易激化情绪。用对话框的形式清楚地告诉用户当前状况,并提供确认退出或返回的选项,能有效避免这个问题。
第三条原则是指引性。好的产品设计应该在用户可能出错之前就给出提示,而不是等错误发生了才让用户付出试错成本。B端产品的核心诉求是效率,让用户在试错中摸索系统规则是最低效的做法。比如用户上传文件时,系统应该提前告诉用户支持什么格式、大小限制是多少,而不是等用户上传完了才弹出失败提示。指引性设计的核心在于结合具体业务场景,在用户操作的关键节点设置提示或限制,从源头上减少异常发生的可能性。
第四条原则是容错。这条和上一条不同,容错针对的是那些可能自行恢复的异常情况。最典型的例子就是网络波动导致的加载失败,这种异常往往短时间内就能恢复,用户通过简单的重试操作就能正常使用。产品设计应该为用户提供便捷的纠错功能,而不是一刀切地让用户离开。以下载失败为例,清楚地告诉用户上次操作失败的原因,并提供重新下载的按钮,用户不用重新选择文件就能再次尝试,这样的设计最大程度降低了异常对业务流程的干扰。
总的来说,异常状态的设计不是产品开发的“附加题”,而是完整产品体验不可或缺的一部分。跟正常流程相比,异常状态的出现频率确实低得多,但也正因为如此,当异常发生时,用户对产品的判断会更加敏感和严苛。交互设计师和视觉设计师都需要结合具体业务场景,为异常状态设计恰当的表达形式和处理方案。产品在异常发生时不应该成为用户完成任务的阻碍,而应该通过合理的反馈与引导,帮助用户快速回到正轨。
当然,不同企业的业务特性会催生各种特殊的异常状况,具体的处理方式需要因地制宜。希望上面这些设计原则能给产品设计工作提供一些参考,也欢迎同行一起交流探讨。

立即登录