2001年12月15日,也就在他那本《The inmates are running the asylum》的中译本《软件创新之路–冲破高技术营造的牢笼》出版没多久吧。
“交互设计之父”Alan Cooper作客UMLCHINA讨论组的聊天室,畅谈交互设计。Alan Cooper是软件交互设计的先知和传播者,客户咨询公司Cooper Interaction Design的创始人和总裁。他设计了第一个可视化开发工具Visual Basic,他的公司帮助IBM、3M、Ericsson、Sun、Visa…等客户开发了许多具有市场竞争力的产品。
由dewen翻译
fly cat: 大家对您的《软件创新之路–冲破高技术营造的牢笼》这本书有很深的印象,在这本书中你想说的是什么呢?
alancooper: 我尽力想阐明另外一条关于软件如何设计和发展的思路。
extreme: 能告诉我在哪儿能下载这本书的英文版本吗?谢谢!
alancooper: 我想可能没有地方能够下载到该书完整的英文版本,你可以从Amazon.com在线购买一本。
umlchina: Cooper先生,你认为Windows的界面怎样?和Mac比较呢?从交互设计的角度出发!
alancooper: 我认为Windows和Mac的界面是相似的。
umlchina: 相似--那是好还是坏呢?
alancooper: 在1984年是同样的好,但在2001年,就是同样的过时、灰暗和单调了。
yuminghui: 绝大部分中国大学生仅仅知道简单的VB编程,但是却认为自己是顶尖高手。
alancooper: 在美国也是如此。
yuminghui: 我指的是那些年轻的家伙,包括那些刚开始编程的人。他们在开始时不应该用VB或UML等类型的工具。
alancooper:优秀的程序人员编程不依赖于任何具体的程序设计语言。
boss_ch: 你认为Windows XP的界面怎样?
alancooper: 我认为Windows XP和其他的Windows及Mac是一样的。
extreme: 据说C#将很快取代VB,Cooper你对此怎么看呢?
alancooper: C#看起来象一个很好的语言。
guodd: 顶尖的程序员是否象艺术家?
alancooper: 我不认为编程是一种艺术,我觉得它像一种工艺,就象制陶或吹制玻璃。
fly cat: 你强调了交互设计的重要性,不过在我看来,当一个程序需要人机交互的时候,它是有用的。不过对于有些程序来说…. 例如对于实时监控设备的内嵌系统,还有用吗?你认为呢?
alancooper: 我不认为交互设计对于程序员做任何系统都是有效的,交互设计是针对交互设计师的。
fly cat: 编程是工艺,但是设计是艺术?
alancooper: 设计也是一种工艺。
extreme: Cooper先生,你认为作为一个交互设计师需要什么样的背景或知识基础。
alancooper: 好的交互设计师需要接受交互设计方法的培训。
extreme: 你是说,绘画或者艺术?
alancooper: 艺术意味着在软件设计或规划方面没有规则。
shenqw: 交互设计师需要懂得编程吗?
alancooper: 交互设计师需要懂得什么对于程序设计人员是重要的,但是不需要知道怎样编程。
fly cat: 什么样的工作背景对交互设计师来说是最重要的?技术或市场?
alancooper: “技术和市场”,两者都不需要,交互设计的字义本身就已经说明了它自己。
extreme: 我猜想他可能需要懂得心理学方面的知识,你说呢?
alancooper: 交互设计师必须知道哪些对于心理学家是重要的。
yuminghui: 这样说来老板需要招聘心理学专家参加项目了?
alancooper: 不,正好相反,因为有了交互设计师,所以他们再也不需要心理学专家参加项目了。心理学专家不能设计交互系统。
wrymy: 现在流行的网页设计,例如HTML、XML等,我们发现想找一个界面友好的网站是很困难的,特别是企业网站。Web页面上的控制是非常困难的,特别是当界面很复杂时!
alancooper: “网页的控制非常困难”,千真万确!
shenqw: 但是交互设计师怎样知道他们应当在屏幕上显示什么东西?
alancooper: 这和程序员知道该在编辑器中输入什么样的代码一样!
wrymy: 那么你对于网页的编写有什么建议吗?
alancooper:把所有的交互组件放在一个页面上。
extreme: 如果某人想成为一个交互设计师,他应该怎样做呢?
alancooper: 停止编程。
extreme: 为什么要停止编程?
alancooper: 因为程序员和设计师的目标是有冲突的,你不可能同时做好两件事情。
umlchina: “程序员和设计师之间有冲突”:但是他们在同一个团队中。
alancooper: 不,程序员和设计师的“目标”是有冲突的。
extreme: 看来我没有机会成为一个交互设计师了,因为我是如此地喜欢编程。
alancooper: 如果你如此喜欢编程,为什么你想成为交互设计师?
fly cat: Cooper先生,你能简要描述一下交互设计的实质吗?
alancooper: 让技术为用户服务,而不是让用户服务技术。
extreme: 那么,你认为作为一个程序员或PM应当了解交互设计吗?
alancooper: 好的交互设计师在你采用他们的计划时可以给出令人信服的原因。
umlchina: 一个好的交互设计师一般使用哪些工具?你能介绍一个吗?
alancooper: 我们用定性的现场调查技术,用户建模方法,设计原则,设计模板,许多纸和白色书写板。
extreme: 但是如果作为一个PM对此没有任何了解,我怎样知道那小子将带领我们走向成功呢?
alancooper: 对,你怎样才能知道呢?编程方面的知识能帮助你吗?我认为不能。
extreme: 那么,什么能帮助我?
alancooper: 一个交互设计师。
extreme: 但是我认为现在在中国发现一个好的交互设计师不是很容易。
alancooper: 寻找一个好的交互设计师和寻找一个好的程序员同样的困难,在任何地方都是如此。
wrymy: 我认为extreme的意思说,怎样判定交互设计师设计的好坏呢?
alancooper: 为什么程序员要越过交互设计师来参加判断呢?
hdw1978: 灵感,在绝大多数的案例中,你从哪里得到灵感?
alancooper: 程序员从哪里得到灵感?
umlchina: 有什么好的参考书能告诉我们怎样一步一步来做交互设计?
alancooper: 还没有,但是我们现在正在编一本。
fly cat: 我有一个感觉,Cooper先生是想鼓励我们自己寻找答案,而不是直接告诉我们。
alancooper: 交互设计不是工程类学科。
umlchina: 对于新书的编写你有什么计划吗?
alancooper: 在Cooper有两个高级设计师从事教材编写的工作。
extreme: 我建议Cooper先生做一个中国的培训计划,以便能给我们一些实际的指导。
alancooper: 这是一个好注意。
shenqw: 什么样的人能够成为交互设计师?他们应当有哪些方面的能力?
alancooper: 交互设计师需要具备凭空想象复杂行为的能力,交互设计应当在任何代码编写之前做。交互设计师必须能够在代码被写出来之前,想象它是做什么的。
fly cat: 但是我认为如果交互设计师没有实际的经验的话,他们想建立威信是非常困难的。
alancooper: 确实如此
extreme: 这种凭空想象复杂行为的能力能够训练出来吗?
alancooper: 只有当你生来就是个天才,才不用接受训练。就象如果你生来就是编程天才,就不需要编程能力训练一样。
fly cat: 我感到很困惑。
alancooper: 困惑–这是一个非常好的开始!
fly cat: 然后呢?
alancooper: 然后你得作好准备学习一种非常困难、非常不同的技术。
alancooper: 我不懂一个工程师为什么想做交互设计师?工程师们厌恶交互设计师所做的工作。交互设计师要处理的是人。没有CPU、编程语言、*作系统!
extreme: 我们只是想能更好地和交互设计师沟通。
alancooper: 这真是太好了!
shenqw: 按你的观点,交互设计师必须有一些编程经验吗?
alancooper: 为什么你这样认为呢?
fly cat: 因为如果他没有编程方面的经验,他想让程序员听他的将非常困难。
alancooper: 你的意思是工程师不听从交互设计师的安排?为什么不呢?
hzmajw: 艺术家能从事交互设计师的工作吗?或者办公室助理能从事交互设计工作吗?
alancooper: 交互设计不是艺术。办公助理能写代码吗?交互设计与写代码相比是一个复杂的、老练的、困难的工作。
fly cat: 在交互设计师建立他的威信前,形势是非常困难的。成为一个好的程序员也是建立他的威信和自信的一种方法。
alancooper: 为什么交互设计师要向程序员证明自己?为什么不是程序员向交互设计师证明自己?
fly cat: 但是在实际中,这是现实存在的。
alancooper: 我的工作就是要改变现实。
shenqw: 好,交互设计师不需要编程经验。那他怎样在代码被写出来之前想象它是做什么的呢?
alancooper: 那是交互设计师要做的,如果你不能做到这一点,你就不是一个交互设计师。
developerly: 在你成为一个设计师之前,你做过编码方面的工作吗?
alancooper: 仅仅做了大约15年。
extreme: Whao!仅仅15年!
fly cat: 在我看来,你也需要通过VB之父这种经历来建立你的权威。
alancooper: 我编写了VB的可视化部分的代码。
developerly: 那么你认为你的编码经历对你的设计工作曾有过帮助吗?
alancooper: 在我的公司,我们有40位交互设计师,他们没有一个人写过代码,他们只是将代码要实现的功能形象化。
extreme: 这样的话,你怎样让我相信一个好的设计师不需要了解任何编程方面的东西呢?
alancooper: 许多Cooper’s的设计师从来没有写过一行代码。
umlchina: 有没有交互设计方面的工具?
alancooper: 有,但是没有一个能脱离软件。
alancooper: 你们刚才问我的问题,和六年前加州的程序员们问我的问题差不多。
extreme: 那也是为什么我们要来这里听一些意见的原因。
alancooper: 我真的感激你们的参与和对此的兴趣。
fly cat: 好象一个好的程序员很难成为一个好的交互设计师。
alancooper: 为什么他们想成为交互设计师?
umlchina: 既不是艺术家,也不是程序员,想开发这样一个新的职位是很难的。
alancooper: 对,没错。我们现在已经做到了。
fly cat: 在中国,程序员的发展之路是:编码–>设计–>管理。
alancooper: 我认为这是不正确的。应当是初级程序员–>程序员–>高级程序员;初级设计师–>中级设计师–>高级设计师;初级管理者–>中级管理者–>高级管理者。程序员通常是一个差的设计师和差的管理者。所有的工作职称都含糊不清和令人困惑。
jazy: 我想你的意思是交互设计师负责表达,程序员负责逻辑,缺少任何一部分都将做不成事情。
alancooper: 你说得对。“缺少任何一部分都将一事无成”:对,对,对!!!!!
hzmajw: 每个人都应当考虑哪种角色最适合他自己。当他有目标时,他将能把他的工作做得很好。
alancooper: 真正喜欢编程,而且确实精于编程的人,应当继续编程,做别的都是浪费。
extreme: 但是有时候老板需要你成为一个PM,那应该怎么办?
alancooper: 那老板应当回去编程。
extreme: 你现在已经成为一个著名的交互设计师了,这是否意味着你不再喜欢编程了?
alancooper: 我喜欢,但是我对它不再有足够的兴趣了。
fly cat: 但是我认为,当我们年轻时,我们喜欢做一些编程方面的工作,去了解一些事情,然后我们有了更多的经验,自然地我们就想做一些设计方面的工作。
alancooper: 这仅仅对有些人来说是对的。
umlchina: 根据你的交互设计观点来看哪一种手机更好?Motolora, Nokia, Ericsson?
alancooper: 我认为他们都是垃圾。
umlchina: 但是…他们都很笨吗?加上microsoft、IBM?他们都是一样的笨?
alancooper: 手机不应该成为一团。为什么我需要将键盘举到我的耳边?为什么作为一个和人交流的工具要有号码?我认为手机应当是隐形的,一个带小型麦克风的听筒放在头部。
extreme: 隐形是什么意思?藏在衣服里?
alancooper: “藏在衣服里?”,这是一个好的开始。
fly cat: 蓝牙?!
alancooper: 蓝牙是一个好的主意,但不是一个非常好的协议。手机最重要的部分是如何控制它,而不是如何通话。为什么手机需要用到我的双手、双眼、一只耳以及我全部的注意力?
品雪: 有很多这样的例子:用户告诉你需要在很短的期限内完成项目,然后给你提出许多不断变化的需求来。这里还能有某种交互设计吗?
alancooper: 这只能说明那里的管理非常差。
品雪: 您对这样的坏环境有什么建议吗
alancooper: 建议,在没有完成软件行为描述文档前,告诉管理者不要让你们开始编码。功能和表达不是一回事。特征和行为不是一回事。
extreme: 你认为我们能怎样将行为文档化?
alancooper: 画图形。
extreme: 用什么工具?photoshop?
alancooper: 用铅笔。我们经常用白板。PowerPoint也挺好的。
extreme: 那么,我们到哪里和怎样发现这样的设计师呢?
alancooper: 他们就在那里。可能不在编程人员中,可能在技术支持,测试,文档编写…等人员中。当交互设计师被压抑如此长的时间之后,寻找他们是非常困难的。
umlchina对品雪说: 我认为交互设计是对产品的,而不是对项目的。
alancooper: 产品和项目,其中的差别是不明显的。对于用户来说,没有一个比设计更重要。
fly cat: 在美国,交互设计师是否已经普及了?
alancooper: 正在不断发展。
umlchina: web将何去何从?HTML作为交互设计并不适合?
alancooper: HTML是垃圾。
fly cat: 在美国推广交互设计遇到的最大困难是什么?
alancooper: 让高级主管相信不需要花费很多金钱和时间,他们的软件可以有重大的变化。
umlchina: 但是它简单。
extreme: 也流行。
alancooper: 所以是犯罪。
extreme: 但是对于在互联网上的信息交流,它做得非常好。
alancooper: 不,完全不是这样。
umlchina: 流行<–>犯罪?
alancooper: HTML<—>犯罪!许多HTML的限制能通过好的设计来弥补,但是很少有程序员能听从设计师的意见。越过HTML的限制也需要大量复杂的代码。
fly cat: 你考虑过在中国推广你的观念吗?仅仅依靠书是不够的。
alancooper: 我现在正在推广它们。回去也请告诉你们的老板!
extreme: 我非常希望能在中国看到你的书的英文版本。
alancooper: 我也想看到我的书在中国销售。
kenxia: 多少钱?我希望它不要太昂贵。
alancooper: 对书我没有办法控制,它由出版商决定。
fly cat: 你能列举几个不是你们公司的好的交互设计师吗?可能他们和你做同样的事,但是不叫交互设计。
alancooper: Rob Haitani设计了Palm Pilot。Ben Schneiderman设计了SmartMoney.com marketmap。
kenxia: 你认为C++怎样?
alancooper: 学习C++和学习弹钢琴一样容易。
umlchina: WEB将走向哪里?既然HTML是垃圾。
alancooper: 更聪明的浏览器。它应当能记住信息,将相关资料写到磁盘上,和服务器交互通信。它应当有更好的交流方式,比如象拖拉、卷动、刷新。
extreme,umlchina: “往磁盘上写信息”安全吗?“聪明的浏览器记录资料”与隐私权相冲突吧?
alancooper: 对,那是需要解决的问题。但是解决起来并不困难。
fly cat: 如果交互设计师做错了一些事情呢?他们在项目中的地位是如此重要,所以很容易毁了所有的事情。
alancooper: 如果程序员做错了一些事情呢?
extreme: 解雇他!
alancooper: 对,专业人员不能犯错误。
smilemac: Alan你好,对于一个项目中有限的时间及好的交互设计之间的冲突你是怎样看的?
alancooper: 为什么有时间限制?谁将时间定得这么短?为什么定得这么短?他缩短时间是为了什么?
joy_wind: 时间就是金钱。
alancooper: 浪费了的时间是金钱。
joy_wind: 老板关心他的钱,我们关心项目。
alancooper: 管理者将时间期限定得短是因为他们不知道程序员在做什么。交互设计师能告诉管理者程序员在做什么。交互设计师能给程序员争取更多的时间。
extreme: 按你书中的观点,管理者必须布置一些事情。
alancooper: 仅仅是因为在程序被做出来之前,他不知道它是什么样子的。
smilemac: 例如市场压力、预算、管理水平等等,这些都可能造成项目时间限制,许多产品是它们之间相互妥协的结果。
alancooper: “…市场压力,预算…”,所有的都是管理者掩饰他对程序不了解的借口。
fly cat: 我认为交互设计关注的焦点是用户的需求而不是设计。
alancooper: 对!!!就象我在前面所说的,交互设计和用户界面设计不是一回事!
extreme: 那么谁负责确定软件将要做什么?交互设计师吗?
alancooper: 交互设计师就是具有能非常好地解答上述问题,以便别人顺利完成任务的人。
extreme: 谁控制过程?交互设计师吗?
alancooper: 过程应该由管理者来控制。
joy_wind: 交互设计师的工作职责是什么?
alancooper: 程序的外观和行为应该由交互设计师控制。技术和编码应当由程序员控制。
kenxia: 控制?通过权力还是通过技巧?
alancooper: 今天程序员通过什么来控制呢?他们好象不需要特定的技能来做设计。
extreme: 这样的话,交互设计师看起来象分析员。
alancooper: 交互设计师的工作之一就是分析。但是“分析”不是设计。
joy_wind: 交互设计师是否更像建筑师?
alancooper: 对,对,对!!!
extreme: 但是一个毫无编程知识的家伙怎样来做分析呢?
alancooper: 那程序员怎样能决定用户想要什么呢?
extreme: 我不是说程序员应当了解需求,我仅仅是想说,一个交互设计师应当了解一些编程知识以便做一些分析工作。
alancooper: 为什么?我觉得你的真正意思是你担心交互设计师将会让你去干一些愚蠢的事情!
extreme: 对,我不认为一个对编程毫无了解的人能做好分析工作。
alancooper: 但是一个好的专业交互设计师不会设计出不能实现的、难以运行的东西。
品雪: 你说的分析主要是关于用户知识领域。
alancooper: 对!
tipsyy: 那么请告诉我,交互设计师在一个项目中负责做什么?他担负什么样的职责?
alancooper: 交互设计师应当负责程序做什么和怎样表达。我们设计项目的第一部分是针对问题域详细研究项目。
smilemac: 交互设计师和项目管理者可以是同一个人吗?
alancooper: 为什么?为什么让一个领域的专家工作于另一个领域?
fly cat: 时间快到了,你们认为结束聊天好吗?
alancooper: 我想我必须走了。很高兴有机会和大家谈话。非常感谢大家!!!!!