别让我打开话匣子

赞扬“傻瓜化”

David S. Platt

在我的演讲结束之后,一个典型的书呆子推开其他与会者赶到我面前,第一个开始攻击我。他红着脸,语无伦次地说:“你刚刚用了一个小时告诉我们要让程序傻瓜化。真是可怕,你真该死。”

我赞扬了某个自动化磁盘备份程序。就像座椅安全带或避孕措施一样,磁盘备份程序只在你使用时才会工作。配置和运行备份(或避孕措施)的麻烦是导致它失败的主要原因。我所赞扬的程序采用无缝自动化方式避免了这些麻烦。在安装它后,用户就不用再管它了。用户无需指定要备份哪些文件,程序会自动将所有数据文件复制到远程服务器,此后会复制每个新文件或更改过的文件。用户可以进行的控制不多:他们不用提供自己的加密密钥,不用设置压缩级别,甚至不用计划程序何时运行,因为它始终在后台运行。这个书呆子强烈反对这种无控制状态,他不只说他不会买这个程序,还坚持说这个程序有罪,根本不应该存在,我居然还赞扬它,真是罪过。

我比大多数诘问者都有更多被诘问的经验,所以我对他进行了猛烈的回击:“福特从 T 型汽车中去掉点火正时杆是傻瓜化吗?他们用自动启动装置取代手摇曲柄是傻瓜化吗?”

书呆子:“不,这些做法很有道理。但无论怎样,用曲柄发动引擎是个硬件问题。”

我:“你的汽车上装 GPS 了吗?”

书呆子:“装了,它简直太酷了!” 

我:“它为你指引方向,说‘往左一条小路,选择中间那条岔道’,这是傻瓜化吗?不,你会说,‘哇,精确到一米,酷。’还有,电动座椅记住你的倾斜度设置,或者音响系统记住你喜欢的歌曲,这些又如何?”

书呆子还没有放弃争辩:“但是开车和用电脑都要费脑子,如果不够聪明,还是算了吧。” 

也许吧,但是这两种活动每过一年都可以少费一点脑子,我对此都很欢迎。多年以前,有人就教过我,汽车打滑时应采取点刹。如今,即使是廉价的防抱死刹车系统也远比最好的司机做得更好。并且,如今的自动牵引力控制系统大大减少了打滑的情况。这是让世界变得更好还是更坏呢?我认为是更好了,当然,如果你开了一家汽车修理厂则另当别论。 

所以,不要让我打开话匣子谈论“傻瓜化”这个词,它揭示出我们所持有的主观臆断和偏见。我们这些书呆子为我们的聪明才智感到自豪。对于那些不需要键盘模板就能记住命令键的人们,或那些在启动脚本出现在屏幕上的半秒之前就能大声说出每一行脚本的人们,我们会给予尊重。在我们的词典里面,最恶毒的词就是“愚蠢”。

如今一些书呆子讨厌让他们的程序易于使用,他们希望用户像以前那样苦苦挣扎。这种情形就像你曾经历大萧条时期的祖父母讨厌如今娇生惯养的年轻人一样:“在我小的时候,我们的校车可没有空调,没有舒适的活动躺椅,没有个人电视屏幕和 87 个卫星电视频道。统统没有!我们得步行 10 英里,穿过雪地,爬过山坡……”如今,一个赚钱的公司可容不下这样的看法了。如果你的汽车能变戏法一样地自己开动,或者我们有其他交通工具,因而不需要汽车,那为什么不这么做?

当然,“傻瓜化”必须要做好,这就要求设计人员明智地与用户进行交互,他需要知道如何从用户的角度考虑问题,忽略掉不够明确的边缘情况而使主要的用例变得简单,选择有用的默认值,从用户角度而不是程序实现的角度来解释所做的选择。正如我在 suckbusters2.blogspot.com/2007/02/another-application-that-just-works-at.html 上的博客文章中所讲,Windows Move Maker 的设计人员在这一点上做得就很好。

让我的听众如此愤慨的这个“傻瓜化”备份程序的意义在于,它实际上可让更多用户备份他们的数据,这使他们在发生磁盘崩溃、办公室被烧毁或笔记本电脑被盗时不至于丢失数据。我认为这极为聪明。

图像:GPS 界面
你说这是聪明还是愚蠢?

David S. Platt 在哈佛大学延伸学院以及世界各地的公司讲授 .NET 编程。他著有 11 本编程书籍,包括“Why Software Sucks”和“Introducing Microsoft .NET”。Microsoft 在 2002 年授予他“软件传奇人物”的称号。他想知道他是不是应该绑住他女儿的两根手指,以便她能够学会八进制算法。您可以通过 rollthunder.com 与他联系。