软件随想录(local.joelonsoftware.com/wiki)-2000年05月09日 使用介面设计手册第九章 – User Interface Design for Programmers

2000年05月09日 使用介面设计手册第九章 – User Interface Design for Programmers Chapter 9

 

 

The Joel on Software Translation Project:使用介面设计手册第九章

From The Joel on Software Translation Project

Jump to: navigation, search

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

作者:周思博 (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. 送一张生日贺卡
    2. 送一张结婚纪念卡
    3. 送一张宴会邀请卡
    4. 由空白卡片开始

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

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

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

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

从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的功能。而决定功能要做或不做的最好方法之一,就是去评估哪些功能支持最重要的使用者活动

想像使用者。

业界最顶尖的使用介面设计者都同意一件事:你必须先创造并描绘虚构的使用者才能开始设计使用介面。你可以回想我在本书介绍中所说的虚构使用者皮特:

皮特是在某家技术性书刊出版社里工作的会计师,使用视窗有六年经验,主要在办公室用,偶而也会在家里用。皮特很能干而且很技术性。他会自己安装软件;会阅读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. 找真人来看著他们试用你的软件。特别注意人们出问题的部份,这很可能就是程序模型与使用者模型不符的地方。

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

软件随想录(local.joelonsoftware.com/wiki)-2000年05月09日 使用介面设计手册第九章 - User Interface Design for Programmers 这本书的印刷版本比较长,里面有整整七个网络版所没有的新章节。还可以让你拿到沙滩上看而不必担心沙跑进手提电脑的键盘里。

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

 

来源:铁文

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2013年1月26日
下一篇 2013年1月27日

相关推荐