GUI设计感悟

以下是我的一些GUI开发的感悟。自己才部分理解人机交互为什么是挑战这句话的含义。

参考

n         情感化设计 (美)诺曼(Norman,D.A.

n         About Face 2.0 (美)库珀 等著,詹剑锋 等译

n          人机交互(第三版)(美)迪克斯(Dix,A. 等著,蔡利栋 等译

1.      人机交互概述

1.1.   概念

    人机交互这一术语,自20世纪80年代初期才得到广泛使用,但是已经扎根于许多确立的学科之中。由于计算机的使用变得日益普遍,数目不断增长的研究者专门探讨人和机器之间的交互作用,关注这一过程中物理的、心理的和理论的方方面面。该研究最初进行时采用man-machine interaction(个人同机器的交互)的名称。而后来,因认识到在计算机与用户群体组成方面的特殊兴趣,而改为human-computer interaction(人类同计算机的交互)!软件的GUI设计,是人机交互的一个子范畴。

1.2.   现状

    界面设计是一个很通俗的字眼。几乎每一个从业人员都能说出一个一二三,规则和方法,或者是注意事项。但我们看到我们所做的软件以及市场上的软件,成功的界面设计,可以说是寥寥无几。这里面有很多的原因,关键的原因,不是我们没有界面设计过程,不是我们缺少时间,而是我们忽视了界面设计里面的内涵,以及我们本身知识缺陷认识不足。

    界面设计为谁而设计?是因为我们有完美的技术?所以要包装一个好的光鲜的外表?一群人编辑一大堆的机能功能,然后再设计界面。界面设计设计是为了市场,开发吸引眼球的色彩斑斓的界面,开发有卖点的机能?还是为了让用户实现他们的要完成的任务而去设计界面?我相信很多人的头脑里没有一个清晰的概念。

    开发者有着与用户完全不同的职责,他们关注点在于技术和工程方法学。与此同时,市场部门则关注什么能吸引媒体的注意力,关注功能清单和用户的购买的愿望。而当用户被直接问到他们所使用的产品的时候,他们则倾向于关注底层的任务,与你的测试相反,很少有用户能够意识到或者清晰地阐述他们的目标。这样的结果:软件令人恼怒,不能满足用户的需要。

 

2.      迷途 任务和目标

2.1.   我们完成了任务

    在项目中,完成任务,是一件很自豪的事情。那我们任务的结果,最理想的情况没有错误,但我们能够说我们做的东西是否真的有价值?由于项目的特殊性,我们的项目是面向市场的产品,这给与我们一个很大的挑战,因为需求在不断变化,由于缺少某些认识,我们的GUI设计和程序本身结构一样,充满了各种补丁。这种界面的可用性和能帮用户解决多少的问题,我们不得而知。举一个小例子,当有用户讨厌箭头光标,当作图的时候,容易造成遮挡,于是我们就设计了一个十字光标。这个修改刚发布不一两天,有用户就专门打电话抱怨,他讨厌十字光标,喜欢原来的光标。实际上他是一个伊斯兰教徒,他当然厌恶一个十字架整天在他面前跳动。于是我们就在程序中设计了两种方案,一种箭头光标,一种十字光标。这还只是我们对我们界面设计补丁里的一个小的插曲。这里的例子仅仅是我们面向市场的界面设计的一个失败。为了让人有一个深刻的印象,我们不妨来假设一个场景,来体会一下我们大家设计的界面:

            将来的某一天,自行车上也有了芯片和软件。某人骑着自行车,当他用力蹬踏的时候,由于某种原因,他蹬踏过猛,某语言提示装置提示:

    请您减小您的踏力,踏力可接受范围在90牛到180牛,否则将损坏您的轴承。

他转动车把转弯,语音装置不断提示:

    您的车把转过5度,您的车把转过10度。。。

他没有注意后方有汽车,语音装置提示:

            您的正后方20米处有汽车,加速请开助力驱动,减速让道请刹车。

他没有注意到这个提示,自行车自动开助力驱动,后果可想而知。

我们会嘲笑这样的自行车,如果真有这样的自行车,如果“想去某个地方”还是摘掉那些“智能装置”为好。我们讥笑这种自行车之余,可以看看我们自己设计的界面,可笑的提示随处可见,某些功能某名奇妙(当然界面功能后面隐藏着我们高深的技术)。但我们完成了任务:

1)  让用户觉得自己是傻瓜;

2)  让用户被太多无用的信息干扰,而他关心的东西却寥寥;

3)  帮用户做了一些不该做的事情,臆测用户的意图;

4)  堆砌界面,堆砌很多功能,在用户面前呈现一个高深莫测的界面,而实际是一个无序凌乱的界面。

 

我们做到了人性化,色彩柔和,布局整洁,符合了人先天后天的这种那样的习惯。我们的功能丰富,实现了业界,市面上种种的功能特征,用户能得到他们能得到的一切,物有所值。但这样的产品也许能赢得少数人的欢心,大众不会去买一把有照相功能的菜刀。

2.2.   目标何在

    完成任务?那还只是开始,我们不得不反思我们在这个过程中,我们给自己的目标是什么?我们很清楚的知道菜刀是用来切菜,但我们能够很清楚的描述用户用软件做什么?他如何使用这个软件?他使用软件的习惯是什么?很多时候我们很迷茫,或者说我们并不清楚,这往往导致我们开发的软件GUI,只是专家能够用,只有专家级别的人物才会关心那些逻辑细节,愿意思考那些按钮之间的因果关系。

            我们来考察一下我们身边的东西,比如手机,我们用它的功能是什么?狭义一点,那就是需要它能够打电话,那么通话质量,信号质量以及电池寿命是非常关键的功能和要求。外观花哨,功能繁多,能吸引的是那些年轻人,因为他们有时间和精力,把玩手机。而对于大部分用户而言,没有什么比通话质量(信号质量),电池寿命等更重要的,这就是诺基亚成功的秘诀之一。这就是说,我们设计手机的时候,时刻不能忘记用户拿它做什么,要实现什么目标。当然从广义上而言,手机是用户交流的工具,这里注定就会拥有很多的商机,换另外一个角度,我们可以把手机,掌上电脑等等集成起来,当作个人居家旅行工作的助理,这里也将有很大的商机,这是别话了。

            推而广之,我们的软件是否关心去实现用户的目标?即我们的目标在于站在用户的角度,去实现他们的目标。这就是界面设计里的目标导向设计(Goal-Directed Design。我们可以看到,成功的软件,帮用户实现的是他们的目标而不是特性:自行车代步,而不在于它的外观花哨,结构奇妙。菜刀能切菜,不在于它上面的花纹,而在于它切菜。我们不是要设计一个艺术品,而是要设计一个帮助大众实现他们目标的工具(服务),仅此而已。

3.      实践的艰难

如果没有认清用户想要什么,或者说他们的目标会怎么样?我们已经花费了很多的时间和金钱,但结

果是抱怨,来自客户和我们双方的抱怨。这里不仅仅是交流的问题,还有很多思想和技术层面的症结所在。客户没有对他的市场有一个清晰的概念,他不知道他的用户群的目标是什么,他只知道他们要什么。从傻瓜式到面向高中级客户,没有计划的变更和不切实际的市场分析,很难不出问题。我们来看看客户面向的市场用户粗略分析:

图略(涉及商业秘密;))

1-1 用户分析图

首先这个图不是来自客户,而是我在分析某个机能的时候用的辅助图。这里是我对各个大的模块的用户分析,也就是用户通过这个模块要做什么,要实现什么目标,以及谁或者说哪个角色用到什么模块。几个角色我就不说明了,主要关注两个词:Novice, expert。他们的含义,已经不在这个用户分析图上,而是反映了一种观念。

我们傻瓜式的软件思想,出发点和目标,都有些问题。首先,将用户看作是傻瓜,这是一个致命的错误,没有人愿意永远是novice,只要给他们时间,他们会成为熟手。用户是一群聪明但是很忙的人。傻瓜式,只是给新手准备的,前面说过,没有人愿意停留在新手的位置。傻瓜式相机当时是很多不懂照相人的福音,但我们看到现在完全傻瓜式的相机,市场上几乎见不到踪影。但很多相机都有傻瓜功能,一按就能照相,例如数码相机的自动照相功能。我们都有体会,只要你有时间并且不讨厌摄影的话,会自觉不自觉地自己去调焦,定景,设置环境等等,而不会满足只知道按一下按钮。

有一句话:大家都是俗人。虽然这句话在不同的场合,要么是拖人下水,要么是寻找籍口,从另外的角度而言,这描述了一个事实:平庸的人占大部分。这虽然伤了很多人的自尊,但这是不争的事实,否则这个世界就无宁日了,这也是值得庆幸的事情,因祸得福。这句话放到市场用户辨识上,可以这么说,介于新手和专家的人占大部分,一个软件就是为这部分人服务,为中间用户服务。这个认识,我们始终没有意识到,而是在产品发布出去之后的反馈看出来一二。很多“很有卖点”(客户语)的机能没有人用。傻瓜式的操作抱怨的人也不多,哪怕是有些瑕疵。

我们有一个经验,我们设计东西的时候,先作GUI设计。这是很多人都清楚地事情。我们为什么要先作GUI,为了减少以后修改的代价。这也许是很多人的答案。从满足用户的目标角度看,我们可以看到这个流程设计人的初衷:GUI是用户和我们开发人员的一个交叉点,是两种视角的交叉点,从用户角度看(这叫做用户模型,或者叫做用户心智模型,也叫做表现模型),他们想要的一个样子;从开发人员的角度看(实现模型),我们要做成的样子。我们说过,用户并不确切知道他们想要的东西。一个GUI设计好了,客户Review通过,并不代表这个GUI就是设计好了,客户也许不是最终用户,也许他仅仅是一个用户。我们现在的GUI设计偏向于实现模型,比如一个按钮实现一个功能,一个对话框对应一个模块等等。这样的结果,往往使得用户很困惑,不知道怎么用我们的软件去完成他们的目标。软件是要避免实现模型,而要支持用户心智模型。在这一点上我们可以说走了很长的弯路:我们将软件推给用户“Review”,可以说这不失为一种好方法,尤其是面对今天的市场环境。但我们要怎样看待用户的反馈,用户的反馈不能直接作为需求,对于这一点认识,我们是在不断给界面打补丁之后得到的答案。从用户反馈来看,他们对很多逻辑,我们自以为设计的很好的,为用户考虑得很好的地方,很迷惑。我们有些地方就是直接暴露了内部的实现逻辑,而不是行业逻辑。

举一个例子:用户模型里,有删除墙和显示或隐藏墙的逻辑。我们内部的实现,由于某些原因,墙删除的时候,没有真正的删除,仅仅是不显示,不被计算。我们的界面是这样的显示逻辑:

 [ ] Missing wall  [ ]Display wall

Missing Wall 默认不被选择,也就是墙能够被显示和计算。而后面的Display wall表示是否显示墙面。如果不显示墙面,则显示墙基(墙的横截面)。 要显示墙基的用户逻辑,我们是用两个逻辑共同表达。非常的晦涩难懂。这个逻辑设计有以下几点问题:

1)  界面用词反映了内部逻辑,晦涩的Missing wall(逻辑和字面含义都很晦涩)。

2)  混乱的逻辑,反映了内部逻辑。

其实用户想要实现的目标是:创建墙,删除墙,显示墙面,显示墙基,仅此而已。他从界面上很难不加思索的去达到他的目标。

以上的那些认识,是交了学费之后才意识到的东西。这也是我为什么提艰难的实践的原因。我们忽视了很多东西,有人说聪明的人跟别人学习,参照别人的界面去做,仅仅是学习皮毛,如果不从根本上去理解界面开发后面的含义,那也要向我们一样,交学费才能有所认识,普通人跟自己学习。我希望读者能够做一个聪明的人。

怎样去做识别用户目标,可以去做定性和定量的研究。如何去做,很多书里都有介绍,这里不在做介绍。有了认识,去学习就会事倍功半。

4.      总结

    GUI界面的开发,是一个常见的话题。谈得最多的就是,规则如何如何,有舍本逐末的嫌疑。这里面最缺的其实就是一个认识,或者说是概念上的认识。以用户的目标为目标,去识别用户群(不是商业上的用户群定位,而是这个定位后的用户群的人的分析,以及人本思想),从而来设计界面,实现界面。去描摹他人的界面,只能得到一个似曾相识的用户印象,与用户最终目标的实现还很有距离,有时候还会背离。

 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值