“交互設計之父”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: 許多Coopers的設計師從來沒有寫過一行代碼。
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: 我想我必須走了。很高興有機會和大家談話。非常感謝大家!!!!!
|