Don Norman 冰箱的啟示

Don Norman 冰箱的啟示

唐·諾曼(Don Norman)的冰箱

唐·諾曼(因在《設計心理學》(The Design of Everyday Thing)中推廣了“直觀功能(affordance)”而聞名)講述了一個關於他的舊冰箱溫度控制的故事:


我曾經有一臺普通的兩格冰箱,沒有什麼特別之處,問題是我不能正確地設置溫度。冰箱只有兩個東西可以控制:調節冷凍層的溫度和調節冷藏層的溫度。這裡有兩個控制鈕,一個標記著“冷凍”,一個標記著“冷藏”。問題是什麼呢?


這兩個控制鈕不是獨立的,冷凍層控制器也影響到冷藏層的問題,反過來,冷藏層控制器也影響到冷凍層的溫度。


從人類角度,對於冰箱會有的一個自然想法是:冰箱有兩層,我們會想要獨立控制這兩層的溫度。然而,冰箱顯然不是這樣工作的。為什麼不是呢?諾曼說道:


事實上,只有一個恆溫器和一個製冷機,一個控制器調節溫度,另一個控制器調節送入冰箱兩層隔間的冷空氣的比例。


不難想象為什麼這對於比較便宜的冰箱是一個好的設計:它只需要一個製冷機和一個恆溫器。節省了重複零件的成本,但代價是造成了用戶的困惑。在這個情況下的根本問題是機器的結構(一個恆溫器和對冷卻效能的分配)和人類想要的結構發生了錯位。為了使冰箱的行為和人類想要的行為相匹配,在某種程度上,需要有人去在這兩個結構之間進行轉換。在諾曼提到的冰箱的例子裡,這個轉換很糟糕,導致大家很困惑。


我們把用於結構之間進行轉換的方法或工具稱作“接口”。因此,創造好的轉換方法或工具就是接口設計。


接口(界面)設計


在編程中,類似的問題是 API 設計:將一個軟件內部使用的數據結構,以一種有用的,好理解的方式呈現給外部的程序員。如果系統的內部數據結構和用戶想要的結構不匹配的話,那就要由 API 設計者來進行轉換。一個“好的 ”API 可以很好地進行轉換。


用戶界面(接口)設計是一個相同問題的更普遍的情況,把一個工具使用的內部結構,想辦法以一種有用的,好理解的方式呈現給外部用戶。理論上。與 API 設計的唯一區別是,我們不再假設用戶是通過代碼與工具進行交互的編程者。我們設計界面去滿足人們的各種使用場景,可能是門上的把手,或者移動應用上的按鈕,或者是冰箱上的溫度旋鈕。


從經濟上來說,界面設計是一個必要的輸入方式,讓各種事物變得更經濟更有用。這種輸入方式有多稀缺?人們願意為一個好的界面或接口花多少錢呢?


我的印象是:很多。有一整類的科技公司的商業模式是:


- 找到一個很有用的軟件工具或數據庫,但是界面做得很差;


- 為它建立一個更好的界面;


- 通過這種模式來獲利。


這在小型但有盈利的軟件公司中是一個非常常見的模式。這種模式是一個小的團隊可以構建一個工具,來擁有一小部分高付費高忠誠度的用戶。這是一個很有性價比的商業模式,你找到那些在用“A”工具的人,但發現它很難用,然後你就可以對他們說“看,我們提供的工具讓 A 好用很多。”比如:


- 為政府系統提供接口的公司:提供稅務服務、旅遊簽證、專利或商業許可。


- 為沒有相關專業知識的小企業提供接口的公司:建立網站,Salesforce,企業架構、人力資源服務或航運物流。


- 為數據提供圖形界面(接口)的公司,例如網站流量監測、銷售渠道、政府合同或市場基本面信息。


我們可以在科技領域之外找到更大的例子,人類自身就是一個接口,整個行業由作為接口的人組成。


這怎麼理解呢?整個稅務、法律合同、遊說的行業。原則上說這些事情你可以自己完成,但這個系統是複雜和令人困惑的,所以有一個專家在你周圍把你想要的東西轉換成系統結構是有幫助的。


在某種意義上,整個軟件工程領域就是一個例子。軟件工程師的主要工作就是去把人類想要的東西轉換為電腦可以理解的語言。人們使用軟件工程師是因為相比對著 Juptyer(一個 Python 編程語言的編輯器)中的一個空文件來說,跟軟件工程師交談是一個更容易的接口(雖然也很難)。


這些都不是廉價的行業。律師、會計、說客、程序員,這些人都是複雜系統方面的專家,他們得到相應的報酬。世界花費了大量使用人作為接口的資源,這表明這種接口是一種非常稀缺的資源。


為什麼這麼困難


諾曼的作品中充滿了很多有趣的例子,以及用來把工具內部結構準確地傳遞給用戶的普適性的技巧,一個經典的例子就是,在門上,把手即代表“拉”,平面即代表“推”。從這一點上,我想人們會對這些技巧有一個很好的理解,而且它們正在逐漸傳播開來。但是隻有這個系統的內部結構本身非常簡單時,比如一扇門或一臺冰箱,精準地傳遞系統的內部結構才是有用的。假如我想寫一份合同,那麼我需要去和合同法的系統進行對接,想要準確地傳遞這種結構,甚至只是總結關鍵部分,那是需要讀完整整一本書的。


對於很多非常簡單的系統而言,界面(接口)設計所關注的主要問題就是準確地傳遞內容,這包括大部分日常的物品(比如冰箱),以及大多數的網站和移動應用。


但是,有些地方我們會看到比較昂貴的負責提供接口的行業,比如法律行業或軟件行業,這些行業通常底層系統更復雜。在這些情況下,人類想要的東西的結構與系統的結構差異非常大,兩者之間的轉換需要大量學習和實踐。僅僅準確地傳遞系統內部的結構是不足以讓問題簡單化的。


換句話說,對於複雜系統的接口是特別稀缺的,在很多不同的領域,人們特別需要這種接口。我們會看到一整個的大型行業主要的目標就是去給非專業的人們提供對應到一個特定的複雜系統的接口。


考慮到對應到複雜系統的接口通常是一種稀缺資源,我們還可以想到其它什麼呢?由於對應到複雜系統的接口是艱難和昂貴的,我們還能想到什麼是艱難和昂貴的呢?


AR vs VR


按照軟件工程的標準,現實世界中幾乎任何事情都是複雜的。對接現實世界意味著我們不必去進行對象化(本體論),我們可以創建一堆的對象類型和數據結構,但現實世界不會認為有義務去遵循它們。計算機或編程語言很少能和現實世界的結構完美契合。


所以把現實世界對接到計算機中,是一個我們認為比較艱難也會比較昂貴的領域。


AR (增強現實 augmented reality)是一個我預期可以強烈感受到這個現象的領域,尤其與 VR(虛擬現實 virtual reality)相比。我認為 AR 應用在接受度和產品質量方面將大大落後於完善的 VR。我認為 AR 將主要應用於穩定的可以控制的環境裡,比如工廠的地板或逃生風格的遊戲。


為什麼軟件與現實世界的對接很難?這裡有些標準的答案:


- 現實世界本身就是複雜的。這是一個逃避性的答案,實際上什麼都解釋不了。


- 現實世界有很多邊緣案例。這也是一種逃避,但更隱晦。如果我們程序的對象化(本體論)與現實不一致,現實世界似乎只會充滿邊緣案例。真正的問題是,為什麼我們的對象化(本體論)很難與現實保持一致?


這裡是一些更有趣的答案:


- 現實世界不是用 Python 實現的。在某種程度上,現實世界只有一種語言,那就是數學。隨著軟件更多地要與現實世界對接,它將需要更多的數學知識,就如我們在數據科學領域看到的,而並不是所有數學知識都可以輕鬆地變成黑盒隱藏在 API 之後。


- 即使有著無處不在傳感器,現實世界也只是部分可以觀察到的,我們不能像使用數據庫那樣隨時隨地查詢任何東西。對於我們不能直接觀測到的事情進行建模會越來越重要,這意味著要更多地依賴於概率和機器學習工具。


- 我們需要足夠的計算機來運行所有的數學部分。在實踐中,我認為這個條件不像它一開始看起來那麼難。只不過,我們仍需要高效的算法。


- 我們感興趣的現實世界是抽象的、高層次的對象。在這一點上,我們甚至沒有數學工具來處理這些種模糊的抽象。


- 我們不能直接控制現實世界。虛擬世界可以以滿足我們的各種假設為基礎來建造,而現實世界不能。


- 結合以上幾點,對於這種表達現實世界的模型我們並沒有什麼好的方法,也很難描述我們在現實世界中想要什麼。


- 軟件工程師大多不善於描述他們想要的東西,也不善於構建與現實世界相一致的對象化(本體論)。這些都是很難培養的技能,幾乎沒有程序員可以明確意識到他們需要培養這些技能。


組織中的接口


準確地傳達我們想要的東西是很困難的。程序員和產品設計師尤其熟悉這一點。


說話的動機有時候是個問題(顯然人們不會信任廣告和銷售人員說的話),但即便是最真誠的溝通者(客戶、項目經理、設計師、工程師等)也很難解釋清楚事情。一般來說,人們不理解哪些方面是與其他人相關的,甚至不知道哪些方面是與自己最相關的。設計師會向程序員解釋與設計最相關的部分,而程序員會關注與編程最相關的部分。


不僅僅是人類想要的東西的結構與現實世界的結構不匹配。人類中的專家看待世界的結構在不同專家之間也大有不同。當兩個不同領域的專家需要去傳遞彼此想要什麼的時候,某人/某物就要進行結構的轉換工作,換句話說,我們需要一個接口。


幾年前有過一個很深刻的例子:我無意中聽聞了一個設計師和一個工程師在討論網頁上的一點小改動。事情是這樣的:


設計師:“我想讓它和之前一樣,但把這個放在頂部。”

工程師:“像這樣?”

設計師:“不,我不希望其它東西移下來。讓所有東西都在原位,然後把這個放在最上面。”

工程師:“但把它放在最上面會讓其它東西都拉下去。”

設計師:“它不一定,看,只是……”


這種情況持續了大約 30 分鐘,雙方都越來越沮喪。


事實證明,設計師的工具是從頁面底部開始構建所有內容,但工程師的工具則是從上到下構建所有內容。所以從設計師的角度來看,“把這個放在頂部”並不需要移動任何東西。但是從工程師的角度來看,“把這個放在頂部”意味著其他的東西都要被拉下來。


需要有人/工具來完成轉換的工作。這是一個雙方面的接口問題。


對於管理者或決定組織結構的人來說,解決這種類型的問題是一個核心的職能。讓一個項目經理參與到設計師和工程師的每一次對話聽起來是比較蠢的,但如果項目經理完成了雙方的轉換,那麼這麼做就是有用的。上面的例子不是一個好現象,但至少雙方都意識到了他們沒有成功地進行溝通。最糟糕的是,如果雙方都產生了以為自己都說清楚了的幻覺(double illusion of transparency),最後可能都沒有人能意識到這個問題。


這就是為什麼在大型組織中,那些能夠跨部門協作的人價值千金。接口是一種稀缺資源。跨部門協作的人員可以充當人工接口,在組織之間轉換模型結構。


1986 年的《戈德華特-尼科爾斯法案》就是一個很好的例子。它旨在解決美國軍方各部門之間缺乏溝通、協調的問題。基本想法很簡單: 任何人都不能晉升為中尉或更高級別的官員,除非首先完成一項”聯合任務” ,在這項任務中,他們會直接與其他部門的成員一起工作。能夠在分支機構之間充當接口的人員是一種稀缺資源,戈德華特-尼科爾斯引入了一種激勵機制來創造更多這樣的人員。在該法案提出之前,各部門的高級指揮官都反對該法案,他們認為這是國會的干預。但是在第一次伊拉克戰爭之後,所有人都證明說這是美國軍隊有史以來最棒的事情。


文 | johnswentworth

來源 | LESSWRONG




字與字節。

誠切的救贖者,以無用之物朝奉,冷靜旁觀所謂進步,徘徊於未來的當口,詢問“真的就是這裡嗎?”。

每週四篇關於科技、未來、藝術、商業的精選長文。


分享到:


相關文章: