软件和管家

软件产品的目标是为人类服务。好的软件会迎合人类的奇思怪想,它可以使出九牛二虎之力、使用复杂高深的技术,只是为了让一个正在看喵喵猫图片的用户省去一次鼠标点击之力。好的软件对待用户的方式就像是一个管家对待他的主人。

现在,我们这些软件开发人员待遇好,名声在外,智力超群;所有这些特征跟一个管家的特征完全相反;这就是为什么我们如此容易就忘了——其实我们的软件所做的事正像一个管家。这也就是我为什么要大家记住这样一个观点: 软件就是个管家。

在这篇文章里我想讨论一个有趣的观点,我认为每个开发人员都该好好考虑一下这个问题。这就是如何视软件为管家。

我在这里说的管家,是指仆人,服务员,或其它你习惯的叫法。这种人是来服务你的饮食,收拾你的房屋,替你做所有又累又脏的工作,而当你不想看到他时,他会立刻离开、消失掉。

管家的工作就是为主子服务。如果主子口渴,他会端着一个盘子,上面放着各种饮料让主人选。管家看起来要顺眼(例如,要穿一件好看的制服),但跟那些公司里的业务人员的穿着不同。管家没有自尊——他们就是来服务的,服务完了就消失。

这些正是一个软件产品(或一个小器械,或任何的技术设备)对他的用户的服务方式。

为了易于理解,让我们来看一个像管家那样干活的软件的例子。

优秀的管家式的工作的例子:Google Chrome浏览器标签页

Chrome浏览器标签页的工作方式就是一个很好的管家式的工作的例子,尤其是它的关闭按钮的定位方式,它的标签宽度的变化方式。这些特征是Basil Safwat在这篇文章里揭露出来的。下面是其中最重要的一段:

[…]

现在,Chrome将会调整标签的宽度来填补剩余的位置,但只是当你的鼠标离开了浏览器的功能区后它才会这样做;也就是说,当用户完成了在功能区上标签相关的操作后,把注意力移走后,它才会做这些。下面就是之前和之后的不同反应:

当鼠标移出工具栏区域后,标签会调整大小。
[…]

如果你想明白Chrome究竟是怎么做的,我建议你读一下原始的详细说明,简言之,当你关闭一个Chrome标签时,它会让其它的标签保持同样的宽度,这样你不用移动鼠标就能关闭下一个标签。
如果你把鼠标移走,去干其它的事情,那Chrome会认为你不再有兴趣去关闭其它标签,这时它就会放大标签的宽度,让标题更容易阅读。

这是Chrome的一个绝好的对待用户像管家那样服务的例子。

糟糕的、非管家式的服务的例子:99%软件都是这样

很不幸,就目前软件界的现状,你不用费什么力气就能找到一个非管家式的软件。几乎我使用过的所有软件,从操作系统到文本编辑器,到我的空调遥控器——它们全部,间或的,对待我就像我是仆人,它们是主子。(当然,事情不是非黑即白;一个软件可能通常表现的像个管家,但有些时候会表现的不然;反之亦然。)

哪些是非管家式的表现呢?我列出了让我讨厌的几个:

  • 有些程序当你正要使用时突然蹦出一个欢迎画面,占掉了大半个屏幕,持续十几秒,正好挡住你的使用。
  • Java系统托盘图标,当你运行一个Java程序时它会弹出泡泡提示,提醒你正在使用Java。
  • 我家的空调,每当我从”自然风“调到”制冷“时,它总是自动的把风向挡板调到向下,即使我每次都把方向设置成向上。为什么你要跟我对着干?

我没有兴趣列出更多的这种事情——我们都在痛苦的忍受着。那么,让我们来说说为什么这种事情会发生。

我对为什么会发生这种事情的见解

”软件开发者“待遇好,名声在外,高智商。大多数好的开发人员都有很强的自尊,这很好——自尊心会激励人做出杰出的工作,开发出优秀的软件。

但这种自尊对于那些想去做管家的人来说就有问题了,因为管家的一个重要的品质就是没有自尊!

冲突就在这:开发者自尊心很强,(这没有任何不对的),但管家不能有自尊。

当一个软件开发人员在开发软件时,他要时刻铭记,他的软件可以是一个架构上或设计上的杰作,但软件的任务是要做一个有效率的管家,做好所有的事情来取悦主人,然后就消失掉。

我想,如果我们能够明白这种自尊上的冲突带来的问题,我们就更容易发现我们工作中存在的这些问题,在我们创造出一个像主人、而不像仆人的软件之前,幡然醒悟。

[英文原文:Thinking of your software as a butler is difficult but important ]
分享这篇文章:

2 Responses to 软件和管家

  1. 世态炎凉 says:

    早就喜欢CHROME此贴心的设计。

  2. 李程 says:

    是的,好的软件就是让用户感觉不到设计的存在。

发表评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据