软件是一种工具
软件的定义
软件指的是计算机指令或数据,可以进行电子存储(来自Webopedia对软件的定义),这正是计算机科学家基于软件的本质给出的一种定义,当计算机科学家们身穿白大褂,在实验室里伺候那些大家伙的时代,它们的确如此,他们谈论的是指令,字节,编码,然而,到了现在,我们再也不会这样看待软件了,在我们的谈论中,它们是:
Word:“你把那份文档发给我一下。”
QQ和MSN:“留个QQ/MSN什么的,找机会再聊啊。”
Skype:“妈妈非要跟我通网络电话,还说这个挺好用的”;
传奇:“我是55区白塔的……”
Google:“你去Google一下就知道了”;
……
对平常所使用的软件,用户根本就不在意什么指令和数据(不信你到网上随便找个人问问),随着软件的发展,逐渐深入到我们的工作和生活,我们关心的是,软件,它,能帮我们做什么?能帮助自己完成工作任务吗?能和朋友在线交流吗?能获得新的知识吗?能提供娱乐体验吗?
在Larry Constantine的“Software For Use”一书第一章的开始,作者就指出:“All software systems are tools”(p5);在“About Face2.0”中,也提到“This ideal interaction is not a dialog—it's more like using a tool”(第9章)。对,所有的软件系统都是工具,理想的交互不是对话,更象在使用工具,软件不是什么高深的概念,只是工具而已,这是广大的软件使用者给它的定义。使用者并不关心它是什么指令什么数据,它是怎么建造出来的,甚至,也不关心软件本身,如果某个软件有种神奇的力量,只要念一句口诀或输入一串奇怪的代码就可以写好一篇文章,按理想的格式排好版,那么它会比Word成功许多。
(“哈库啦马塌塌~”,文档完成了,这种交互多好。)
对于工具来说,它的作用是拓展人的能力,帮助人们完成任务,人不能用手钉钉子,但可以使用锤子作为工具,人也不能用手注射麻醉剂,但可以使用注射器作为工具(Milestone Scientific公司在注射器上用到了软件,它们的Wand麻醉剂注射系统采用软件进行控制,并提供精确的麻醉剂,因而注射的时候可以达到几乎无痛的效果,避免了手工操作时的不均匀,不到位,这可真正是一种非常不错的软件/工具。)。既然是工具,软件也应该具有工具的姿态,它们应该安静,应该就手,应该真正帮得上忙。
网站也是工具,例如我们熟知的Google:

用户只要关心自己想搜索的东西,而且可以任意表达,Google就会把它搜索到的结果罗列出来,而且找到的结果还相当有价值。在这个过程中,它接收输入,搜索,显示,没有多余的对话和动作,用户也不用知道搜索的细节,所以Google成了我们喜爱的搜索工具,并且以自己的行为影响了一代搜索引擎(至少在国内如此,百度,一搜都变得跟Google非常相似)。
也有一些软件,整体上作为工具马马虎虎,能完成主要的任务,但在同他们的交互上,还是有一些地方不象工具,象发号施令的主人。
看看下面这个例子,一个电子商务网站,当用户兴致勃勃想要买一本书时,遭遇到一个貌似友好的对话框(还不友好吗,使用了敬语“您”),除了要额外多点击一下确定之外,整个购物过程已经打断了:

图1,网站用对话框提示访问者还没有登录,并且不管他的购买请求。
还有的网站有所改进,没有弹出对话框,但是将网页直接转向到了登录页面,在这个过程中,已经选好的商品却从页面上消失了。
这样不是友好工具的行为,它好像在说:“先别管你的书,我得知道你是谁!”这是系统在向用户提要求,可是用户到这里来,不就是为了他的书么?
软件不再遥远神秘,它回归到了作为工具的本来位置,这是一种必然现象,因为用户对软件的要求将越来越高,如果不好用,他一定会记在心里(有机会好换另外一个),而软件行业的改变正在发生,例如,我们现在已经很少看到占据在屏幕中央的“打印机缺纸”提示框,而是一个自动出现,自动消失的提示框加上状态图标;许多软件开始有了记忆能力,能记得我们以前输入过的内容;Gmail也把有过联系的邮件地址自动添加到联系人了(Foxmail还没有这么做)。
8、违反设计惯例
一致性是最重要的可用性原则之一:当事物遵循相同的原则运作时,用户不用担心发生意外,因为他们根据先前的经验已经很清楚将会发生什么事情。就像你每次在牛顿的头顶上放下一个苹果,它一定会砸中他的脑袋一样。
用户的期望实现得越多,他们就越感觉是自己在控制整个系统,并且更加喜欢它。相反地,用户则会感到可靠程度不够。想想,当我释放苹果时,它变成了西红柿并朝着天空蹦出一英里,那多荒诞!
9、打开新的浏览器窗口
打开新的浏览窗口就像一个吸尘器推销员在上门推销时,直接将烟灰缸里的杂物倾倒在消费者家中的地毯上。拜托!不要用任何窗口污染我的屏幕(尤其在当前操作系统低劣的窗口管理技术下),如果我需要一个新窗口,我会自己打开的。
设计者打开新窗口的本意是要让用户留在他的站点上。但是却忽略了控制用户的机器所带来的负面效应,这种策略恰恰弄巧成拙,因为当用户想通过“后退”按钮返回先前的站点时,已经做不到了。用户通常注意不到新窗口已经被打开,尤其当他们的显示器很小,而窗口又正好是最大化时。因此,当用户想要返回原来的站点时,面对的却只是一个不可用的灰色“后退”按钮。
点击链接的标准结果是目标页面在当前的浏览窗口中加载,取代现有页面。出现其它的任何情况都违背了用户的期望,令他们感到对网络的控制不稳定。用户痛恨那些突然弹出来的窗口,当用户想要在新窗口打开一页的时候,会自己使用“在新窗口打开”功能,因此不要用一些代码来干扰了用户浏览器的操作。
10、不回答用户的提问
用户是因为某个目的才访问你的网站。他们方式可能是想购买你的产品或者其他,但最终却失败了,因为网站没有提供用户寻找的资料信息。
事实上问题远没有这么简单,如果你不告诉用户具体情况,用户就会以为你的产品或服务不能满足他们的需求,因此用户就不会购买你的产品,或者有一些信息,深深隐藏在各种文档之间,用户没有时间阅读所有这些隐藏的信息,因此也就认为它们不存在。
不回答用户提问的最坏的例子是拒绝提供产品和服务的价格清单,没有任何B2C的商务网站会犯这种错误,但是这在B2B中却普遍存在,大多数“企业解决方案”的提出,让你不能告诉用户他们适合100个站点、还是10万个站点人。价格是最主要的作用是便于想用户提供相应的产品,避免提供一个不成熟的产品给用户。
即使是B2C网站有时页会忘记在所有地方提供相关产品价格清单,例如在目录页或者搜索结果页,要知道,在这两种情况下,价格是关键,它让用户能够区分不同的产品并找到最合适的目标。
其他各年的十大错误列表
2005年的十大网站设计问题:
一.易读性的问题-让使用者决定浏览时字体大小。
二.没有标准的超连结表示
三.Flash的使用
四.网页无法呈现网站内容
五.搜寻的重要
六.浏览器的差异
七.讨厌的框架
八.没有链接相关资讯或是公司资讯
九.固定的页面宽度
十.不适当的图片放大连结
2003年的十大网站设计问题:
一.主题不明确
二.更改以存档的链接地址
三.内容没有注明日期
四.缩略图看不清细节
五.图片的ALT文字过于冗长
六.不给用户自定义选择
七.过长的商品列表选择
八.商品仅按照商标排序
九.过于限制用户录入的信息
十.页面包含指向自身页面的链接
1999年的十大网站设计问题:
一.破坏或减慢“后退”按钮
二.打开新的浏览窗口
三.使用不规范的GUI(图形用户界面)部件
四.缺少自我介绍
五.缺少存档
六.移动页面至新的URL地址
七.标题和内容不匹配
八.对最新的网络热门紧追不舍
九.服务器访问速度过慢
十.所有的东西看起来都像广告
目标和任务
作为工具,软件需要帮助用户完成任务,但是在交互设计上,任务并不是最重要的。例如前面Google的例子,用户的任务是进行一次搜索,但实际上,用户是想要找到某些东西,那是用户的目标,目标是一个结果,而任务,只是达成目标的中间过程。交互应该围绕用户的目标展开,而尽量缩减和优化任务,如果不能达到目标,把任务设计得再完美也是没有用的。
例如,同样是电子商务网站,管理购物车是不是一个单独的用例?应该怎样设计?用目标/任务来考察它就很明显,用户为什么要管理购物车?管理购物车是不是他的目标?不是,如果不购物,他管理购物车一点意义都没有,那么这个时候,整个交互应该围绕购物来展开,购物是一个完整的过程,怎样更直接,更方便,更让人难忘,是设计的重点。
假设有个项目组在开发某个企业应用时,用户王先生说,我每个月需要一份详细的数据报表,细到每个数字,甚至还提供了纸质的报表格式,说,就是要这样的。

(图2)
(图2)用户拿出了报表格式。
这个时候,如果不假思索,项目组会觉得需要为系统开发一个报表模块,然后开始考虑怎样优化这个模块,让它行为更友好,可是,真的是这样吗?打印报表到底是什么,是任务还是目标?如果经过了解,项目组发现,王先生真正的目标是将每个月的数据进行对照,找出其中一些变化和趋势,这个时候,一个用来比较数据的图表会更清楚,因此软件的交互设计和原来大不相同了,也未必真的要实现前面所说的报表任务,而且,软件达到王先生的目标,他只会更加满意。
目标种类
从软件面对的对象来看,目标分为个人目标,组织目标,有时还要考虑组织服务对象的目标。
组织目标可能会包括:提升组织的形象(我们实现了计算机化,比别的同级单位更先进),降低成本,加快业务处理,提供更优质的客户服务等等。例如一个库存管理系统,包括入库管理、出库管理、退库管理、调库管理、借出与归还管理、盘点管理等功能,但作为组织的目标是什么呢,是不是这些功能?不是的,组织的目标可能是节约成本(能满足业务需要的情况下,更低的库存量意味着更少的存储空间,更少的安全开支,更大的资金灵活度),加快出货速度(如果软件查询库存只要一分钟,而原来的方式要一个小时),然后在业务竞争和客户满意度方面都会有所提高。
个人目标则包括对自己有帮助,不犯错误,显得自己称职,保持自尊不被人嘲笑,不妨碍自己其它的工作,保持心情愉快(以上这些可以考虑为通用的个人目标)等等。组织目标最终是需要通过满足个人目标来实现的,因为组织并不承担实际的工作,所有的工作都需要个人来完成。
至于服务对象的目标,如果在直接为客户提供服务时,它也会对软件交互设计产生相当大的影响。
有一个火车票售票系统,一次出一张票很方便,一个快捷键就可以了,而且座位是实时调配的,但出多张票的时候很麻烦,需要额外输入数字,这时,直接使用者――窗口售票员就总是每次出一张票,这样她的操作很快,不会耽误时间而使窗口排起长龙,但是,遇到有结伴而行的旅客,却总是不满意,因为他们说:“买两张到××的票”,而拿到的座位却不在一起,有时甚至一个在车厢尾,一个在另一个车厢头(如果刚好遇到换车厢),如果带着小孩,和一些行李,可想而知会给旅客带来多少麻烦。这样,旅客不停地向售票员抱怨,也觉得铁路公司的服务太差,因为没有考虑到用户所服务对象的目标(难道所有的旅客都会一个人来坐火车吗?),同样伤害了用户的个人目标和组织的目标。而这样的问题,只要进行合理的交互设计,完全可以做到让大家都满意,不会损害到谁的利益。
针对目标进行交互设计,可以从不同的角度发现问题,并且,能提出许多真正切中要点的解决方案。
用户的目标和任务常常是不同的,容易看到的是任务,目标却经常需要挖掘和仔细考察,并考虑实际的上下文环境,例如,在上面报表的情况下,可以留意一些简单的问题:“这些报表用来做什么?为什么需要它们?”
对于不同的目标,又例如,我在网吧里见过有人坐在屏幕跟前,打开了四五个QQ窗口,在跟网友聊天聊得不亦乐乎,其它什么事也不干,这种情况下,QQ是非常合适的,不时响起唧唧唧的声音,跳动的头像,色彩丰富的界面和表情,都让这样的聊天非常有趣,甚至这个时候广告也是在增添热闹,点缀着聊天过程,他们的目标是希望聊天更投入更好玩;可是还有很多人,他们一边在做别的事(可能是工作),一边打开聊天窗口,这个时候,用户的目标有所改变,聊天不是主要的行为,而是兼顾的活动,并且不希望聊天打断自己正在进行的其它事情,因此,更简单朴素,行为更少的MSN受到了这些人的欢迎,当然,腾讯现在有了适合办公室用的TM软件,新的消息不会跳动,只会有一个小小的自动提示(这个关于信息条数的小提示相当友好),界面也简洁了许多,这对后一部分人来说,确实是个好消息。
![]()
(图3)
(图3)左边的小泡泡是TM的消息状态提示,它还有一个自动弹出自动消失的消息提示对话框,也出现在右下角



