产品设计的流程

原文链接:http://www.joelonsoftware.com/uibook/chapters/fog0000000065.html
译文链接:http://blog.csdn.net/whatcanhumdo/archive/2010/05/13/5584893.aspx

我们已经谈了优秀设计的原则,但是原则只是一种评价和改善已经存在的实际的方式。但是。。。一开始设计的时候该怎么做呢?很多人写一个很大的功能大纲,包括了他们能想到的所有功能。然后逐个设计,把功能以菜单项(或者网页)的形式罗列出来。就这样完成了,程序(或者网站)拥有了他们想要的所有功能。但是这种方式进行的并不顺利。用户还是不知道如何使用,还是不清楚该通过这款软件完成他们的任务。

微软对于这种情况的解决方案是基于行动法(Activity Based Planning)。(据我所知,这个概念是由Excel团队的Mike Conte提出来的,由于他非常厌恶这东西改行去当赛车手了)。关键是理解用户的行动,然后致力于让用户更简单的完成这种行为。最好还是由一个例子解释。

你决定要做一个网站,可以让人们制作贺卡。运用一般方法,你可能想出了一系列功能:

1.卡片上增加文本。
2.卡片上增加图片
3.从库中获取预先设定的贺卡
4.发送贺卡:
  a 通过email
  b 打印出来

由于缺少更好的方式考虑这个问题,你可能会做成像大约1984年Macintosh上的界面:这个程序一开始是一片空白,只有一些增加文字,图片,导入卡片库和发送贺卡的菜单项。用户面对这种界面,只能一条条浏览菜单,寻找有那些命令可以使用,然后按照自己的意图把这些命令组合起来制作贺卡。

现在,使用基于行动法,首先你要弄明白用户可能做的一系列行动。因此你和你潜在的客户交流,然后你总结出最常见的行动:

1.生日祝贺
2.Party邀请
3.结婚周年纪念祝贺

现在,你要像程序员那样思考(用专业术语就是,制作贺卡你需要什么功能),站在用户的角度,用户具体会做那些行动:

1.发送生日贺卡
2.计划party,发出邀请
3.发送结婚周年纪念贺卡  

突然,各种各样的注意冲进了你的大脑。你不再从一个空白的卡片开始了,你可能以类似这样的菜单开始:

·你要做什么?
·发送生日贺卡
·发送结婚周年纪念贺卡
·发送Party邀请
·由空白贺卡开始

用户会发现你的程序变得容易使用了,不需要再到处浏览菜单了,因为程序会自然带领他们完成任务。(这其中存在风险,你如果没有正确罗列可能的行动,你会让本来能使用你的软件的用户疑惑不解。比如说,发送Hanukah节日卡,但是找不到这个选择。因此罗列选项的时候要小心,要符合你大部分目标客户的需求。)

仅仅观察这个列表里的三种行动,还能想到一些你可能想要增加的功能。比如说,如果你正在发送生日或结婚周年纪念贺卡,你可能需要在明年提醒你给这个人发送贺卡。。因此你可以增加一个复选框注明"明年提醒"。Party邀请卡需要RSVP,因此你可以增加一个让人们收集RSVP的功能。这两个新功能是通过观察用户行为而产生的。

这个例子是微不足道的;对于真正的应用程序,使用基于行动法的回报是巨大的。当你设计程序的新版本的时候,你已经有一个能观测用户将会进行何种行为的版本。设计出新版本的功能并不困难,甚至不需要和同事们进行头脑风暴,罗列出用户可能的行为,然后决定那一条是你应该重点关注的。强迫自己把这些行为在纸上罗列出来可以极大的帮助你在整体上的设计。

当你在制作一个已经在使用产品的第二个版本时,基于行动法就更加重要的。这可能关系到观察用户以便了解他们如何使用你的程序。

在Excel从1.0到4.0的日子里,微软里的大部分人都认为用户最通常的行为是做财政状况预测,就像改变通货膨胀率来观察对你盈利状况的影响这类事情。

当我们设计Excel5.0的时候,这是第一款使用基于行动法的版本,我们仅仅调研了五个客户,我们意识到大部分用户只是使用Excel来保存列表。他们并不输入任何公式或做任何计算!我们之前从来没有意识到这一点。保存列表相比于其它行为成为使用Excel最热门的功能。基于这一点,我们创造了大量的特性让保存列表更简易:排序更容易,自动数据输入,能让你用各个角度查看数据的自动过滤特性,能让多人在同一时间编辑同一份列表的多用户特性。

当Excel还在设计的时候,Lotus发布了叫做Improv的"全新的电子表格"。根据新闻公告,Improv是新一代的电子表格,它会淘汰在它之前的所有东西。由于一些奇怪的原因,Improv最先在NeXT上发布,当然这不能提高它的销量,但是有很多聪明的人相信,Improv对于NeXT就像ViSiCalc对于Apple II那样:这将会是一个杀手级的应用程序,使得人们仅仅为了这一个程序而去买更新的硬件。

当然,Improv对于现在只是历史里的一个注脚。在网上搜索它,能连接到的网站都是网站主人由于某些原因存放他们收集到的尘埃地点。

为什么?因为使用Improv几乎不可能制作列表。Improv的设计者们认为人们使用电子表格用来创建复杂的多维财务模型。如果他们能咨询他们,他们会发现制作列表比制作多维财务模型常见得多。而且使用Impriv制作列表如果可能的话也是一件苦差事。

因此基于行动法在你制作新应用的时候很有帮助,这时候你需要猜测什么事情是用户想做的。但是,当你计划升级版本的时候帮助更大,因为你已经明白了用户会做什么。

另外一个例子,来自deja.com网页的进化。它开始时作为一个巨大的,可以搜索Usenet的目录网站,叫做dejanews。原始的界面基本上只有一个编辑框,上面写着"search Usenet for blah"。在1999年,基于行动法表明,一个普通用户的行动是搜索产品或者服务,因此,在现在有更多的产品选项的搜索服务:Usenet搜索功能几乎完全消失了。这可能让一小部分使用这网站搜索他们的Matrox显卡是否能在Redhat Linux5.1上使用的人觉得讨厌,但是让更大部分只想购买最好的数码相机的人高兴。

基于行动法还有一些有用的东西是,它能让你列出什么特性是不应该加上去的。当你创造任何一款软件,你想得到的功能数量是你在规定时间内实现的功能数量的三倍。因此最好的方法是通过评估哪种功能支持最终要的用户行为,来决定哪种功能是需要的,而哪种是应该丢弃的。

想象中的用户

最优秀的UI设计者都有一个共识:在设计UI之前必须虚构一个用户。你可能会想起之前,我介绍了一个想象中的用户Pete:

Pete是一个技术出版社的会计,已经在办公室使用windows 6年。他相当的称职且有技术性。他安装自己的软件;他读PC Magazine,而且他会编写简单的Word宏来帮助他办公室里的秘书发送发票。他家里装上了线缆调制解调器。Pete从来没有使用过Macintosh。"他们太贵了,"他会告诉你。"你可以买到700Mhz PC带有128M RAM以..."好了,Pete。我们知道了。

当你读到这里的时候,你几乎能够在脑海中生成这个用户了。我也可以介绍了另外一种类型的用户:

Patricia是一个英语教授,她写了多本诗集。她从1980年就开始使用计算机文字处理工具了,虽然她只使用过两个程序Nota Bene(一款远古时代学院式的文字处理器)和Microsoft Word。她不像把时间花在学习计算机如何工作的理论知识上面。她想要把她的所有文档存在计算机中,不在乎文件会存到哪个目录下,只要能找到就行。显然,为Pete设计软件完全不用于为Patricia设计软件,也不同于为Mike设计软件,Mike现在16岁,他在家使用Linux,可以长时间在网络上聊天,而且不使用任何"Microsoft"的软件。

当你虚构这些用户时,需要考虑你的设计是为了使用户更简单。比如说,很多程序员会高估普通用户的能力。每次我写一些命令行界面的程序时候都会让别人很难使用。我发邮件说命令行界面是非常强大的,因为你可以做这样的事情"gunzip foo.tar.gz | tar xvf-"。但是,当你想要如果要让Patricia输"gunzip..."显然,这种界面永远不会满足她的需要。(当然,如果你在给高端系统管理员做一个Linux下的备份软件,你需要虚构一个类似"Frank"的人。他拒绝碰Windows,使用他自己个人版本的tcsh,运行有四个并排终端模拟器的X11一整天。)

总的来说,设计优秀的软件需要六个步骤:

1.虚构一些用户。
2.理清重要的行动。
3.理清用户模型-用户在完成他们的行为时会期待什么。
4.概述第一次的设计草稿。
5.重复审查你的设计,不断的简化它直到能让你虚构的用户方便的使用。
6.考察真正的用户使用你的软件情况。记录用户遇到麻烦的地方,记录哪个地方用户模型和程序模型不符合。

优秀的UI能自动卖出软件,而且能让人使用的开心,因为人们会在完成他们希望完成的任务后兴奋。这就是为什么UI设计是如此能让人向往的领域。还有哪个领域能有机会为数百万的人哪怕创造一点点幸福感?

评论: 0 | 引用: 0 | 查看次数: 3104
发表评论
登录后再发表评论!