软件是一种工具(下)

By De Dream', Windy(http://www.DeDream.com),2005年4月

接:软件是一种工具(上)

目标和任务

作为工具,软件需要帮助用户完成任务,但是在交互设计上,任务并不是最重要的。例如前面Google的例子,用户的任务是进行一次搜索,但实际上,用户是想要找到某些东西,那是用户的目标,目标是一个结果,而任务,只是达成目标的中间过程。交互应该围绕用户的目标展开,而尽量缩减和优化任务,如果不能达到目标,把任务设计得再完美也是没有用的。

例如,同样是电子商务网站,管理购物车是不是一个单独的用例?应该怎样设计?用目标/任务来考察它就很明显,用户为什么要管理购物车?管理购物车是不是他的目标?不是,如果不购物,他管理购物车一点意义都没有,那么这个时候,整个交互应该围绕购物来展开,购物是一个完整的过程,怎样更直接,更方便,更让人难忘,是设计的重点。

假设有个项目组在开发某个企业应用时,用户王先生说,我每个月需要一份详细的数据报表,细到每个数字,甚至还提供了纸质的报表格式,说,就是要这样的。

报表格式
图2,用户拿出了报表格式。

这个时候,如果不假思索,项目组会觉得需要为系统开发一个报表模块,然后开始考虑怎样优化这个模块,让它行为更友好,可是,真的是这样吗?打印报表到底是什么,是任务还是目标?如果经过了解,项目组发现,王先生真正的目标是将每个月的数据进行对照,找出其中一些变化和趋势,这个时候,一个用来比较数据的图表会更清楚,因此软件的交互设计和原来大不相同了,也未必真的要实现前面所说的报表任务,而且,软件达到王先生的目标,他只会更加满意。

目标种类

从软件面对的对象来看,目标分为个人目标,组织目标,有时还要考虑组织服务对象的目标。

组织目标可能会包括:提升组织的形象(我们实现了计算机化,比别的同级单位更先进),降低成本,加快业务处理,提供更优质的客户服务等等。例如一个库存管理系统,包括入库管理、出库管理、退库管理、调库管理、借出与归还管理、盘点管理等功能,但作为组织的目标是什么呢,是不是这些功能?不是的,组织的目标可能是节约成本(能满足业务需要的情况下,更低的库存量意味着更少的存储空间,更少的安全开支,更大的资金灵活度),加快出货速度(如果软件查询库存只要一分钟,而原来的方式要一个小时),然后在业务竞争和客户满意度方面都会有所提高。

个人目标则包括对自己有帮助,不犯错误,显得自己称职,保持自尊不被人嘲笑,不妨碍自己其它的工作,保持心情愉快(以上这些可以考虑为通用的个人目标)等等。组织目标最终是需要通过满足个人目标来实现的,因为组织并不承担实际的工作,所有的工作都需要个人来完成。

至于服务对象的目标,如果在直接为客户提供服务时,它也会对软件交互设计产生相当大的影响。

有一个火车票售票系统,一次出一张票很方便,一个快捷键就可以了,而且座位是实时调配的,但出多张票的时候很麻烦,需要额外输入数字,这时,直接使用者――窗口售票员就总是每次出一张票,这样她的操作很快,不会耽误时间而使窗口排起长龙,但是,遇到有结伴而行的旅客,却总是不满意,因为他们说:“买两张到××的票”,而拿到的座位却不在一起,有时甚至一个在车厢尾,一个在另一个车厢头(如果刚好遇到换车厢),如果带着小孩,和一些行李,可想而知会给旅客带来多少麻烦。这样,旅客不停地向售票员抱怨,也觉得铁路公司的服务太差,因为没有考虑到用户所服务对象的目标(难道所有的旅客都会一个人来坐火车吗?),同样伤害了用户的个人目标和组织的目标。而这样的问题,只要进行合理的交互设计,完全可以做到让大家都满意,不会损害到谁的利益。
针对目标进行交互设计,可以从不同的角度发现问题,并且,能提出许多真正切中要点的解决方案。

用户的目标和任务常常是不同的,容易看到的是任务,目标却经常需要挖掘和仔细考察,并考虑实际的上下文环境,例如,在上面报表的情况下,可以留意一些简单的问题:“这些报表用来做什么?为什么需要它们?”

对于不同的目标,又例如,我在网吧里见过有人坐在屏幕跟前,打开了四五个QQ窗口,在跟网友聊天聊得不亦乐乎,其它什么事也不干,这种情况下,QQ是非常合适的,不时响起唧唧唧的声音,跳动的头像,色彩丰富的界面和表情,都让这样的聊天非常有趣,甚至这个时候广告也是在增添热闹,点缀着聊天过程,他们的目标是希望聊天更投入更好玩;可是还有很多人,他们一边在做别的事(可能是工作),一边打开聊天窗口,这个时候,用户的目标有所改变,聊天不是主要的行为,而是兼顾的活动,并且不希望聊天打断自己正在进行的其它事情,因此,更简单朴素,行为更少的MSN受到了这些人的欢迎,当然,腾讯现在有了适合办公室用的TM软件,新的消息不会跳动,只会有一个小小的自动提示(这个关于信息条数的小提示相当友好),界面也简洁了许多,这对后一部分人来说,确实是个好消息。

TM的提示
图3,左边的小泡泡是TM的消息状态提示,它还有一个自动弹出自动消失的消息提示对话框,也出现在右下角

任务雕琢

确定目标之后,具体任务仍需精雕细琢,因为目标是作为指引,而任务是真正帮助用户,让用户有感觉的地方,一些非常细节的交互感觉也会出现在任务的执行当中。

一些非常成功的软件,例如前面说到的QQ,这个最大的中文即时信息交流工具,它们在任务的交互设计中偶尔也会有一些不足之处,例如QQ,到目前这个版本(包括最新的TM),还一直有这个令人遗憾的小问题:

QQ自动回复
图4,QQ的自动回复功能,下一句会是什么?@#¥#%……?

难道一定要这样机械地回复吗?每当你输完一句话,自动回复就热情洋溢主动积极迫不及待地蹦出来,如果不是对话模式,还会在右下角闪个不停。从主动发消息的一方看来,如果不幸要多发几条消息的话,就不得不一次又一次地看到这条回复冒出来,同时,留言者自己看不到对方收到了这样的回复,在他那边的消息显示完全正常,如果留言者不小心,忘了改变自动回复状态,而直接回话给对方,那又是怎样的状态呢?假设一下下面的对话:

在?
工作中请勿打扰
你好
这个周末部门组织打羽毛球
工作中请勿打扰
还是上次那个场地吗?
对,你订一下
工作中请勿打扰
周六下午3点,OK?
OK
工作中请勿打扰

在即时交流的目标上,QQ没有偏差,只是体现在任务的设计中,这是一种考虑不周到的行为,没有考虑到具体的上下文中用户看到的效果和使用时的感觉。

Outlook的联系人管理功能十分强大,但它只支持姓名和邮件地址的查找,这样就不方便了:
outlook查找
图5,查找手机号码时找不到联系人,“该视图中没有项目可显示”也不是友好的提示信息。

任务雕琢是更细致的设计活动,需要找出用户实际的活动,他们的具体行为模式,并且要把设计放到动作发生的背景环境进行检查。

总结

软件是一种工具,它对用户的影响发生在同用户交互的过程中,因此,作为工具的软件需要考虑用户的目标,其中用户的个人目标不容忽视,因为组织目标需要通过个人的工作来达成;而且,在这个过程中,需要小心地把任务从目标中区分出来,针对目标进行设计,最后,对任务的交互设计也应该从具体的使用情景和用户行为习惯着手,让软件在每个细小的地方都能体贴地满足用户的需要。

本文首发在程序员杂志,转贴请来邮件告知,谢谢!

Windy 发表于2005年04月16日

引用记录:

本文引用地址:
http://www.dedream.com/cgi-bin/mt-tb.cgi/66

评论

1.软件不仅仅是一种工具,在如今商业环境下还是一种商品、一种盈利的工具/手段。因此,在人机交互过程中存在着一些不人性化的情形。因此,如何在复杂因素环境中做好UCD始终是一项课题。
2.在人机交互设计中,的确应当区分目标和任务(needs和wants)。至于如何区分,在设计上是有两种不尽相同的方向,这两种不同直接来源于心理学上对于行为主义心理学的批判!

freepeng 发表于 October 25, 2005 09:49 AM

Freepeng:谢谢你的补充,另外请问你说的UCD是User-Centered Design吗?

Windy 发表于 November 4, 2005 09:55 AM

软件是一种工具,似乎不会有人说反对吧,需要写这个主题的文章么?是否应该写出一些怎么用软件实现用户目标呢?

例如最后QQ的自动回复,提出的问题是没错的,那就应该告诉怎么解决这个问题。
例如,如果用户设置为离开状态的自动回复,当用户触及电脑鼠标或者键盘,电脑通过用户的行为检测到,得知用户已经不再是“离开”状态,而自动取消“自动回复”。

另外,国外交互大师某些观点也未必完全正确,例如,目标与任务的区别,在about face举例说到,从A地点去B地点在不同的时代,目标是一样的,但是任务却不同了,1任务是坐飞机去,不带枪 2任务是骑马(可能记错),需要带枪。
这个恐怕不是目标与任务的意义区别,应该是,目标与手段的区别。
或许翻译者翻译的不清楚,单就目标与任务之间的关系,就about face说来恐怕站不住脚

呵,随便多说几句了

test 发表于 April 1, 2006 12:30 AM

ps:ATM第三个修改意见恐怕也是有问题的,侵犯了别人的隐私,如果我想知道你赚了多少钱,我就转帐100元给你的卡上,然后就可以通过你设计的第三个建议获知了,呵,

test 发表于 April 1, 2006 12:34 AM

谢谢test关注,第一个问题:我以为把问题指出来,答案就已经明了了,因为我们是根据用户的行为特点进行设计的。

第二个问题:给出转账前后余额变化是指,Tom用自己的卡从ATM机上转500元给lily,给出tom卡上的余额变化,不是lily的余额变化,这样说是否清楚了?

Windy 发表于 April 5, 2006 12:42 AM

指出问题,恐怕不等于就有了答案吧?
比如电话10000那种交互,我想有很多人都觉得那是不好设计,但是没有能力提出解决方案,那个交互比较复杂,你可以说,我们要根据用户的行为特点进行设计,那么QQ自动回复这个小功能点的解决办法,但就这个而言,解决办法我在前面已经给出了,我想这还不需要“根据用户的行为特点进行设计”吧。

其实我的意思是,交互设计更应该给出解决方法,或许这样的文章更有贡献。国外的书籍,例如情感设计花了50多页借用了心理学的概念去阐述三个层次的设计,有的读者说,佩服他可以把一个简单的事情写了那么多文字来赚稿费,呵。

test 发表于 April 5, 2006 01:07 PM

ps:我的意思是,如果windy的文章能够在剖析现象的基础上,再给与一些解决方法的构思,或许会更好些。而尽量别拿出那些国外的交互理论,毕竟有一些问题是很细节,单一的,还动用不了那些方法把,,

test 发表于 April 5, 2006 01:28 PM

Test:谢谢你进一步的关注,自动回复的问题,应该怎么做呢?假设在前面那个应用场景中,假设两个人在对话,一个是A,设置了自动回复,第二个是B,试图跟A说话,自动回复在A来说是看不到的,因此他不知道B收到的那些自动消息;在这里,如果要进行设计,那么不光是在A已经回答的情况下要去掉自动回复,而且,假设A并没有回来,也不应该重复出现那么多次自动回复,在最开始的时候回复一句就可以了。

参考的问题:自动回复是用来做什么?怎么样的表现形式最接近用户的目标?用户在这个场景中的感受如何?

你说的没错,交互设计就是为了给出解决方法,而且交互设计技术是在关注“如何给出解决方法”。这是一种方法的方法。

Windy 发表于 April 5, 2006 04:01 PM

前面那个目标和任务的问题,任务是指人需要通过计算机(系统)完成的工作,因此任务是人去坐飞机/坐火车,这样说是否更清楚?

Windy 发表于 April 5, 2006 04:04 PM

“那么不光是在A已经回答的情况下要去掉自动回复,而且,假设A并没有回来,也不应该重复出现那么多次自动回复,在最开始的时候回复一句就可以了。”

这里有两个场景,一个就是当用户A回到了电脑前,就不应该再出现回复,这个问题我在前面已经说过如何解决了。
你认为,当A没有回来,就不应该重复那么多字自动回复,而是应该在最开始的时候回复一次就可以了,
我觉得,恐怕不是如此,按照你的说法,会出现下面这种情况。

b:在?
a:工作中请勿打扰
b:这个周末部门组织打羽毛球
b:周六下午3点,OK?
b:怎么你不理我?
b: 不理就不理,拉倒!!!!

为什么会出现这种情况?因为b的QQ主面板是靠在屏幕的边上,无法在主面板上看见用户的状态是“离开”

并且还有一个人类行为心理习惯问题,两个人交流的时候,我们希望对方是能有回应的,当A不在了,那么电脑就是A的代理人,秘书。如果我在询问的时候,我希望它能有最大限度的回应。而不是,当我说了好几次的话语,它只回答了一次,就不理我。那种态度很蔑视我的智力。虽然,得确是我的错,我没有注意到A是离开状态。但是我还是希望对方不要把我当笨蛋,虽然事实上我是个笨蛋。

咬文嚼字一次
原先的说法是:目标是去某地,任务是坐飞机/火车去,
呵,你可以换另外一种说法,
目标是去某地,是采用坐飞机/火车的手段达到目标
也可以说:
任务是去某地,采用坐飞机/火车的手段完成任务


test 发表于 April 6, 2006 10:39 AM

b:在?
a:工作中请勿打扰(自动回复)
b:不忙的时候给我个消息,有事找你。

目标是去某地,是采用坐飞机/火车的手段达到目标:
采用这些手段也需要完成这些任务,如何?

Windy 发表于 April 7, 2006 12:12 AM

发表评论:




记住您的信息?



    [页面提交需要一点点时间,请只按一次"发表"即可]