选择

Joel on Software

 

选择

by Joel Spolsky

Wednesday, April 12, 2000

User Interface Design for Programmers 第三章

原文链接   http://www.joelonsoftware.com/uibook/chapters/fog0000000059.html

 

 

      当你走进一家餐厅你看见一个写着"狗不得入内"的标志,你也许认为这纯粹是禁止令:餐厅主人不喜欢狗,因此当他开餐厅的时候立起了这块牌子。

      如果只是这样的话,那就应该会有"蛇不得入内"的标志;毕竟,没有人喜欢蛇。也应该有"大象不得入内",因为当它们坐下的时候会毁坏椅子。

      放这个标志是有历史原因的:历史表明过去人们常常把他们的狗带进餐厅。

      大部分禁止性的标志存在的原因是机构的主人对别人做某件事反感且不耐烦,因此做了一个标志要求他们不要这样做。如果你走进一家有55年历史的餐馆,比如New Haven的Yank Doodle,墙上写着像"请不要把背包放到柜台"的标语,考古学证据显示过去人们常常把旅行包放到柜台上。凭着标志的时间你可以计算出什么时候当地的学生流行背背包。

      有些标语像弄清楚原因难度要大点。"请不要把玻璃瓶带进公园"肯定意味着有人裸脚踩到了破碎的玻璃上,而且可以肯定他起诉了这个城市。

      软件也有类似的考古学印记:就是选择对话框。选择Tools菜单的Option 对话框你会看到软件设计师对产品设计上的争论。我们应该自动打开用户使用的最后一个文件吗?应该!不应该!这就有了2个星期的争论,没有人想伤害其他人的感觉,在他们争论期间程序员出于自卫把#ifdef放进程序。最后他们决定在程序中做一个选项。

      这两种人根本不需要争论:这是一个两难的困境。我就是决定不了我们是否应该优化数据库的容量还是数据库的速度。不管哪个决定,都在Windows操作系统的历史上以一个最愚蠢的"向导"对话框做了了结。这个对话框如此愚蠢以致于可以获奖了。一个全新领域的奖项。当你像要在帮助功能中寻找帮助的时候就会弹出这个对话框:

 

      这个对话框的第一个问题就是这会使人分心。你想要在帮助文档中寻找帮助。在这个关键时刻,程序漠不关心的问你数据库选小的,大的,自定义还是包着巧克力的。同时,这个超级缺德的对话框给你上了一小节迂腐的课讲解说这里会创建一个列表(或对话框)。这里有3个段落,大部分是完全是迷惑人的。还有令人痛苦的难看的短语"your help file(s)"。你看,你可能有一个或者多个文件。好像在这时候你还关心帮助文件是多个还是一个。好像这样写是最准确的。写这个对话框的程序员显然担心如果帮助文件多于一个那么说help file就不正确了,不是吗?

      不要让我说有多少需要帮助的人是不能理解这种深奥东西的。甚至是高端用户,有计算机科学专业博士学位知道所有索引的程序员,也无法弄明白选择了这些选项之后会怎么样。

      更糟糕的是,这个甚至不是对话框...这是向导(第二页说了类似"感谢你为提交了这个而浪费了不必要的时间"的话)。而且可以很好的看出软件设计师对哪个选项最好有自己的想法;虽然这样,他们还是麻烦你让你选择推荐选项。

      这给了我们第二个主要的界面设计原则:每次你给用户提供了选择,你就是叫用户自己做决定。叫用户做决定本身并不坏。自由选择也可以很好。人们就很喜欢在星巴克点咖啡类的饮料,因为他们有很多选择。中号-半咖啡因-脱脂-mocha-valencia-搅拌,加热。

      对于用户并不关心的事情你也让用户选择那就出现问题了。在帮助文档这个例子中,人们看帮助文档是因为他们的一项必须要完成的任务有麻烦了,比如做一个生日邀请函。他们的生日邀请函任务不幸的被打断了因为他们不知道怎么画倒挂的气球,不管怎么样,他们找了帮助文档。现在,微软的那个惹人厌的帮助文档目录引擎程序员用他自己认为对真个帮助文档重要的华而不实的想法,鲁莽的,放肆的打断了用户而且教他们关于列表(或数据库)的东西。这第二次的打断完全和生日邀请函无关,而且会使用户困惑继而惹怒用户。

      相信我,用户关心的东西比你认为的要少。他们用你的软件完成任务。他们关心的是任务。如果这是图形程序,他们可能希望把控制每个像素作为最细致的细节。如果这是制作网站的工具,我敢打赌他们就执着于让网站看起来和他想要的一摸一样就。

      不管怎么样,他们一点也不关心程序的工具栏是在窗口的上面还是在下面。他们并不关心帮助文档怎么样编入索引。他们不关心很多东西,而且为他们做这些决定是程序设计师的责任。仅仅因为设计师不足够努力思考决定哪个选择更好,而把像这样的选择强加给用户,这样的软件设计师已经到了傲慢的程度了。(就像WinHelp那样,把强加给用户困难的选择转变成向导以掩盖软件设计师不能自己做决定这个事实,这样就更糟糕了。好像用户是一个需要接受2阶段小课程关于选项的教育的傻子,以使他们做出可靠的决定。)

      已经说过设计就是做决定的艺术。当你设计一个放在墙角的垃圾桶,你必须在相互矛盾的需求中做决定。它必须重因此不会被风吹走。它必须轻因此能让清洁员清空它。它必须大因此可以保存很多垃圾。它必须小因此不会挡住路上的人。当你设计的时候,强迫用户做这些决定就是你放弃你的责任,你可能没有做自己的工作。其他人会作出一个更简单的软件,完成同样的任务干扰更少,那么大部分用户会喜欢它。

      当1990年Microsoft Excel3.0出来的时候,这是第一个使用叫做工具栏这个新特性的应用程序。这是合理的特性,人们都喜欢他,而且别人都模仿它--看到一个应用程序没有工具栏就很不寻常了。

      工具栏如此成功因此Excel团队用一个发行给少量人用的特殊版本的Excel做了一个实地调研;这个版本统计了什么是最常用的命令然后报告给微软为下一个版本做准备,他们增加了另一行工具栏按钮,这一次包含了用户最常用的命令。很好。

      麻烦就在,他们从来没有解散工具栏团队,团队看来并不知道什么时候才是最好的。他们想要能自定义你的工具栏。他们想要你能把工具栏拖动要屏幕的任何地方。然后,他们开始考虑菜单栏其实就是一个特殊的工具栏,只是用文字代替了图标,因此他们让你也可以把菜单栏拖动到屏幕的任何位置。极度的自定义。问题:没有人关心!我从来没有看到谁像要把菜单栏放到除了窗口顶部的其他地方。这里是一个(坏的)笑话:如果你像点击菜单栏上的文件选项,你不小心在选项的最左边拉动了一下菜单栏,现在你拉动了整个菜单栏,并把它它到了一个你可能最不想它在的地方:拦住了你正在编辑的文档。

 

      你有多少才次看到这种情况?一旦你不小心做了这样的事情,你并不清楚如何才能恢复原状。因此现在我们有一个选择(移动菜单栏)没有人想这样做(好吧,可能全人类有0.1%)应该让位于几乎所有人。

      一天,我的一位朋友打电话给我。她发送email有麻烦。有一半屏幕变灰了,她说。

      一半屏幕变灰了?

      我在电话里花了5分钟才弄明白发什么了什么事情。她意外的把Windows的任务栏拖到了屏幕的右边,然后又意外的拉宽了它:

 

      没人会故意做这样的事情。有大量的计算机用户不知道如何才能避免这种麻烦;根据定义,当你意外更改了你程序的配置,你并不会知道如何重新配置。当他们的软件开始出现点问题,知道有多少人是先卸载然后再重新安装多少会令人震惊,因为至少他们知道如何卸载和安装。(他们学会先卸载,否则的话所有的错误的自定义可能又存在了。)

      "等等"你说。"给那些高阶的想要调整自己的环境的用户一些选择是非常重要的!"实际上,并没有像你像的那么重要。这提醒我当我像要更换Dvorak键盘的时候。麻烦在于,我并不使用一台电脑。我使用各种电脑。我使用别人的电脑。我相当频繁的使用家里的3台电脑和工作时候的3台电脑。我工作时候使用测试实验室的电脑。自定义环境的麻烦在于它并不会复制,因此不值得它所引起的麻烦。

      大部分高阶用户频繁使用多台电脑;他们每过几年就升级一次他们的电脑,他们每3星期重装一次操作系统。他们第一次意识到在Word中他们可以重新映射键盘,他们按他们自己的喜好改变的所有的东西,但是一升级到Windows95他们的那些设置就丢失了,而且工作时候的设置也是不一样的,最后他们就不回去重新配置环境了。关于这个,我问过很多身边的"高级用户";除非是为了使操作系统行为保持合理而做的最小程度的必要配置,他们几乎都不回自定义环境。

      每次你给用户提供了选择,你就是叫用户自己做决定。这意味这他们必须考虑一些事情然后做决定。这并不一定是不好的事情,但是,一般来说,你应该最小化别人必须做的决定的数量。

      这并不是意味着去掉所有的选择。用户不管怎么样都有足够的选择可以做:他们的文档的外观,他们文档的行为,或构成用户正在做的事情的其他任何东西。在有些领域,发疯了:给别人选择是很重要的:尽一切办法,越多越好。然而还有另外一种人们都喜欢的选择类别:改变事物外貌的能力,而不改变行为。每个人都喜欢WinMap皮肤;每个人都设置他们自己的桌面背景。因为那些选择只影响外观而不影响任何功能,而且用户完全可以忽略这些选择而完成自己的工作,这就是选项发挥作用的地方。

 

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值