个人随笔
技术改变世界

软件设计-别给用户太多选择

本文转自书籍程序员部落酋长Joel谈软件《软件随想录》,也是前几年看的书了,突然又想起,所以分享到博客中。

2006年11月21日,星期二

我确信,微软公司有一个完整的团队在非常努力地开发Windows Vista里面那个Off按钮,开发人员包括用户界面设计师、程序员、测试员等。但是说真的,难道你们这些人能够拿出最好的成果就是现在这样?

Vista_StartMenu

每次用户要关掉计算机的时候,就不得不在9个选项中选择,看清楚,是9个选项,其中2个是图标,另外7个是菜单项。我认为,那两个图标应该是某个菜单项的快捷方式。我猜想, 锁的图标对应了菜单中的Lock项,但是我不确定开关(Off/On)图标对应了菜单中的哪一项。

许多笔记本电脑上,还有4个FN+功能键的组合键,可以实现关机、休眠(hibernate)、待机(sleep)等功能。如果把它们都算进去,用户就有13个选择。哦,笔记本电脑本身还有一个开关键,那就有14个选择。你还可以直接把笔记本电脑合上,这是第15个选择。关闭笔记本电脑居然一共有15种不同的方法!

你给用户的选择越多,他们就难选择,就会感到越不开心。随便举个例子,Barry Schwartz写过一本书The Paradox of Choice: Why More Is Less。让我来引用一段《出版者周刊》的书评:“Schwartz的著作在社会科学领域进行了广泛的探讨。他指出,大量令人眼花缭乱的选择在我们的大脑中泛滥成灾,令人精疲力竭。太多的选择最终限制了我们的自由,而不是解放了我们。正常情况下,我们美国人认为选择越多,我们就越幸福(宽松式的裤子还是休闲式的裤子)。但是Schwartz告诉我们,事实正好相反,他认为太多的选择实际上损害了我们内心的幸福感。”

每一次关机的时候,你都不得不在开始菜单的9个不同选项中选一个,这还不包括选择按下笔记本电脑上的实体开关按钮,以及选择直接合上笔记本电脑,这多少会让你每一次都感到一些不愉快。

可不可以改进?肯定可以啊。iPod甚至连开关按钮都没有。下面是一些改进思路。

如果最近你跟不懂技术的人士说过话,你可能注意到,他们连待机和休眠之间的差别也搞不清楚。这两个选项完全可以合并在一起,无碍大局。现只剩下8个选项了。

“切换用户”(Switch User)和“锁定”(Lock),这两个选项也可以合并,因为只有在系统锁定的时候,才允许第二个用户登录。有一点是肯定的,这样就免去了强迫用户退出系统的许多麻烦。现在又少了一个选项。

一旦你将“切换用户”与“锁定”合并,你还需要“退出登录”(Log Off)选项吗?“退出登录”的实际作用只有一个,就是帮你退出所有正在运行的程序。但是,“关闭电源”(Power off)也能做到这一点,所以,如果你很想退出所有正在运行的程序,只要关闭电源,然后再打开就行了。这样一来,选项又减少了一个。

“重启”(Restart)选项也能被去掉,如果你用到这个选项,95%的可能是你安装了一个新软件,它提示你需要重启,如果你确定,它就会帮你自动重启。对于其他情况,你只需要关闭电源,然后再打开就行了。于是又少了一个选项。选择越少,麻烦也越少。

理所当然地,你应当将图标和菜单合为一体。这样又可以再减少两个选项。最后,在我们面前的只剩下:

  • 待机/休眠(Sleep/Hibernate)
  • 切换用户/锁定(Switch User/Lock)
  • 关机(Shut Down)

要是将“待机/休眠”和“切换用户/锁定”合并成一个选项会怎么样?当你选择这个新选项的时候,计算机就自动弹出“切换用户”的屏幕。如果30秒内没有用户登入,计算机就自动待机。过几分钟后,就自动转为休眠状态。在整个过程中,它一直是锁定的。那么现在我们就只剩下了两个选项:

  1. 我现在要走开一会儿。
  2. 我现在要走开一会儿,并且我想将电源完全关闭。

为什么你要关闭电源呢?如果你很关注电源的使用,就让电源管理软件接手就行了。这方面,它可比你在行。如果你担心打开电脑的时候你会被电击,那么关闭操作系统的电源并不能彻底保证你的安全,你必须拔掉电源插头才行。另一方面,如果你的Windows操作系统可以保存内存中的数据,也就是操作系统在闲置时自动将数据从内存复制到闪存盘上,那么你关不关电源其实毫无影响,就算你处于“离开状态”,拔掉了电源,你也不会损失任何数据。市场上的那些新混合型硬盘(hybrid hard drive)能够以极快的速度完成这类任务。

那么,我们不多不少只剩下了一个“退出登录”(log off)按钮。就把它叫做“再见”(byebye)按钮吧。当你单击“再见”按钮时,屏幕就被锁定了。内存中还没有来得及保存到闪存的数据这时都被写进了闪存。你退出了登录,如果其他人想登录,他们会得到自己的桌面环境(session)。如果没有人要登录,你就可以拔掉整台计算机的插头。

对于我上面的精简过程,你不可避免地会列出一个长长的清单,上面写满了高明的、合理的原因,解释为什么每一个选项都是绝对必须的、不可缺少的。别那么麻烦了。你要说的东西我都知道。多出来的每一个选项肯定有其完全的合理性,但只要你不向你的叔叔解释在15种不同的关闭笔记本电脑的方法中他应该如何选择,一切就没问题。

这个例子突显出现实中存在这样一种软件设计风格,微软公司和开源软件运动中都存在这个问题,那就是程序员受到一种愿望的驱使,渴望方方面面都照顾到,让每个人都感到满意。但是,这种愿望的基础其实是一个不正确的认识,更多的选择会不会让用户感到幸福,我们需要重新思考这一点。

转载请注明出处王旭博客 » 软件设计-别给用户太多选择

分享到:更多 ()

评论 2

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    “这种愿望的基础其实是一个不正确的认识”如果你说得这么绝对,我的回复是:“苹果的产品是给不需要思考的人用的”。
    开发者之外的用户,在使用苹果产品的时候,已经被苹果同化了。
    而微软的用户在使用电脑时的可以完全保持自己的风格。

    廖羽1年前 (2016-01-16)回复
    • 其实各有利弊,还是基于实际情况,市场分析、用户习惯分析、各方面考量来做,可能比较合理一点 :)

      王旭1年前 (2016-01-20)回复