正视UI设计
—— 读《软件观念革命–交互式设计精髓》by duguguiyu
原来我们做UI,一看(别人的软件)二憋(闭门造车)三拼凑(有什么用什么)。
目标导向设计
什么是目标导向设计呢?直白点说,指在程序设计过程中,应该以满足用户使用目标为开发的驱动力,最终提供的界面应该很好的满足用户的目标。
所有这些程序和UI设计中的问题,都需要放在目标导向设计的框架中去衡量。我们给用户提供的交互接口,只需要提供满足他最终目标,而不需要提供任何关于中间任务的交互。那些东西对于用户是一种考验,对于软件这是一个滞销的信号。
实现模型和心智模型
不同人的视点来看:同样一个问题,比如文件备份,从程序员的视角来看,所有问题展现的都是实现模型。
用户能理解能想到的东西就是心智模型,具体实现的细节属于实现模型。设计UI的关键在于,提供所有的交互都应该满足用户的心智模型,而不要暴露用户理解不了的实现模型。
新手、专家和中间用户
用户和用户之间的心智模型不能完全统一。
顾名思义,新手应该是刚和某种软件亲密接触的人,专家就是常年厮混与该软件在一起的人,其他的,规整规整都都是中间用户了。但其实,所谓的是新手、专家和中间用户是从对软件功能的使用和熟悉程度上来说的。
事实证明,绝大多数人都属于并长期属于中间用户。很少有人来在新手级别不升级,也很少有人愿意费尽心机做一些费尽心思的事情去成为专家。
总而言之,做软件应该充分考虑每一类用户的感受。让新人感到家一般的温暖,让中间用户感到不费吹灰之力的便捷,还要让高手们感到无与伦比的成就感。
设计方法
用户的目标怎么发掘,其心智模型怎么探究等等。诸如此类的问题,都会需要有一套切实可行的实践指导方案。
分成5个阶段,按时间排序,分别是研究、建模、需求、框架和优化,相邻两个过程互相迭代。
研究:需要对所面对的软件问题做定性研究。就是通过各种人种学手段,对用户的基本情况,用户对问题的理解,和其对产品的要求等等信息了解清楚。
建模:两个重要的概念。一个是用户角色,所谓角色就是对所有用户的信息做一个抽象,将类似的信息的用户抽象提取归为一个角色;另一个是目标,了解了角色,就需要具体确定该角色想利用该软件完成的具体目标。
需求:对用户日常使用该软件的过程进行详细的描述。就像写故事一样,记录下用户使用软件的整个过程和其中的种种细节。当然,这个过程是你通过你调查获得的信息虚构出来的。
软件姿态
1.独占:就是全屏的,需要长时间占用用户注意力的程序。
2.暂时:打开又关闭,用一套非常有限的附加控件,展示一些单一的功能。
3.精灵:指那些静静的默默的在后台运行的程序,很多应用程序在不需要交互的时候都会转化成这种姿态。
4.辅助:混合了暂时和独占姿态的程序具有辅助姿态。
不要打扰你的用户
用户希望通过软件达到他需要的目标。但有时候我们会自觉不自觉的逼迫他了解一些实现细节。对于这些细节,用户并没有足够的兴趣,那只会打扰他们,引起他们的不解、恐慌或愤怒。
非模态反馈是一种避免打扰和惊吓用户的方式。当软件系统有必要的内容需要告诉用户的时候,非模态反馈是系统在对用户述说,用户只需要合适的聆听而不需要不停的回答。而传统模态对话框不是这样的,那是系统在向用户质问,用户必须不厌其烦的回答,否则不允许进行接下来的操作。
传统的对话框分成四类:属性对话框、功能对话框、进度对话框和公告对话框。
重要的改变必须比原来的好,按我的理解,这就是说你对界面的实现需要遵循你用户的使用习惯,除非你十分有把握让你的用户感到惊喜,否则不要轻易改变原有的方式,即使它真的很烂。
区分对待你的用户
除了纷繁的对话框是打扰你用户的罪魁祸首,对不同级别用户提供相同的交互方式也是让你的用户烦躁的一个重量级原因。我们需要为新手,中间用户和专家提供不同的交互方式。
命令向量和工作集是两个重要的概念。命令向量是允许用户向程序发起指令的特殊技术:菜单、工具条、快捷键都属于这个范畴。
菜单很直观,具有引导性,但操作繁琐,需要多次点击和滑动鼠标,它属于教学向量;工具条控件和快捷键操作非常简单,只需要点一下鼠标或键盘,但需要熟悉或记忆,它属于直接向量。
正确引导你的用户
首先你不能够要求用户完成超出它们能力的操作,然后你还需要用丰富的信息和非模态反馈进行提醒,同时还需要提供最为准确的交互方式。
原谅你的用户
原谅的方式也有很多种,你可以更正用户的错误,比如用户输入的内容违反了格式,你可以帮他改进成合法格式,并偷偷的告诉他;你也可以加入提醒功能,在用户可能是犯了错误的地方标识一下。
但做好一个撤销重做功能并不是一个简单的事。你要考虑撤销和重做的深度,要考虑是在对所用操作有效还是一部分操作有效,要考虑是分部分撤销还是统一撤销。
Tags: About-Face