首先回顾一下《变身博士》中著名的精神病,他的发病起因大抵可归结为一条——人格分裂。再来思考一下自己是否有分裂的迹象,当然,我没有,至少我不会当众承认。然而澄清的世界在互联网面前改变了,任何人都可以申请N个不同的帐号来扮演不同的角色,这不是人格分裂又是什么?既然计算机只认得0和1,它就不会在乎你的长相,你是否是个变异的澳大利亚袋鼠,更不会在乎你是财务部发票管理员还是分公司发票管理员,但是,我们是否有必要规定:一个帐号只能对应一个角色,如果你想同时拥有多个角色,那么你必须申请两个ID。NO!NO!NO!有人大声反对,为什么我不能同时是超级管理员还是分公司发票管理员?你当然可以,但是如果这两个角色看到的页面不一致怎么办?取他们的并集?以权利较大的一个为准?还是其它的方式?如果有些页面取并集,有些页面取权利较大的一个,有些页面又以其它方式,这又如何设计?如果你的设计成功了,你仍然要考虑其扩展性——既然已经适应了这么复杂的方式,等着瞧吧,客户必然会要求再复杂一点。
听起来似乎我一直赞成互联网上的人格分裂,并非如此!我有限的大脑空间记不住一大堆帐号和密码,而且一些变态的规定要求在一定时间后必须更换密码,更变态的是这些密码必须大于8位且同时拥有数字、字母和特殊字符!没错,作为用户,你要么同意接受开发人员的观点,要么只能停止使用。
好了,现在让我们远离人格分裂,来看一些缺乏社交能力的例子。
图1 登陆页面
猜猜“本地登陆”和“远程登陆”是什么意思,给你十秒钟时间。
计算机专业知识告诉我,“本地登录”是在局域网内登陆;“远程登录”指坐在家里连接到办公室的服务器。没错,我就是这么想的。某日,一个基层用户(请注意,是用户,不是客户)打来电话,听声音大概是个即将领退休金的老大妈:“那啥,我想问一下,我是东北那边旯的,你这个‘本地登录’是不只能上海人用?我选‘远程登录’咋不好使捏?”
看见了吧,问题来了。其实这个系统只能用于内部专网,“本地登录”和“远程登录”各维护了一套密码系统:“本地登录”使用姓名缩写或管理员分配的帐号登录;“远程登录”使用公司E-mail作为帐号。
让每个词汇都有其特殊、单一的含义,永远不要让用户猜测,尤其避免词不达意。
图2 角色管理页面
这个页面有三个缺陷,我想明眼人一眼便会看出上图缺少一个必要元素——查询按钮。6页信息或许能勉强忍受,16页呢?100页呢?碰巧你的角色名正好在第50页,那么你必定会抓狂,大骂这个系统是垃圾。
第二个缺陷是缺少全选按钮,其作用不必细说。
第三个缺陷可能不太明显,就是那个序号列。请问序号在哪里?
缺少必要的操作键会使我们的系统看起来不够专业,进而影像客户的好感度。
首先我必须承认,在我经历的所有项目中,友好性操作都作为最后一项指标,即使被测试人员指出,其等级也是最末级。这没错,毕竟软件以实现功能为主,华丽花哨的界面通常被开发人员不屑一顾。
是这样吗?只要把眼光稍稍放远一点(不是蹬高远眺,只是看看隔壁的邻居),就会发现,优秀的软件必然有友好的操作界面。
让我们回顾一段传奇的往事:
一个硅谷最据权势的风投家约翰·杜尔(简单说,他在Google上投了1250万美元,赚了300多倍,他也是针对iPhone app投资的iFund的老大)主办的内部会议上,乔布斯同学迟到了。迟到了还不算。在他来之前,大家被这个待演示的玩具弄的很开心,等他来了,所有人要正襟危坐开始做PPT演说,他就开始踢场子。
演示者对自己出产品很满意,他问乔布斯:“你觉得这个产品这么样?”
“我觉得这是屎!”乔布斯回答。
对方被震慑了,乔布斯说出了其中的原因:“它的外形不创新、它不优雅、也感觉不到人性化……你拥有让人难以置信的创新的机器,但外形看上去却非常传统。”
创新、优雅、人性化造就了iPhone。
当然,我们的系统没法与苹果相比,但我觉不会轻易承认我们的系统不好用,我甚至可以向用户保证,我们的系统每个世纪只需重启一次,它简单到一只独眼蛤蟆都能轻易使用,而且它规定不许做的事是世界上所有文明公国明文禁止的!
说大话前还是先看看其中的一个操作界面:
图3 分配角色页面
那个选择角色的操作……哎……为了同时选择多个角色,我必须按住Ctrl键,如果没按住怎么办?对不起,之前选中的角色都会取消。还记得吗?角色信息一共有6页。
想修改它并不难:
图4 修改后的分配角色页面
修改后的页面我们并不陌生。
如果有一天糟糕的操作形式连你自己都无法忍受,那么请在它没有造成更大危害的时候即时修改。
图5 页面示例1
图6 页面示例2
上面两个页面单独看都没有问题,但放在同一系统中就会显出不和谐。图5的查询域将下拉框放在文本框下方,图6正好相反;图5的登录用户没有对列表中数据的审核或修改权限,所以操作列没有任何信息,图6中用“—”表示。
也许这种问题是最难发现的,但是既然你不想做一个人格分裂的精神病,大概也不会希望系统如此吧。
我认识一个未成年的程序高手,他每次发现Windows强迫他做一些操作时(比如停掉一个服务的同时系统会提示你其它相关服务也会停止)都会破口大骂,好像由他来做会更好似的,难道他忘了自己只是个穿着背带裤并且满脸青春痘的小屁孩?
作为软件制造者,来看看用户是否会同样骂我们。
图7 复核提示框
为什么我非要按一下键盘?为什么我需要输入1和0?东北老大妈又问了:“我输入了1,为啥告诉我输入不合理?我已经办了上海户口了。”我告诉她要输入英文半角字符,她又问了:“半饺是啥玩意?在哪有卖的?”
修改这个问题也不难:
图8 修改后的复核提示框
只是对问题做个小小的诠释就可以解决“半饺”问题。
当我们录入发票数量时需要同时填写发票号码段,包括“发票号码起”和“发票号码止”两部分,它们只允许输入8位数字,且必须满足发票号码止 =发票号码起 + 8。这合情合理,问题是当你每次都必须手动计算并输入“发票号码止”时就不合情不合理了。
避免浪费脑细胞的多余操作。还记得那个经典的例子吗?在直角坐标系内怎样用一个类表示线段?你是否定义了一个多余的length属性表示线段的长度?
一个计算资金的例子:两个浮点类型数相减,1.0-0.1,其结果是多少?小学生都知道是0.9,但是很遗憾,计算机不能精确表示这个数字,它被表示成0.899999999。你试图对用户解释这种现象吗?那简直是浪费时间,他们才不会在乎什么二进制和双精度。
好了好了,难道我们的系统真的没法用了?客户一直用的挺舒服啊,他们并没有抱怨。没错,他们的确不会当着我们的面抱怨。可以做一个简单的调查问卷,让人们回答:“如果你可以选择,你是否会选择健康的饮品?”这种白痴问题有人回答“不会”吗? 接下来,你准备一瓶白开水和一瓶可口可乐,暗中观察那个选择“会”的人会选哪一个。所以,别太相信表面现象。
类似的例子还有许多,这需要我们在今后的工作中尽量避免,制作一个友好软件,让用户快乐地使用。等等,我好像跑题了,我要讨论的是精神病领域的问题……
2009-04-30
本文写于8年前,当时的UI现在看起来相当老土
作者:我是8位的
出处:http://www.cnblogs.com/bigmonkey
本文以学习、研究和分享为主,如需转载,请联系本人,标明作者和出处,非商业用途!