摘要:
糟糕的用户体验和缺乏帮助信息的软件界面,激励着我们数十年来致力于研究“人机交互”。本文,我的观点是:长期以来我们过于注重“交互”,这可能是一种误导。我认为,对于大多数软件——也就是我们所说的“信息化软件”来说,交互无论对于用户还是设计师实际上都是一种负担,用户的目标可以通过其他手段更好地被满足。
所谓“信息化软件”设计其实可以被看作是情境关联信息图形设计。我论证了信息图形化设计的住要任务和三种目前常用的获悉情境关联的途径,而交互是其中最次要的一种。当论证完这些设计理念在文化上变迁的必然性之后,我会开始进行设计。我概述了这样一种工具——它可以让设计师在没有技术支持的条件下根据数据生成图形,以及这样一个平台──它可以在独立程序之间进行空前级别的隐形情境共享。在结论中我断言:随着技术水平的不断提高,信息化软件的设计原则将会变得越来越重要。
尽管这篇论文提出了许多具体的设计和工程理念,但文章的最大意图是——介绍信息化软件设计中的“统一理论”,向那些质疑软件世界是否如他们所知的那么“平”的设计师提供设计的灵感和方向。
范围和术语
"软件" 在这里是指面向用户的本地或网络平台上的个人桌面软件。"软件设计"指的是软件呈现给用户的包括外观和操作行为的设计,是将软件定义为一种产品。 "软件工程" 是只在计算机中实现设计,是将软件定义为一种技术。这都是些有争议的定义,别指望文章的作者将摆平这些争议,实际上这篇论文本身将引来更多的争议。
目录
什么是软件?
•软件和巫术。是"交互设计"治愈了令用户沮丧的软件,还是用户最终自我疗伤了?
•什么是软件设计?软件不是一个新的神秘媒介,只是两个旧媒介融合的产物。
•软件为谁服务?人们利用软件进行学习、创造和沟通。
•设计操作型软件很难。设计用于创造的软件是个狡猾的生意。
•最佳的软件是信息化软件。人们花更多的时间来学习,而不是创造。
图形设计
•信息化软件设计就是图形设计。人们通过看来认知,“看”是根本。
•演示:显示数据。将Amazon重新设计为一个信息图形化网站。
•演示:按期数据。重新设计Yahoo! Movies,将它变为一个信息图形化网站。
情境关联
•情境关联信息图形。软件胜过印刷品是因为显示了相关性。
•从环境中推断情境。外界信息可提示相关性。
•从历史数据中推断情境。过去的记忆可提示相关性。
交互
•交互性被认为是有害的。用户可通过交互获取相关性,但只能作为不得已的手段。
•减少交互。以此减少痛苦。
•我们是怎么发展到今天的?对交互的普遍聚焦是另一个时代遗留下来的。
间歇
•案例分析:列车时刻表。将一个计划旅程的工具设计成信息图形化效果。
•演示:行程规划。将西南航线重新设计为信息图形化效果。
改变世界
•策划信息化软件革命。五个步骤,从技巧到艺术形式。
•设计一个“设计工具”。无需编程生成动态图形。
•通过历史推论工程学。软件如何从历史数据中获取信息。
•通过环境推论工程学。软件之间的隐性沟通平台。
•信息和未来世界。为什么这一切很重要。
软件和巫术
一台计算机的进程确实像一个魔法师的思想精神——看不见,摸不着,根本不是由物质组成的。然而,他又是现实的存在——它可以执行智力工作;它可以回答问题;它可以通过分配一家银行的货币或控制一间工厂的机器手臂来影响世界。我们使用的计算机程序就像魔法师的符咒。
—Abelson and Sussman, Structure and Interpretation of Computer Programs (计算机程序的结构和解释)(1984)
Merlin(译者注:是欧洲家喻户晓的欧洲中古世纪之经典故事中的魔法师,传说他创造了巨石阵。)的任务其实很轻松──创造巨石阵只不过是个单纯的工程挑战,吊挂一些有份量的石头罢了,目的无非是慰藉地下的亡灵。
而如今,软件魔术师的责任重大到如同背负着13英尺的巨石——要让软件与人类沟通。他们总愿意接受挑战,希望自己像木偶奇遇记中的精灵一样,将生命的火种吹进小木偶体内,让它成为一个真正的男孩。可事实却不尽人意,他们总是制造出类似于科学怪人那样的家伙——毫无用处、愚蠢至极,还容易产生意外破坏。
这是一个软件危机,而且已经不是什么新闻了。十几年来,可用性学者投入了大量精力,不断口诛笔伐各种糟糕的用户界面。按理说,这应该能使那些糟糕的界面变得友好一些,他们决心打着“交互设计”的旗号积极地向所有虔诚的信徒传播“可用性交互”的福音。
然而,软件的表现仍然令人沮丧,并随着软件越来越广泛的应用于社会而产生更多问题。讨伐的呼声高涨,而信徒们依然笃信神圣的教条——软件必须将交互摆在首位。软件是为了"用" 。
我认为根本的软件危机是一种认同危机——人们不明确软件到底该定义成什么媒介,它到底该用来做什么。也许“生命的火花“是种不该存在的魔法。
什么是软件设计?
一个人体验现代软件几乎只是通过两个渠道:
•她读取和解析屏幕上的画面。
•聚焦屏幕上的事物,并用鼠标替代手指点击它们。
因此,软件设计包括对以下两种事物的设计:
•图像
•可用于点击的对象
这两项都不是什么新发明。我们的祖先──穴居人类利用长矛击中猛犸象,并在他们居住的洞穴将这些过程绘成图像。如今,这两项活动已演变成了两个成熟的设计学科:平面设计和工业设计。
图形设计是一门通过二维平面传达信息的艺术学科。它拥有广阔的应用领域,因为人们有各种各样的信息想要传达——身份,社会地位,情感,说服力等等。最为相关的一个子学科就是Edward Tufte提出的信息设计——利用图像向读者传达信息。一些常见得产品中也包含不少信息图形设计,包括巴士时间表,电话黄页,报刊,地图,购物目录等。一个好的图形设计师懂得如何对页面进行排版,让读者可以提出或解答问题,进行比较,得出结论。
当软件设计师在确定程序中的视觉表达形式时,当她以用户可理解的方式绘制图像时,不管她是否意识了,她实际上正在进行图形设计。#
工业设计同样是一门艺术,它塑造物理性的产品,因而它可以由人操纵。它也拥有一个广阔的应用领域,因为人们的生活种离不开它们──从餐具到椅子,从手机到汽车。一个好的工业设计师清楚人体在操纵物理对象时的能力和局限,了解人的思想和人预想的力学模型。例如要设计一部摄影机,设计师要使她产品的造型能够与人手相称。她要合理排列按钮,使食指在操控的同时大拇指能将相机固定,不至于意外滑落。同样重要的是,她需要根据人体特征设计一种可理解的功能映射──“按”一个按钮拍一张相片,“拉动”滑条快进电影,“打开”一扇门取出影片,“打开”另一扇门取出电池。
虽然软件是典型的非物理产品,但现代软件界面中已然充斥着大量机械化隐喻──点击按钮,滑动滑块,拖动窗口,关闭图标,伸展或收缩面板。人们被怂恿将软件看作是机器──当按下一个按钮时,机器内部会有齿轮运作,导致内部或外部状态的改变。操纵机器,该属于工业设计范畴。
当软件设计师定义程序的交互形式, 当她开发这些伪机器并描述它们的功效,不管她是否意识到了,她实际上正在进行虚拟形式的工业设计。
软件设计师何不就此将她的作品作为一个图形设计和工业设计的融合产物。现在,让我们思考用户是如何接近软件的,更重要的是,为什么要这样。
软件为谁服务?
软件为人服务。 我们必须从人们在做什么出发推论软件应该做什么。看看以下对人类活动的分类:
目前,软件还未能替人们完成物理行为──比如它无法替您吃下三明治,让您觉得饱。但是,人们把越来越多的智力活动转移到了计算机的虚拟世界中。这说明了人们需要软件的三个普遍理由:
*用于认知。
*用于创造。
*用于沟通。
我提议将软件根据这些需求分类为:信息化软件,操作型软件和通信软件。
信息化软件用于推进人们认知。一个人使用信息化软件构建并操控一个内部模型──用于信息的心理呈现。良好的信息化软件鼓励用户提出并解答问题,进行对比,得出结论。 例如,一个人在煮晚餐前可能需要利用烹调软件学习各种菜肴做法(这里的“学习”可以指快速而粗略的了解某些事物),实际上,她已对烹调的可能性构建了一个心理模型,然后通过这个模型寻找最佳方案。实际上, 这和她查阅一本烹调书籍所得到的结果是相同的。
操作型软件是用于实现人类创造的。一个人使用操作型软件为自己在计算机或远程设备中构建并操控一个外部模型──用于表达虚拟对象。例如利用软件进行绘画,写作,作曲,建筑设计,工程设计以及机器人控制等。操作型软件可被视为一个类似于画笔或打字机性质的虚拟工具,它是创作者和作品之间的介面。
通讯软件是用于实现人类沟通的。一个人使用通信软件可以构建并操纵与他人分享的内部模型──在多种思想之间的形成理解的同步化。例如用于电子邮件,小组讨论(无论是语音,视频或文字),以及协同工作的软件。沟通可以被看作是对于所获得的信息作出的一个反馈──也就是说,由发言者发出的外部模型正是被听众接收到的内部模型。因此,本文将通讯软件简单的看待为操作型软件和信息化软件的结合体,而不再单独进行阐述。
设计操作型软件很难
操作型软件基本上呈现了一个对象的映射──用户直接操作虚拟机器的模型。因为,“操作”属于工业设计的范畴,所以,操作型软件偏重于工业设计方向。
试想一个用来对小报纸进行排版的工具。用户会花很多时间在一个虚拟空间进行大量的拟物理操作──写作、绘画、删节、移动、旋转、拉伸、剪裁、层叠等等。和其他工业设计一样,设计中的最大挑战是使这些机器容易操作,容易理解且十分舒适。然而,在一个物理空间,每次操作都使用一个专门的工具。而如今,我们需要设计一个"万能工具" 让它完美的结合所有功能(并将这些功能通过两种手势实现,即"点击"和"拖拽" ) ,这是一个重大的挑战。
虽然“操作”是个焦点,但良好的操作型软件必须同时提供优秀的可视化呈现。这才能确保对于一切创造性行为都至关重要的反馈循环保持顺畅──操作者需要及时获悉她的操作结果。因此,设计操作型软件在图形设计方面也存在巨大挑战。
举例来说,报纸编辑要查看页面的呈现效果──近距离效果,远距离效果,以及与其他页面是否协调。她希望查找出错别字,不恰当的语句。她想知道那些过长或过短的专栏如何通过排版进行调整。她想知道哪些故事和广告仍未被排在版面上,它们的篇幅有多大,该如何安排它们。她想知道最近哪些连载话题已接近尾声,读者的反响如何。要注意的是,在呈现这一切信息的同时还决不能分散编辑注意力,导致她偏离“调整页面布局”这一核心任务。
此外,工业设计和图形设计运用于操作型软件设计时必需紧密协同,因为需要通过图形设计展示对象如何被操作──机械化产物,图形化描述。更富有挑战性的是通过图形设计展示如何操纵抽象对象,如:音乐或财务数据,不仅要用图形告诉用户该怎么操作它们,更重要的是让用户理解哪个图形代表它们。
面对接连不断的设计挑战,想设计出一款优秀的操作型软件绝非易事。幸运的是,要设计一款功能强大的软件,“操作”非但不是必要的,而且完全是可以避开的。
最佳的软件是信息化软件
J.C.R. Licklider 在一次回顾自己如何运用工作时间时提到:
在1957年的春夏之交⋯⋯我试图持续跟踪一名中级技术人员(我自己)在工作时间内到底做了些什么⋯我大约85%的思维时间花在进入的某项思考,作出决定,并从中获取我须知的事物。更多的时间花在寻找或获取这些引发我思考的信息。一些时间用于绘制图形,另一些时间用于指导助理如何进行策划。当图像完成时,一切关系便清晰明了,但为得到这个结果,之前不得不花大量的时间进行信息搜集和策划⋯我回顾整个过程,我的大部分"思维"时间都花费在事务性或机械化的行为上:搜索,计算,绘图,变换,以及确定对于逻辑或动态结果的假设,设置解决的路径。
正如Licklider,Vanevar Bush和Doug Engelbart等早期的梦想家所假设的──个人计算机是大脑的补充,通过数据可视化和自动化分析能够增强人的记忆力和推理能力。他们最关注的是一台机器如何帮助一个人找到并了解相关知识。虽然,当时他们普遍在学术和专业制造层面展开讨论,但他们的预想仍十分适用于现代社会。
大部分时候,一个人坐在自己的计算机前,不是进行创造,而是阅读,观察,研究,探索,使认知产生联系,并最终理解事物。她并不追求创新,而是梳理自己已获得的知识。计算机成为一个提出问题,进行比较,得出结论的媒介──对,就是认知的媒介。
人们利用软件学习文字,了解今天哪些国家被轰炸,学习如何烹饪西班牙肉菜饭。他们选择播放哪些音乐,打印哪些照片,还要计划今晚、明天要做些什么,甚至把下周二2:00要做什么都计划好了。他们对众人在私下或公共场合的言论保持关注。他们为母亲搜索一本书,为父亲物色一件外套,为孩子选购一辆车。他们寻找合适的公寓居住,条件是只要包含一张双人床就行。他们询问某部电影何时上映,以及如何开车到剧院,看电影前上哪儿吃饭,饭前去哪里兑换现金。他们查找各种数字,从简单算术问题到财政计划。他们询问货币,从股市行情的历史记录到以银行账户差额。他们问,为什么他们的车无法启动,怎么修理;为什么他们的孩子生病,如何治疗。他们不再坐在阳台瞎猜明天是晴是雨──他们什么都要问软件。
目前很多软件为了实现上述需求提供各种机械化隐喻和对象以供操作,但这都是自欺欺人。人们并不关心这些软件如何操作,他们关心的是查看信息并做出选择──在他们的心里操作模型。
比如,日历或日程管理软件。目前许多设计是以操作“日程安排”的数据库为中心的,但这真的是日历存在主要目的吗?在我看来,日历的作用应该是将收集到的信息互相结合,找出关联并展示出来。我想知道:我今晚有什么计划;我的朋友们有什么计划;市中心有什么活动;电影院在上映什么片子;比萨店最晚营业到几点,哪天歇业;我希望看到我任务节点之前的工作模式,以及如何推断未来的任务节点。我想看看这所有的信息如何互相交织,形成关联,然后决定我何时做何事。和牙医确定就诊时间是件烦人的小事,如果软件可以自动标出牙医在邮件确认的日期,也许就能省去麻烦。我的目标是通过日历软件查询或记录何时做何事,比较各种方案,最终作出决定。
看看个人财务软件。登录软件并对我的开支进行分类需要经过一堆繁琐和不必要的操作──我的信用卡已经记录了所有细节。我使用这个软件是为了了解我的财务状况和我的消费习惯。我的薪水中多少用于支付租金?多少用来下馆子?如果我放弃频繁光顾饭店,我是否能够用省出的钱购买一台新的笔记本呢?我的圣诞节消费清单里有些什么,哪些方面的消费有办法削减,如果我不上班我的存款是否够我花上一个月?如果我买混合动力车,我能够节省多少煤气?我提出或解答问题,比较我的方案,让它引导我的开销决策。
看看线上零售商,如Amazon或Netflix。网站上显示照片,评级,评论,建议的唯一目的就是让我找到,了解,并比较它们的商品。这些都是为了让我在脑子里做出决定。最后,我操作购物车去购买商品,这仅仅只需把我通过心理流程作出的决定付诸实践。最好的零售商认为:操作要尽可能做得简单。
再看看阅读电子邮件的例子。目前大多数的设计关注于对单个邮件的操作──逐个阅读,检索,整理,归档,删除。但阅读电子邮件的目的已经完全与获取消息这个最初目的无关。我阅读电子邮件,是为了维护一套不断更新的心理认知系统──人际交往,工作项目进程,以及邀请函、任命信、商业交易单和邮寄包裹单等等,在邮件中反映出的状态。这些信息被打上大段文本时间戳并输出,这是沟通过程中的执行细节。但未必是一个向读者展示信息的好办法。
类似的例子可以举出很多。忽略当前的软件设计,单思考这个问题,“为什么人们使用它?”将答案抽象化后的结果几乎是一样的,“为了认知”。
虽然这类问题目前只在哲学层面被讨论。但这一哲学暗示着软件设计中一个非常实用的方法。
(未完待续)