叶展 人机交互分析师推荐

  读经典著作如同饮醇酒,回味隽永。而给经典著作写序,则如推销醇酒与人,在别人的沉醉中分享快乐。

  摆在我面前的就是一本经典著作,一本计算机领域的经典著作。众所周知,计算机领域多的是应景之作,比如某某软件版本 X.0 的使用指南之类,而少能经得起时间考验的经典著作。其原因一方面是计算机领域发展迅猛,知识更新代谢极快;另一方面,则是计算机领域应用重于理论,所以有思想深度的著作比较少。

  一本书要成为经典,起码要两个条件。其一是著者是拥有深邃的思想,且文笔流畅。大师级人物,往往单从文字上的修养就看得出。比如经济界的 George Stigler (诺贝尔奖获得者,被誉为经济学界一支笔)和软件工程方面的 Frederick Brooks (《神秘的人月》著者),他们的著作拿起来阅读几段,你马上就可以在行文中感到那种大家的雍容风度。而更重要的是,大师们在书中所讲述的往往不是细枝末节的技巧和技术,而是一种深邃的思想方法,可以给人以深层次的启发。那种风度和深度,是难于模仿的。

  要成为经典的第二个条件是作者的思想要经得起时间的考验。对计算机书籍来说,起码要能经过 10 年的考验。这个标准比之其他领域已经是很宽松的了,但在这个标准下大部分计算机书籍会落马。

  以笔者来看,本书基本上符合前面的两个条件,是一本计算机领域的经典之作。

  本书的作者 Alan Cooper ,是计算机业界一位成名高手。除了早期在 Visual Basic 方面的工作外(他被誉为 Visual Basic 之父),更重要的是他曾站到了一个新领域的前沿,参与并影响了软件开发领域一次深刻的变革。而这个新领域,就是人机交互( Human-Computer Interaction )。这个变革,是软件开发领域的第三次革命。

  在软件开发领域出现过三次革命—— 50 年代高级语言的出现,使得软件开发从机器硬件(机器语言)的束缚中解脱出来,程序员能够从(抽象+结构)层次来进行思考。此为第一次革命。 70 年代软件工程兴起,使得软件开发的注意力由语言和编译器技术拓展到软件开发的过程( software process )。人们意识到:要提高一个软件产品最终的静态质量,必须提高这个产品产生过程的动态质量。此为第二次革命。而 90 年代以来,随着计算机软件和商业行为的联系越来越紧密,特别是互联网的兴起,人们进一步认识到:软件不是孤立的,软件的质量并不是仅由其本身就能决定的,而是由(软件+用户)这个大系统来决定的。软件的成功,在于是否它能够成功嵌入到用户的商业活动中。对人的因素的重视,使得一门新的领域崛起。这就是人机交互。经过十几年发展,人机交互理论已经全面改观了一般商用软件设计开发的流程和方式,成为业界的标准。是为第三次革命。

  每次革命或变革,都会有豪杰之士涌现,为改变旧的思想和宣传一种新的思想而摇旗呐喊,成为领导变革的预言家和代言人。在 90 年代,一批人物涌现,一批著作发表,为人机交互理论在业界的应用打开了局面。 Donald Norman 在 1990 年出版了《 The Design of Everyday Things 》, Jakob Nielsen 在 1994 年出版了《 Usability Engineering 》,本书作者在 1995 年出版了本书的第一版。这些人的著作,都是经受了 10 年考验的,现在都成了经典。他们当时的思想,现在已经成为业界的主流。他们也自然而然地成为了人机交互领域举足轻重的领导者。

  阅读本书,最重要的是了解作者所阐述的关于软件设计开发的高层次理念和指导思想。因为作者是最新一次软件开发思想变革的积极参与者,他亲自现身说法写的书当是记录这个思想变革的宝贵的第一手资料。正因为如此,笔者窃以为本书的第一部分最是重要,乃为全书的灵魂。这部分从了解用户,了解用户需求讲起,到构建用户模型,到设计 scenario 来描述软件系统现在和未来的行为模式,到如何把对用户的理解和行为模式转换为设计方案。作者不仅把软件设计的整个过程流畅清晰地描述出来,而且真知灼见不断涌现于其中。下面随便列举一二:

  软件的设计和开发,不要囫囵吞在一块,最好要分成两个单独的过程——设计过程和开发过程: 传统的软件工程理论,是对整个软件设计开发的过程化研究,而更侧重编程测试和项目规划部分,并且把设计和开发混在一起。而现在人机交互理论,实际上是把软件设计这部分提出来,是对软件设计的过程化分析,还借用了认知心理学和其他领域的成果。目前业界普遍认为:对商用软件来说,这两个阶段分开,有助于软件质量的提高。

  应当以用户为中心去设计软件,而不是以某项新技术或者技术人员为中心去开发软件: 这一点是软件走出象牙塔,渗入人类生活和商业领域的必然后果。作者虽然是程序员出身,但对以程序员(技术的代表)为核心的软件开发的局限性有清醒的认识,并指出这种方法再也不能适应开发软件产品的需要。基于用户的设计( User-Centered Design )是 90 年代以后被“炒”的最火的一个词。它实际上是说在软件设计过程中要围绕用户和商业活动来进行,是不是围绕技术和程序员来运行。

  决定软件成功与否的,不是一个软件有多少个功能,而是这些功能是否有用和好用。

  设计软件,重要的是设计用户行为: 作者所极力鼓吹的一个新的名词——交互设计( Interaction Design )的含义就是软件设计师设计的不是死的软件,不是静止的界面,而是活的行为,是用户和软件硬件环境之间的动态交互,并寻求动态的最优。

  需要指出的是:以上思想,在 1995 年本书初版时乃为革命,与今则为业界常识——起码是美国商用软件开发领域人所共奉的常识。现今但凡大一点的和软件开发有关的公司,其软件设计开发过程都按作者所提出的思路改进过。从另一个角度讲,这更体现了 90 年代这场变革的影响之深远。

  在本书的第二部分, Alan Cooper 介绍了一大把新概念和新名词(众所周知, Alan Cooper 在业界有卖弄新名词的“不良”嗜好。业内人最爱开的玩笑之一就是传说在什么什么会议上 Alan Cooper 又发明了一个新的英文词。当然能够在计算机业内成为这种玩笑的对象本身就说明这个人很有影响力。)这些新名词,由于是独此一家,别无分号,读者读来需要一定的辨别力。需要记住的是:虽然这些名词比较新奇,但其含义和基本思路应该是容易接受的。

  与前两部分比,本书的第三部分就完全是实用性的了,有诸多实际的设计案例和讨论,而且主要是基于现有图形用户界面的格局。

  由于本书的这种结构——由抽象理念入手,到具体的设计方法和案例,使得它适合各类读者阅读。软件公司的领导者可以通过前两部分了解软件行业的最新思潮,并以此为指导思想来改进自己公司内部的软件开发流程。软件开发人员,可以学习书中介绍的具体的方法,更可以从更实际的案例讨论中获得启发。对学生来说,除了学习编程等“硬”技术外,通过读书了解一下软件行业“软”的思想,拓展眼界,受益将会不浅。

  国内软件行业经过多年发展已经初具规模,当然在发展的过程中也遇到诸多问题。目前的一个共识是中国软件业和外国比,最大的劣势并不是在具体某项技术或者编程方面。中国的勤奋而又有天分的程序员,可以获得美国业界的编程大奖。由此可见单打独斗中国人是可以的。但项目一大起来,中国软件业的固有劣势就显现出来了。中国的传统弱项主要是在软件工程和软件过程等方面。而现在西方软件行业又进了一步,在软件工程的基础上搞出了人机交互理论,又引发了一次革命。我们目前对这场革命的了解还是很肤浅,人机交互领域在国内的科研、教学和应用都还在起步阶段。这就很有些旧的差距没有弥补上,新的差距又产生了的危险。这本书现在被介绍到国内来,将有助于我们填补这方面的差距。此其时也!

   叶展
  人机交互分析师
  2005 年 7 月于美国芝加哥


  叶展,清华大学自动化系本科毕业,后赴美留学,先后取得伊州理工学院( Illinois Institute of Technology)的计算机硕士学位和卡内基美隆大学(Carnegie Mellon University)的人机交互(Human-Computer Interaction)硕士学位,现在美国BCS管理和IT咨询顾问公司任职。叶展目前主要的研究和工作领域是人机交互理论在游戏设计中的应用、人机界面设计与评测、以及软件开发流程设计和管理。是这些领域有一定影响的专家,并应邀在包括CHI等一系列重要国际会议上发表了论文和演讲。