首都机场的点烟器
首都机场的吸烟室里并不像其他机场那样放几个固定的打火机,而是点烟器,和车载点烟器基本是一样的:先按下加热,加热好后,它会自动弹起,拔出来,里面的电阻丝已经是红红的了,就可以点烟了。
上图为车载点烟器,与首都机场的点烟器一样,加热过程中只是被按下去了,未显示进度,也未能形象的表现出“正在加热”的含义。
我走到点烟器的近前,按下,让它加热,然后等待,等了一会儿还不见动静,不知是仍在加热还是出了故障。吸烟室里很多人,感觉自己被别人看着,不会用这玩意儿很尴尬,干脆不等它弹起就直接拔出来看个究竟,原来真的是还没完全加热好,还好,勉强能用,对在烟上,使劲抽了两下,算是点着了烟。
如果这个点烟器在加热过程中能有更明确的提示会更好,比如:加热中有一个小红灯在不断闪烁,更完美的方案是能真正的显示出加热的进度…
腾讯新大厦很漂亮,但很多同事都会对着电梯挠头。
按了电梯门旁边的下箭头按钮之后,你只能看到向下的按钮是亮的,即,电梯知道你要下楼。而不知道电梯当前走到哪里了,无法预估电梯到来的时间。因此,大家只能期盼的望着电梯门,并且挠头。电梯门前散落下不少挠掉的长发、短发、直发、卷发、头发茬儿(那是我挠掉的)…
系统当前的状况看似与使用没有直接联系,但用户却可以通过了解系统当前状况预估电梯到达的时间,从而决策,是悲情的去爬楼梯还是继续等待。
如上的两个经历,使我回想起公司校园招聘时交互设计的一道笔试题:
这个界面有啥问题?
一个很明显的问题是:缺少终止操作的按钮。不能停,只能等。
以上三个例子都是关于处于运动、变化中的系统。这样一个系统到底需要具备哪些要素才不会出上面那种种问题呢?
以下是关于变化中的系统所需包含的要素:
要素1-当前进度(描述当前状态)
对状态的描述有笼统和精确两种层次。点烟器加热过程中有个闪烁的小红灯是一种笼统的描述,说明系统当前正在工作中,类似于windows系统的沙漏光标。当前下载到了54%是精确的描述,不仅说明系统正在工作,并且表明具体的进度,让用户有可能预估剩余的时间。
要素2-系统最终将达到的结果(描述当前状态)
对于电梯,最终的结果是电梯到来;对于下载界面,最终是下载完成。对最终到达结果的描述并不见得是一条单独的信息,能让用户认知到即可。
要素3-辅助用户预估完成时间的信息-进度变化的速度等(描述当前状态)
下载大文件用的下载软件,一个下载任务通常要若干小时才能完成,进度相对缓慢,只根据进度的变化,用户并不能很好的预估最终完成还需要多久,当前下载速度之类的信息可以辅助预估。
要素4-终止操作(提供操作)
终止掉当前正在变化的状态,恢复到变化开始之前的状态。
要素5-其他操作(提供操作)
在当前变化状态下,除“终止”操作之外的其他操作。 例如,最小化、隐藏至后台运行、降低运行速度…
前三点是描述系统当前的状态,后两点是提供操作。
这几类要素并不见得一定要有,总结出这些要素的价值在于:避免因考虑不周全而出现设计缺陷。你的系统没有更多的“其他操作”当然没必要特意搞一个出来填补“其他操作”这项的空白。
下面,让我们把注意力集中到软件、网站产品上来。
有了上面这些要素,设计一个变化中的系统,大概不会出太大的问题了。接下来的问题是:上面这些针对“变化中的系统”总结出来的要素,是不是可以更广的应用?推广到全人类?
让我们站远一些,来看看“变化中的系统”在整个软件产品这个大集合中的位置。
一个软件、网站,原本是由若干个稳定的系统组成的。比如:网络影集首页、单个相册列表页、照片详情页…用户不做操作,这些状态是不变的。通过用户的操作,一个网站从这个稳定的系统跳到另外一个稳定的系统:
在这些跳转过程中,有时,一个操作会产生一个相对复杂的行为,需要比较长的时间,比如:在一个网络相册中,添加照片,一个空相册要变成一个装好照片的相册,需要一个上传照片的过程,上传照片的过程就是一个“变化中的系统”,这个系统最终会自动达到上传完毕的稳定状态。
对稳定的系统也可以总结出“要素”以避免设计中的考虑不周:
要素1-描述当前状态
对系统当前状态的描述。
例如:收货确认,确认支付,登录…
要素2-操作
当前可进行的若干操作。
同样是“状态”和“操作”两类,但不需要再细化了。比起变化中的系统,稳定的系统简单不少,这也是为什么我们通常不会着力分析这样常规的页面,而更倾向于分析那些上传、下载界面的设计要素。
变化中的系统中,“要素2-系统最终将达到的结果”,在前面只着眼于变化中的系统时,这项要素显得并没多大价值。现在将变化中的系统和稳定的系统放在一起,来看整个产品,“系统最终将达到的结果”就有价值了。因为变化中的系统,只是一个中间过程,在相册列表页面上点了添加照片,用户的期望是最终看到照片添加到这个列表中,在上传照片页面漫长的等待中,需要告诉用户,这里耽误了半天时间,是为了让照片能添加进去。
综合上面的两类系统,可以用下面这张图整体示意一下:
以上的“稳定的系统”、“变化中的系统”都是从最开始的那几个例子发展开来的,是一个特定的视角,通过这个视角来分析设计。为的还是解决设计中可用性的问题,具体的说,是“操作前,结果可预知;操作后,操作可撤销。”的问题。
仔细琢磨你会发现,只是总结了系统整体的要素还不足够,要确保“可预知”“可撤销”还需要单独对操作进行分析,就是上图中那些按钮所代表的操作。单独对它们进行分析,总结出操作在设计时所需要的要素,与系统整体的要素结合在一起,才能比较好的保证“可预知”“可撤销”。关于操作的分析。
鉴于上面的这些文字读起来很是吃力,接下来关于操作操作的分析会读起来同样吃力,我想还是分成两篇,分开来说吧。
关于操作的分析:《操作设计要素》
(以上的分析要特别感谢交互设计同行、中国人民的老朋友:justkiddings。)