实现模型、表现模型、心里模型
About Face 第二章上讲到这三个术语,这一块内容比较晦涩抽象,当初读了好多遍才逐渐明晰。为了帮助大家迅速的理解这三个术语,根据自己的理解加上一些示例进行了重新的梳理,希望对大家的快速理解有所帮助。
为什么要说说这三个术语,通过理解它们,我们可以知道:
1,一些不好使用的产品存在的本质原因。
2,怎样可能设计出更好使用的产品。
先来简单描述一下这三个术语的概念。
实现模型:产品是怎样工作的。
心里模型:用户认为产品是怎样工作的。
表现模型:通过设计来让用户认为产品是怎样工作的。
举个例子,实际的汽车刹车工作过程是:当踩下制动踏板时,在踏板处通过杠杆原理把制动力放大了3倍,再通过液压机构驱动活塞把制动力又放大了9倍。放大以后的制动力推动活塞移动,活塞推动蹄片带动刹车卡钳紧紧的夹住制动碟,由蹄片与制动碟产生的强大摩擦力,让车减速。大家认为汽车刹车的工作过程是:脚踩下制动踏板,摩擦车轮让车减速。前面真实的工作过程的描述就是实现模型,后面用户理解的工作过程就是心里模型。
对比两种模型可以看出,心里模型是对功能工作过程的一个概括的简单的认知。且这种认知是依靠人类生活经验的,比如摩擦力可以让速度停下来。
人们使用产品时候,并不需要了解其内部复杂的运作细节,因此人们创作出了一种简单的解释方式。这种理解虽然不能反映产品的内部运作机制,但是对于与之交互已经够用了。
在上面例子中,可以看到为了刹车功能简单易于理解,使驾驶员在开车时候不需要思考就可以立即学会使用。设计师把对这个这个功能的表现进行了设计,舍弃了在此功能运行过程中的细节,让用户通过踩踏这个动作达到目标的机制可以给自己一个简单合理的解释,从而迅速掌握了此功能,无需思考就就可以迅速正确使用了。这种把产品的功能展示给用户的方式就是表现模型。
实现模型、表现模型、心理模型存在以下关系:
表现模型越接近心理模型,用户就越容易了解产品功能、容易与之交互。表现模型越接近实现模型,用户越难理解产品,产品越难使用。
让我们来看看一些表现模型偏向实现模型的例子。
上图是在浏览网页时候会突然出现的弹出窗口,在弹出窗口上显示一句只有程序员才能看懂的语句,它告诉用户发生错误的具体实现原因。但是这让普通用户很痛苦,不知道发生了什么。只有点击确定,关闭弹窗。这些就是程序员式设计,程序员按照自己的逻辑,当发生错误时候,就告诉用户原因,遵循的是程序理解的实现模型。其实需要告诉用户出现的这个问题吗?需要告诉用户这个错误发生的原因细节还是告诉对其造成的影响?这些问题都是需要斟酌的,只有让表现模型同用户心理模型一致,才能够让用户容易理解。
上面是一个应用的下载界面截图,在下载离线包完成后,界面上还会显示解压进度。从文件下载到可以使用需要经过两个过程,下载与解压。但是没有必要告诉用户所有的这些步骤,没必要让用户多了解一个概念。用户需要知道的是文件下载完成了可以使用了,就可够了。而不是想知道这些详细的中间步骤。这就是表现模型与实现现模型一致的情况。
上图左侧是Photoshop内设置颜色的功能面板,设计师通过调节数值来达到自己需要的颜色。这些数值表达了颜色的实现机制,是从实现模型出发的。对于没有经验的用户来说,想调整出自己需要的颜色是有一定困难的。右侧也是Photoshop内设置颜色的功能面板,用户需要什么颜色可以直接点选。这种交互方式让用户很容易理解,因为其表现模型比较贴合用户心理模型。
从以上几个实例可以看到,导致好多表现模型偏离心理模型的主要原因是因为好多软件、应用、网页的设计者都是程序员。程序员们完全沉浸在代码的逻辑世界里,他们希望通过代码来证明自己的能力、来表现自己。把自己的一切成果都展现出来,让大家看到。同时每一行代码、每一个模型对于他们来说都是精准的、符合逻辑的。却很少考虑到用户的心理模型,导致出现好多普通用户无法理解但在程序员们看来却理所当然的交互界面。
我们也可以从另一个角度理解表现模型贴近心理模型的设计。其实就是要从以用户为中心、用户目标为导向的原则出发,更多关注的是人,少关注一点物。只要可以帮助用户完成目标的信息就让用户看到,不能够帮助用户完成目标的信息就隐藏起来。比如搜索,当用户输入一个query时候,就会给好多筛选结果。整个过程非常简洁,用户看到的就是这些。但是搜索的真实工作机制却是相当复杂,不过这些不需要让用户都看到。只给可以帮助用户完成目标的信息就是最好的设计。
怎样让表现模型更贴近用户的心理模型,还有一些重要的原则要遵循,设计心理学一书中提到过,其中包括可视性、匹配原则、反馈原则。不过这就是另一个话题,以后有机会再详细说。