当我在做交互的时候我在做些什么?(附整理的精简版交互原则)
从去年3月21日开始用户体验设计实习,到今天已经将近14个月了。除去其中1个多月找工作和一个月左右忙于毕业设计的时间外,几乎都在做和网页与无线端交互设计有关的事情。曾经自以为读过不少交互设计与心理学(入门)书籍,也系统学习过交互设计史和交互设计理论的我,在最近不可避免地陷入了“我是谁?”“我从哪里来?”“我要到哪里去?”的交互新人迷茫期。
换成人话来说,就是
“交互设计是什么?”
“交互设计思考从哪里开始?”
“交互设计的交付物要做成什么样?”
对这三个问题我并没有很清晰的答案,只是在一直跟着老大们干活的过程中,不断地重复着“思考、实践、质疑”,“再思考、再实践、再质疑”的过程。在这里,我通过边记录边思考的方式来整理一下我究竟在做什么。
最初在软件公司实习的时候,交互设计需要做的是从界面逻辑到界面UI的整个过程,设计思考主要源自用研和产品的调研,以及相关的设计与心理学理论,设计交付物是交互逻辑流程和细致到像素的界面高保真。
进入互联网公司工作后,我做的更注重于交互的逻辑这一块,设计思考主要源自于数据及其分析,以及对竞品的分析和研究。产出物主要是交互流程低保真线框图。
一前一后,设计的侧重点很不一样。在软件公司工作的时候,一个月整理一轮需求,做一个版本的发布。我有相对充足的时间做从页面逻辑到框架层和表现层的梳理,同时兼顾UI设计的经历也让我体验了一把和开发合作的经历。上线此时是一个指标,但作为设计师我彼时更关注于用户体验和长期效果。我个人比较喜欢UI层面的东西,所以在整体的交互逻辑上往往考虑并不够全面和长远。好在当时做的大部分是web端的产品,页面内的逻辑相对复杂,而页面间的流程则比较成熟,套用起来并不容易出错。
在互联网公司的时候,敏捷开发和产品迭代的生产方式推动我们需要做基于数据的精益设计。低保真产出让我可以不用那么关注于表现层面的东西,而更focus在逻辑和框架层面上。同时无线端的设计对设计中的全局和流程把握要求更高,往往会牵一发而动全身,前后流程的思考常常有不到位的地方(该打)。同时可能是由于密接开发的关系,加上表现层面的任务交给了UI,在和开发的协作方面感觉没有之前那样紧密顺畅,设计的还原成了我觉得既担心又有些无可奈何的事情。
和朋友们交流之后也了解到,我所经历的工作方式也不过是交互设计,或者广而言之用户体验设计的工作方式的两种而已。也有产品自己画线框,跳过交互直接进UI的;也有交互自己做用研和UI,接到需求后直面开发的;更有所谓的全栈设计师。
在我看来,即便形式不同,交互设计的作用依然是相同的,即优化产品逻辑,保证产品表现水平。除此之外,设计师需要帮助产品梳理需求的合理性,要和开发研究上线方案,推进上线进度和质量。但是,“上帝的归上帝,凯撒的归凯撒”,设计作为产品交互从结构到表现的构建者,必须守住最优交互体验的立场,就如产品需要保证满足用户需求而开发需要保证上线一样。
作为交互设计新人,我不确定我的思考是否准确,甚至对所有对于这些思考的批评都持怀疑态度。但是在交互设计的未来发展趋势中,我依然站交互和UI会趋近变为用户体验设计,而产品也会和交互趋近具备基本的交互素养的可能性。设计是理性地将感性表达出来,这也是我深深为之着迷的地方。
另:在之前的工作中,我收集了一(大)堆交互设计原则。经过这段时间的体会和梳理,我将目前认为可以系统指导我自己设计的设计原则归纳为以下12条。希望在指导自己设计同时可以和大家有所探讨,将这些理论消化成为真正自己的设计准则。
1. 一致性原则
在产品的不同层面上都需要保持必要的一致性。 一致性的本质是运用存储于外部世界和头脑中的知识,从而降低用户的学习成本。
2.易学性原则
系统必须使用用户的语言,使用用户熟悉的单词、词组和概念,而不是面向工程或系统的术语,更不要使用深邃的哲学语言或者黑魔法咒语。遵循现实世界的规范,使得信息以自然和有逻辑的方式呈现。
系统需要帮助用户建立正确且自然的匹配关系。包豪斯主义指出:形式追随功能,去除干扰和装饰。人总是对符合期望的行为最感舒适。如果它看上去像个按钮,那么它就应该具备按钮的功能。在用户响应层面,需要做到两种匹配,即建立正确且自然的匹配关系其实就是指两种匹配,用户目的和行为的匹配,以及用户行为和效果的匹配.
选择能使用户立即抓住概念细节的隐喻。通过唤起用户的认知来设计好的隐喻,不必完全照抄真实世界的东西。如果隐喻不会帮助你,就抛弃隐喻。
3.易用性原则
降低产品的费力度,让产品变得容易使用。这里可以列举以下原则提供参考:
(1) Fitts’ Law菲茨定律内容:从一个起始位置移动到一个最终目标所需的时间由两个参数来决定,到目标的距离和目标的大小(上图中的 D与 W),用数学公式表达为时间 T = a + b log2(D/W+1)。菲茨定律告诉我们:1:按钮等可点击对象需要合理的大小尺寸以降低费力度。2:出现在用户正在操作的对象旁边的控制菜单(右键菜单)比下拉菜单或工具栏可以被打开得更快,因为不需要移动到屏幕的其他位置。3:到达多个目标的时间之和是到达每个单个目标的所需时间的总和。
(2) 席克定律告诉我们,一个人面临的选择(n)越多,所需要作出决定的时间(T)就越长,用数学公式表达为反应时间 T=a+b log2(n)。在人机交互中界面中选项越多,意味着用户做出决定的时间越长。与席克定律类似,7±2 法则也经常被应用在移动应用交互设计上,如应用的选项卡不会超过 5 个。
(3) 让你的展示产品看起来简单是没问题的,但是,简化不只是降低视觉负担,同时还要考虑到认知负担和操作费力度。参考Tesler's Law 泰思勒定律(复杂性守恒定律),每一个过程都有其固有的复杂性,存在一个临界点,超过了这个点过程就不能再简化了,你只能将固有的复杂性从一个地方移动到另外一个地方。
(4) 可读性原则:互联网时代的用户易读的文本必须要有高的对比度和足够大的文本。菜单与按键标签应当有特定的关键词或设计样式。
(5)简约原则:运用Occam's Razor 奥卡姆剃刀原理(简单有效原理),即“如无必要,勿增实体”,即如有两个功能相等的设计,那么选择最简单的。利用各个菜单项之间的逻辑关联进行更好的分类,帮助用户找出哪个功能按钮在什么地方,而不是把所有的选项都铺出来。
简约至上策略可以给我们提供一些启示:删除,去掉所有不必要的按钮,直至减到不能再减;组织,按照所有意义的标准将按钮划分成组;隐藏,把那些不是最重要的按钮安排在活动仓盖之下,避免分散用户注意力;转移,只保留最基本功能的按钮,将其他控制转移到界面。
4.流畅性原则
不要打断用户的任务流,让用户可以连续使用产品。
考虑流程的各种情况,不让用户在任务流中返回退出。在场景化设计的时候一定要考虑当前场景下发生的各种情况,做到不打断用户的任务流。
5.防错原则
增加反馈与限制,利用错误信息帮助用户认识、诊断错误并恢复,并确保用户不会因为系统错误丢失他们的工作。
防错原则认为大部分的意外都是由设计的疏忽,而不是人为操作疏忽,通过改变设计可以把过失降到最低。和好的错误提示相比,更好的就是细致的设计以防止错误发生。要么避免容易发生错误的情况,要么检查并在实际动作前通过确认选项提示用户。如当使用条件没有满足时,常常通过使功能失效来表示(一般按钮会变为灰色无法点击),以避免勿按。简单的说就是,避免用户犯错和不给用户犯错的机会。
6.安全原则
给用户提供“撤销”,让动作可逆,为用户提供一个低风险的学习和探索环境。
用户有时候不会完全了解操作会带来的危险。一个研究表明在危险的环境中人们比在安全的环境中犯更少的错误,但同时他们的效率会降低,因为用户总是小心的避免出错。
7.可预见性原则
在用户达成目标的每一步都把所有必要的信息和工具带给用户
不管是软件还是硬件都要尽力去预知用户的需求。不要期待用户离开当前的页面去寻找他所需要的信息。所需的信息和工具必须放在合适的位置并且要明显可见。
8.可见性原则
为了用户能成功的使用软件,必要的对象应该时刻可以让用户可发现。软件中一个功能如果用户不能发现他,就表示没有这个功能。在必要的时候,需要使用“主动地发现”来引导人们进入更高级的内容,
用户在网页上的任何操作,不论是单击、滚动还是按下键盘,页面应即时给出反馈。仔细设计反馈状态,争取给用户提供专业的帮助。让用户在整个体验流程中不会因为对情况不明而感到危险从而停止使用。 设计师需要提供给普通用户的不应该是直接的复杂数据,至少是可以让用户读懂的图表或者信息。即便是给专业用户,也要尽量让数据传递出的信息更方便的传达给用户。
整个任务流中,需要给用户清楚标记的路径和可预知的线索,并且让他们能够不用思考地快速使用软件。
9.灵活性原则
为大多数用户而设计,也要为少数场景用户解决极端问题,为专家型用户提供定制化与快捷方式。
10.情感化原则
从用户出发,考虑到用户的情感需求,让交互具有趣味性,并允许用户的个性化情感表达。
《情感化设计》告诉我们,产品情感化设计具备三种水平的设计:本能水平、行为水平、反思水平。三种水平分别对应产品的不同特点,如下:
本能水平的设计——外形;
行为水平的设计——使用的乐趣和效率;
反思水平的设计——自我形象、个人满意、记忆。
情感化设计的目标是在人格层面与用户建立关联,形成认同,即满足用户的情感需求,引发用户共鸣,使用户在与产品互动的过程中产生积极正面的情绪。这种情绪会逐步使用户产生愉悦的记忆,从而更加乐于使用你的产品。另外,在正面情绪的作用下,用户会处于相对愉悦与放松的状态,这使得他们对于使用过程中遇到的小困难与细节问题的容忍能力也变得更强。
11.减少延迟原则
无论什么时候,用多线程技术把系统延迟放到后台。在不可避免或难以控制的延时上,让用户知道延时并同时设法降低他们对延时的感知
延迟经常通过多线程技术对用户隐藏,把用户传输数据或者系统计算的过程放到后台中,以便让用户继续他们的工作。
对于不可避免或难以控制的延迟,需要做到:
(1)对任何按钮的点击需要在50毫秒内给用户视觉或听觉的反馈。
(2)避免用户对同一个对象的多次点击。
通过有效地反馈,动效或是占位符效果,避免用户在加载缓慢、网络延时情况下对于延迟的认知以及多次点击产生的错误。反馈的具体形式包括:
(1)2秒(概数,根据情况而定)之内的延迟需要有“忙碌”或“加载中”的提示。
(2)2秒以上10秒以内需要有加载进度条或是倒计时来告诉用户系统进程。
(3)10秒以上15秒以内,除了告诉用户系统进程,还应该给用户提供一些用于消遣的娱乐。
(4)10秒以上需要提供一个在结束时的声音或强视觉提示,让用户在离开后知道什么时候应该回来。
12.自主性原则
给用户自主权,决定怎样布置界面并进行操作。用户自主意味着用户来决定他们使用键盘的哪个按键,他们把他们的电脑桌面弄成什么样子(尽管可能会很丑),或者他们用哪个APP。当开发者从用户的手中带走控制权时,用户会感到挫败和生气。用户自主需要让用户有控制权,这就需要让用户清楚地知道有效的设备状态信息,比如电量,网络情况等。状态机制为用户响应产品使用过程中状况的改变提供了必要的信息。
当我在做交互的时候我在做些什么?(附整理的精简版交互原则)