1、容错是什么?
我们先抛出一个问题,容错是什么?其实很多朋友会有一点错愕。我们单看这个词,“容错”这个词汇不是像譬如说用户体验、平面设计这种相对来说看字面意思比较一目了然猜个八九不离十,如果从字面上来理解的话,“容错”可能被理解为是“包容错误”或者“容纳错误”,如果这么理解的话我看来是只能说算靠近,但不全是。
容错这个词严格来说应当是计算机领域的词汇,如果以比较标准化的描述来定义的话,容错指的是“当计算机由于种种原因在系统中出现了数据、文件损坏或丢失等等其他故障问题的时候,系统能够自动将这些损坏或丢失的文件和数据恢复到发生事故以前的状态,使系统能够连续正常运行的一种技术。”这个听着有点绕口,其实简单来说,就是当计算机故障发生或者存在的情况下,计算机系统依然可以正常工作的能力,这就是计算机的容错能力。
这篇文章着重要说的是“容错”在互联网产品领域的内涵和意义,从计算机领域延伸过来,互联网产品领域容错这一个词和它包含的范畴我认为是更多更广泛了,它不仅包含了产品出现问题时候的自解决能力,也在流程上向前和向后,包含了怎么让用户去少犯错,产品怎么去自行解决错误,当这个错误产品难以自解决的时候如何给提供给用户去解决错误的方法和策略等等多个方面的内容。
虽然“容错”大家可能还不太清楚,但是如果我们提到可用性或者易用性的时候,那么大部分互联网相关从业人员可能都会或多或少的听过或者接触过。可用性和易用性是产品重要的质量指标,是产品对用户来说有效、易学、高效、好记、少错和令人满意的程度,而容错性其实就是可用性之中细分的一个模块,是专门针对用户在使用产品的过程中如何避免出错以及一旦出错如何尽快有效的纠错的研究和设计。
当然归根结底还是两类,就是错误的避免和问题的解决,这也可以理解为就是产品对错误的容纳和解决能力。
2、为什么需要容错性设计?
为什么产品需要容错性设计呢?先分享一句话给大家,这句话是从国外的一本书里看到的,翻译过来呢大致意思是说“即便你的产品在90%的时间里都能够运行良好,但是一旦在用户需要的时候置之不理,那么用户是不会忘记这一点的”。也就是说,你的产品要么不出错,一旦出错而又没有很好解决的话,用户记得的总是你出错的这个点。这其实很好理解,就好比说我们去一家餐馆吃饭,这家餐馆的饭做的非常好,每次你都很满意,结果可能某一天你去吃的时候,这家餐馆的大厨当天的精神状态不是太好,或许加佐料的时候手抖了一下,总之做出来的东西非常难吃。然后你会怎么样?你会觉得没关系吗?通常来说不会的,要么你会找服务人员质询,要么你干脆下次就不来吃了。你可能并不会想到你之前哪怕来过99次你吃的感觉都非常好,你的重点全部都会放到这一次上面,你会觉得怎么这么差!
这其实和人的心理也是很像的,其实我们人的特质是这样的,是不太能够接受递减或者是损失这种倾向,比如说拿红包,你要是一直拿的都是10块、10块、10块,那还好说,你或许能接受;你要是一直拿的是10块、20块、50块,那对你来说很好很开心,因为是递增或者不断增加奖励的这样一种倾向,但是如果你拿的是50块、20块、10块,那你通常就不干了。
产品也是如此,如果这个产品一上手就发现特别差,那好,通常用户立刻就放弃了,如果这个产品上手以后表现不断变好不断超出预期,那么用户就会越来越喜欢,如果产品一直表现还行突然遇到什么问题发现玩不转了或者处理的让用户很难满意,那么这个产品被抛弃的可能性就非常大,这也就是产品之所以要设计容错性的意义所在。
以上是从用户心理这个角度来说的,那么我们从现实情况来看,所以为什么需要容错性设计呢?
其实就是两点。第一是,用户容易犯错,毕竟“人非圣贤,孰能无过”,更何况更多的只是普通用户。互联网产品面向的用户群体是多种多样的,不同的教育背景,不同的行为习惯,这些都使得用户真实的操作对比产品设计时的预期设想会出现一定的出入。用户在使用产品的过程中,特别是日常用品,用户倾向于不过脑子,随手就做。因为用户的冲动、不熟悉,因为用户在经验、学识、习惯上等等诸多局限,或者因为产品设计本身的复杂、逻辑不畅,又或者是干脆因为某个奇奇怪怪的原因,用户都有可能会出错。
我们可能会想,不一定吧,如果这个产品足够完美是不是用户就不会犯错了。
如果只从不犯错这个角度来看,理论上讲是有可能,但实际上几乎不可能。为什么呢?这就是第二点,因为产品设计很难完全避免错误,产品设计或者用户体验设计所做的很多工作,只是为了降低犯错的可能性,但是这并不能完全避免错误。
而且,近些年,随着移动互联网时代的到来,用户会在各种千奇百怪的应用场景和环境中去使用产品。可能用户是坐着或者躺着?在公交上还是在厕所里?处于安静的环境还是嘈杂的环境?场景的复杂程度变强了,所以这些复杂多样的使用场景使得针对用户操作错误而进行的错误反馈设计变得尤为重要。
产品容错性设计能够使产品与人的交流或者人与人借助产品的交流更加顺畅。用户在使用产品的过程中难免会因为各种原因而犯错,对产品在容错性上的进一步设计,可以保证用户在错误操作后仍能依照一定的方式来完成任务。
容错性设计是产品交互设计中的重要内容,也是用户体验设计中的重要内容。
任何产品任何一步被用户操作后都会产生正确操作或者错误操作两种结果,即便是一个再小的按钮也是如此,操作正确了可以顺利完成任务,操作错误了就应该利用产品自身的容错性帮助用户从错误中走出来,这两方面综合起来才算是一个功能操作交互动作的完整过程。
总的来说,一个产品的制作无论多么简单,都不可避免地会有用户在使用时因为各种原因而犯错,遇到错误如果不能够迅速的纠错和挽回损失,即便这个产品有再多的用户,从交互设计上来说它也是失败的,因为它的功能本身就是不完整的,本身的秩序就是紊乱的,因此也就达不到用户体验中的“易用”这个层面。
3、容错性设计的标准
关于容错性设计的标准,这里我们要讲的是尼尔森十大可用性设计原则的标准,这个略微了解一些用户体验的朋友一定都听说过,这也是普遍在用户体验方面比较受到广泛认可的一套标准,虽然这十大原则已经发表了大概二十多年了,各方环境都发生了日新月异的变化,但是基本上还是比较通用的,这里把我认为尼尔森十大可用性设计原则中和容错有关的原则和各位分享一下:
①撤销重做原则:用户经常错误地选择系统功能而且用户需要能够明确标识离开这个的“出口”,也就是用户操作出现错误,产品应当提供撤销或重做的功能。
②防错原则:用户在使用产品的时候难免会出错,但一个好的产品应该是在用户容易出错的地方防止或直接把出错的可能性给去除掉,避免错误的发生。因此如何让用户避免出错就需要对产品页面的设计、布局、规则上进行反复验证把发生错误的可能性降到最低或没有。
③容错原则:错误信息应该用语言表达,较准确地反应问题所在,并且提出一个建设性的解决方案,帮助用户识别,诊断,并从错误中恢复。也就是在用户出错时如何为出错的用户提供及时正确的帮助呢?即要帮助用户识别出错误,也要分析出错误的原因且帮助用户回到正确的道路上。如果实在不能帮助用户从错误中恢复,也要尽量为用户提供帮助让用户损失降到最低。
④人性化帮助原则:如果系统不使用文档是最好的,但是有必要提供帮助和文档。任何信息应容易去搜索,专注于用户的任务,列出具体的步骤来进行。帮助性提示方式除了不提示外,还包括一次性提示、常驻提示和帮助文档。
4、容错性设计的目的
容错性设计的最终目的当然是让产品更可用、更易用,为了更好用容错性设计的目的在于两点,降低出错概率和提升纠错效率。
一是提醒,明确告诉用户现在的操作有可能是错误操作,并指出错误在哪,即出错的原因。当然描述错误的文案需要满足产品使用人群的特点,根据目标用户进行设计。
二是给出解决方案,如果对于准确判断用户出错的原因很有信心,可以直接帮助用户纠正错误,将正常的结果呈现给用户,并告知已经纠错。如果只是知道用户本次操作有可能是错误操作,并且概率不高,可以将正常结果呈现给用户,并给出纠错按钮让用户选择。