程式师的使用介面设计手册第九章:一个产品的设计程序

作者:周思博(Joel Spolsky)
译:Paul May 梅普华
Tuesday, May 9, 2000 A part of Joel on Software, http://www.joelonsoftware.com

我们已经讲过良好设计的原则,不过原则只是提供方法来评估并改善现有的设计。不过…一开始要如何找出正确的设计呢?很多人会先写出一大本功能纲要,涵盖所有想到的功能。然后设计各个功能并把功能连到功能表项目(或网页)上。等他们完全后,程式(或网站)就会具备所有要的功能,不过用起来并不 顺畅 。人们会看着程式却不知道它能做什么,也不知道要如何完成他们要做的事。

微软对这个问题的解决方法是一种叫「活动式规划(Activity Based Planning)」的方法。(就我所知,这个概念是Excel团体的Mike Conte所发明的,他后来做烦了就改行去当赛车手)。其关键所在是要找出使用者会进行的_活动_ ,然后努力让这些活动很容易完成。用下面的例子来解释最为贴切。

你决定要架一个网站让大家可以制作贺卡。如果选用较简单的作法,你可能会列出如下的功能列表:

1.把文字加入卡片
2.把图片加入卡片
3.由卡片库取得预先设计好的卡片
4.传送卡片:
a.透过电子邮件
b.列印出来


如果缺乏较好的方法思考这个问题,很可能就会做出一个大约1984年代麦金塔的典型使用介面:一个一开始有张空白卡片的程式,有几个功能表选项可以加入文字或图片、由卡片库中载入卡片、以及送出卡片。使用者得坐下来浏览各个功能表,尝试找出所有可用的命令,然后各自找出如何结合这些基本命令制作出一张卡片。

活动式规划要求你必须找出一个使用者可能会做的活动清单。所以你就找可能的使用者谈,结果得出这「前三项」列表:

1. 生日贺卡
2. 宴会邀请卡
3. 结婚纪念卡

现在暂时不要用程式员的想法考虑程式(也就是想着_制作一张卡片要哪些功能_ ),要像使用者一样地考虑(也就是使用者会做哪些活动)。主要的活动是:

1. 送一张生日贺卡
2. 计画一个宴会,然后邀请大家来参加
3. 送一张结婚纪念卡

突然间_各式各样_ 的点子都出现在你脑海里。所以一开始可以显示如下的选单而不需要用空白卡片:

你想要做什么?

  1. 送一张生日贺卡
  1. 送一张结婚纪念卡
  1. 送一张宴会邀请卡
  1. 由空白卡片开始

这样使用者会突然发现你的程式变得_非常_ 容易上手,他们不再需要先浏览功能表了。因为基本上程式会引导他们逐步完成所有的活动。(这里会有个风险,如果你没有选对活动,就会疏远或搞混那些原本会用你的程式的使用者,比如说要送贺年卡却找不到选项。所以要小心挑选能涵盖大部份目标市场的活动。)

光看到这三个活动就会出现很多可以加的好功能。举例来说,如果你正在送一张生日或结婚纪念卡,可能希望能在明年提醒你寄卡片给同一个人…所以你可能会勾选写着「明年提醒我」的选项。另外宴会邀请卡都会需要回覆是否能参加,所以可以加个功能让你以电子方式收集回函。这些点子几乎是光看到使用者会做的 活动 就浮现了,不过看着应用程式的_功能_ 是不会想到的。

这个例子没什么;不过对正式的应用程式来说,活动式规划的好处就更可观了。当你从头设计一个程式时,你对使用者会做的活动已经有个想法了。把这个想法弄清楚一点都不难,几乎不必费什么工夫,只要和同事做些脑力激荡,把可能活动都写下来,然后决定把重点放在哪些项目。强迫自己把这些活动写在纸上,对你的整体设计帮助很大。

当你在制作现有产品第二版时,活动式规划会变得更重要。这时候观察客户样本使用你的程式做些什么事,可能会是件很重要的事。

从Excel 1.0到4.0这段期间,微软里大多数人都认为最常见的使用者活动是做财务上的_模拟_ 分析,(比如改变通货膨胀率看看获利所受到的影响)。

当我们设计Excel 5.0时开始正式使用活动式规划,大概看了五个客户使用产品之后,就了解到有很多人只是用Excel来记录_清单_ 。他们完全不会输入任何公式或做任何计算!我们以前根本没有考虑过这件事。结果发现在Excel中保存清单比其他活动普遍得多。而这也让我们发明出_许多_ 能更容易地保存清单的功能:更容易的排序,自动资料输入,帮助你看到清单某一部份的自动筛选功能,以及多用户功能(能让多人同时编辑同一份清单,Excel会自动处理所有冲突)。

当Excel 5正在设计时,Lotus推出了一套「全新典范」的试算表Improv。根据新闻稿的说法,Improv是全新世代的试算表,能把之前所有的产品都干掉。由于各种奇怪的理由Improv先推出了NeXT版本,这对产品的销售当然没有帮功,不过却有很多聪明人认为Improv之于NeXT就像以前的VisiCalc之于Apple II:它会是个_杀手级应用_ ,会让人们为了用一个程式而去买全新的硬体。

当然啦,Improv现在已经是历史的注脚了。在网路上搜寻这个名字,唯一找到的是一位太有条理的仓库经理不知为何所建的网站,里面列出他们卖不出去放着积灰尘的存货。

为什么呢?因为在Improv里几乎不可能只制作列表。Improv设计者认为大家都是用试算表来建立复杂的多维财务模型。可是如果他们去调查一下,就会发现制作列表比多维财务模型常用太多了,可是在Improv里就算有办法制作出列表,也是非常的 麻烦

所以活动式规划不光是能帮助应用程式初版(你必须猜测大家所想做的事),对于打算升级的程式更是有用,因为你能了解客户正在做的事。

另外有一个来自网路的例子,就是deja.com的演进,它刚开始是个名为dejanews的庞大Usenet可搜寻索引服务。最初的介面只有一个编辑框,写着「在Usenet中搜寻 废话 」,就只有这样。在1999年少量的活动式规划显示,一般使用者的活动是研究产品或服务,比​​如研究「我该卖那一种车子」之类的。后来Deja整个重新组织过,现在已经偏向于产品意见搜寻服务了:Usenet搜寻能力几乎被完全隐藏起来。这对用该网站搜寻Matrox显示卡是否能用于Redhat Linux 5.1的少数使用者来说很烦,却使得绝大多数只想买到最佳数位相机的使用者更喜欢。

活动式规划还有另一个好处,就是能让你做出一份_不_ 要做的功能清单。不管你是要制作_任何_ 种类的软体,都会发现时间只允许完成1/3的功能。而决定功能要做或不做的最好方法之一,就是去评估_哪些功能支援最重要的使用者活动_ 。

想像使用者。

业界最顶尖的使用介面设计者都同意一件事:你必须先创造并描绘虚构的使用者才能开始设计使用介面。你可以回想我在[本书介绍](/wiki/The_Joel_on_Software_Translation_Project:%E4%BD%BF%E7%94%A8%E4%BB%8B%E9%9D%A2%E8%A8%AD%E8%A8% 88%E6%89%8B%E5%86%8A%E7%AC%AC%E4%B8%80%E7%AB%A0 “The Joel on Software Translation Project:使用介面设计手册第一章”)中所说的虚构使用者皮特:

皮特是在某家技术性书刊出版社里工作的会计师,使用视窗有六年经验,主要在办公室用,偶而也会在家里用。皮特很能干而且很技术性。他会自己安装软体;会阅读PC Magazine,甚至还能写些简单的Word巨集协助办公室的秘书开发票。他家里有装缆线数据机。皮特从来没用过麦金塔。「太贵了」他会告诉你说「128MB RAM的700 Mhz PC才多少钱…」。好了,这就是皮特。我们都知道了。

当你在读这段叙述时,你几乎可以_想像出_ 一个使用者。我也创造了另一类的使用者:

派翠西亚是个英文教师,出过很多广为人知的诗集。她从1980年起就已经用电脑作文书处理,不过总共只用过Nota Bene(一套古老的学术用文书处理器)和Microsoft Word两套软体。她不想花时间了解电脑运作的理论,而且习惯把所有文件不更改目录直接存档。

很显然的,设计给皮特用的软体和设计给派翠西亚的软体一定会有相当的差异,当然也和给麦克(16岁,在家里用Linux,会上IRC聊好几个小时,另外绝对不用"Micro$oft"的软体)用的不一样。

当你创造出这些使用者之后,要考虑你的设计会变得容易许多。举例来说,很多程式员都会高估一般使用者弄懂事情的能力。每次当我写说命令列使用介面很难用,总是会收到一堆邮件说命令列功能超强,因为可以完成像’gunzip foo.tar.gz | tar xvf -‘之类的工作。不过当你想想看要派翠西亚键入"gunzip…“时,立刻就会明白这种介面永远不会符合她的需要。考虑一个「真实」的人能让你有移情作用,让你做出符合这个人需要的功能。(当然啦,如果你是为纯熟的系统管理员制作Linux备份软体,就得创造像「法籣克」这些的角色。他拒绝碰Windows,而且用「作业系统」形容Windows时总是加个问号,用的tcsh是自己改过的版本。他的机器整天都在执行X11 而且开了四个xterm终端机程式,另外还同时开了大约11个xperf程式去监看所有电脑的CPU使用量。

总结起来 ,设计良好软体大概需要六个步骤:

1. 创造一些使用者
2. 找出重要的活动
3. 找出_使用者模型_ :使用者期望如何完成这些活动
4. 草拟出初版的设计
5. 一直反覆把设计修改得更容易,直到虚构使用者能轻易使用为止
6. 找真人来看着他们试用你的软体。特别注意人们出问题的部份,这很可能就是程式模型与使用者模型不符的地方。

良好的使用介面能让软体大卖,不过也会_让人们快乐_ ,因为这是人们完成想做的事时的反应。这也说明为何使用介面设计是个能令人满足的领域。还有什么地方能让你有机会让数百万人更快乐一些呢?

bullet.gif 这本书的印刷版本比较长,里面有整整七个网路版所没有的新章节。还可以让你拿到沙滩上看而不必担心沙跑进手提电脑的键盘里。

这些网页的内容为表达个人意见。
All contents Copyright 1999-2002 by Joel Spolsky。All Rights Reserved.