Total Pageviews

2021/07/06

[閱讀筆記] The Design of Everyday Things - Human Errors? No, Bad Design

 第5章 人為過失?錯,是設計不良 (Human Errors? No, Bad Design)

  1. 有些錯誤是人為刻意的錯誤 (deliberate errors),例如,開車偶爾闖紅燈、超速;但是,本書提到的人為錯誤,是非刻意的錯誤 (unintentional errors)。

  2. 根據估計,因人為過失所導致的意外高達 75 ~ 95%,為什麼人這麼容易犯錯?答案是,因設計不良所引起。若只有 1 ~ 5 %的人為過失,還可歸咎於人,若犯錯頻率如此高,該檢討的就是設計。設計師很了解物理限制 (physical limitations),但對心理限制 (mental limitations) 常有誤解

  1. 人類是具有創造力、建設性、探索性的生物,人類擅長尋找新事物、創造新的做法、尋找新的機會;呆板、重複性與要求極度精確,卻是違反人類的天性。

  2. 一個意外的發生,通常是多件事情的運作失靈;追查 root cause 的過程,通常先問誰犯錯的,就予以懲罰,沒有繼續找出真的 root cause。

  3. 當一個錯誤頻繁發生,應改進系統,使此類錯誤能被降低或避免。當無法完全避免時,盡量降低犯錯後所造成的傷害。

  4. 根本原因分析 (RCA,root Cause Analysis) 旨在找到問題的根本原因,是分析、解決問題的一種「治本」的方式。透過調查和分析問題哪裡出錯、為什麼出錯,尋求防止差錯事故再次發生的必要措施,從而提高服務安全和品質。Proximate Case ≠ Root Case (近因不是根源)。(Ref: https://reurl.cc/2bkGv9 )

  5. 由 Toyota 創辦人 Sakichi Toyota (日本工業革命之父) 所發明的 five whys 方法,用來揭露公司製造流程的技術問題的成因。five whys 方法是一個簡單的方法來發現問題根本成因與找出未預期的機會,是將一個大問題分解為多個個別模組的過程。以尋找美式足球員腦震盪的根本原因為例:(Ref:  The Bullet Journal Method, https://reurl.cc/6y3m0y )

Why

Answer

① 我的頭怎麼那麼痛?

因為我看不清楚。

② 為什麼看不清楚?

因為我摔到撞到頭了。

③ 為什麼會摔倒撞到頭?

我被擒抱,所以跌倒撞到頭了。

④ 什麼跌倒撞倒頭後會這麼痛?

因為我沒戴頭盔。

⑤ 為什麼不戴頭盔?

更衣室裡的頭盔不夠。

  • 經過五次提問後,發現腦震盪的根本原因很可能是頭盔數量不足。日後,只要確保每位選手都戴好頭盔,就能減少腦震盪的危險。

  • 隨著提問次數的增加,回應的細節也會隨之增加,而每次都能讓正確的解答變得更呼之欲出


  1. Error (錯誤) 的類型:slips (失誤)、mistake (錯誤)

名詞定義

  • Human error 是人類行為脫離「合宜的」(appropriate) 行為。

  • Slips (失誤) 是心裡想的跟最終執行結果有差異 (目標不變),可分成兩類

① Action-based slips

心裡想著要完成的事情,但執行結果卻未如預期,例如,野手漏接飛球。

② Memory-based slips

屬於潛意識層級 (low level) 的錯誤,故歸類為 slip,例如,我知道煮飯完成後要關瓦斯,但最後我卻忘了關。


  • mistake (錯誤) 發生於錯誤的目標與錯誤的計畫制定,其可分為三類

① Rule-based mistake

if-then 規則套用在不適合的狀況,若對現況誤診 (misdiagnosis)、誤解讀 (misinterpretation),就會出現 rule-based mistakes。

② Knowledge-based mistake

錯誤地診斷狀況,或因知識不足,導致無法正確診斷狀況。例如,秤重單位搞錯,用 kilogram,卻誤標示為 pound

③ Memory-lapse mistake

屬於認知層級 (high level) 的錯誤,因時間壓力導致忘記當初的目標與計劃。例如,因時間壓力而未做完整的檢修 (troubleshooting)

Error 與行為七階段模型

Slips 與 mistakes 發生於行為七階段模型之處:

  • mistakes 發生於較高的認知層級,即目標 (Goal)、計劃 (Plan)、比較 (Compare);

  • slips 較低層級,即制定 (Specify)、執行 (Perform)、感知 (Perceive)、解釋 (Interpret);

  • Memory-lapse 發生於每個階段的轉換,導致動作未如預期完成;memory-lapse 發生於認知層級就是 mistakes,發生在較低層級就是 slips。


  1. 失誤有一種有趣而矛盾的特性:熟練的人,往往比新手更容易發生失誤。因為失誤常常來自不專心。由於太熟練了,技巧嫻熟的專家往往依賴下意識的自動化行為。新手則必須有意識地集中注意力,相對上反而失誤較少。slips (失誤) 可分成四類

Slip types

說明

Capture slips

(擷取性失誤)

  • 【例子】當我在影印機前計算頁數時,我發現我這樣算頁數「1, 2, 3, 4, 5, …, Jack, Queen, King」(因為我最近很常玩牌)

  • 在某方面來說,擷取失誤是一種記憶性失誤,很少有不熟悉的行動擷取熟悉行動的例子。

  • 設計者必須避免起始程序過於相似,而從中間開始分歧的程序設計。越有經驗的人,越有可能犯擷取失誤。如果可能的話,行動的順序在一開始就要有所區別。

Description-similarity slips

(記述類似的失誤)

  • 【例子】我以前的一個學生說他有一天慢跑完回到家中,脫下他汗濕的衣服,捲成一團變成顆球,想把它投進洗衣籃裡。結果他投進了馬桶裡。(這不是因為他瞄得不準;洗衣籃和馬桶是在不同的房間裡。)

  • 在我們累了、有壓力、無法專注或心理負荷過重的時候尤其容易發生此失誤。因為洗衣籃和馬桶都是個容器,加上慢跑回來太過興奮,如果心理描述的目標不夠明確(例如說,「一個能裝東西的容器」),便可能會觸發失誤。

  • 記述類似的失誤是對錯誤的對象執行了正確的動作,而對象之間相似的程度愈大,失誤的可能性愈高。同樣地,出現的相似對象愈多,也愈有可能失誤。

  • ✈️ 在飛機駕駛艙的設計中,許多控制器應該有不同的形狀,使它們容易分辨:控制引擎的油門桿和控制襟翼的桿子(看起來可能像一片機翼)就明顯不同,而起落架的控制器(可能像一個輪子)又不一樣。

Memory-lapse slips

(記憶缺失的失誤)

  • 【例子】去影印文件,只拿走複印的文件,卻把原稿留在影印機;用提款卡從 ATM 領錢之後,沒有取回卡片就走開 (因為發生太多次,銀行所幸設計要取出卡片後才能領錢)。

  • 大多數記憶缺失的直接原因是干擾:在決定行動和完成行動之間,因其他事件的干預,而打斷了行動。這樣的干擾常常是因為機器的操作有太多步驟,使得我們的工作記憶負荷過重。

  • 有幾種方法可以防止記憶缺失的失誤。一種是盡量減少步驟,另一種是對尚未完成的步驟提供明顯的提醒。一個很好的方法是利用強制性機能, 例如 ATM 為了防止你將卡片忘在機器裡,會要求先收回提款卡後,才能領錢。以筆的例子來說,解決的方法是讓筆不能被拿走,例如共用的筆常常用根繩子連在桌上。

Mode-error slips

(模式的失誤)

  • 當一個裝置有數種狀態,而相同的控制器在不同的狀態下具有不同的含義,我們稱這種狀態為「模式」。如果功能比控制器的數目多,也就是說,同一個控制器在不同模式裡有不同意義的時候,模式的失誤是一定會發生的。當我們在機器上添加越來越多的功能,模式的失誤很難避免。

  • 隨著汽車變得越來越複雜,儀表板要控制駕駛、空調、娛樂、導航,模式的應用會越來越普遍,而問題也就無所不在。

  • 模式的失誤實際上是設計的錯誤。如果設備不能明確地顯示當下的模式,模式失誤特別容易發生。若使用者心裡必須要記住目前設定的模式,這個記憶可能被許多事情干擾。設計者必須盡量避免使用模式,但是如果一定要用,設備必須很明確地顯示當前的模式,減少使用者的記憶負擔,而設計上也必須彌補干擾造成的影響。


  1. Mistakes 起源於不合宜的目標與計劃,或在評估階段錯誤地比較目標與結果。mistakes 的分類:

Mistake types

說明

Skill-based mistakes

(過度熟練的錯誤)

  • 極度熟練的專家,在執行日常例行作業時,常會因為專注度不夠而犯下此錯誤。

Rule-based mistakes

(規則誤用的錯誤)

  • 當熟悉的 if-then 規則套用在不適合的狀況,若對現況誤診 (misdiagnosis)、誤解讀 (misinterpretation),就會出現 rule-based mistakes。

  • Rule-based mistakes 很難避免與偵測。一旦某個情境被歸類為某一類,就會被套用某個規則,這個過程非常快速且直接。

  • 對設計師來說,應盡可能地以前後一致且容易解讀的方式呈現事物的現況 (current state),避免使用者歸類錯誤 (misclassify)

Knowledge-based mistakes

(知識缺乏的錯誤)

  • 此狀況常發生於面臨新的狀況、使用新的工具、稀鬆平常的日常作業遇到未預期錯誤時。

  • 當遇到新的狀況,沒有現有的技能或規則可運用,需透過 conceptual model 進行推理與解決問題時,若對現況誤診 (misdiagnosis)、誤解讀 (misinterpretation),就會出現此錯誤。

  • 設計師應協助使用者了解陌生的現況,指引使用者問題解決技巧,例如,提供清楚的操作手冊、友善的使用者協助工具等

Memory-lapse mistakes

(記憶缺失的錯誤)



  • 因為周遭的干擾忘記目標或行動計畫,導致 memory-lapse mistakes。

  • mistakes 與slips 皆有 memory-lapse,忘記原本的目標或行動計畫是 mistakes,反之,則是 slips

  • 為避免 memory-lapse mistakes,設計者在設計上應保留著之前的紀錄,預設使用者在執行過程會受到干擾,需要設計師的提醒以重新執行任務


  1. 當技能與規則是受控的,人類處理層級就是在 behaviroal level,處理方式是潛意識地與自動化的;相反地,若技能與規則是非受控的,人類處理層級就是在 reflective level,處理方式是有意識且緩慢的。

  2. 社會與機構壓力 (social and institutional pressures)

說明

  • 社會壓力會導致錯誤解讀、犯錯與意外。要了解 human error,了解社會壓力是很重要的。

  • 不要低估社會壓力的力量,其會讓理智的人去做他們認為錯誤且危險的事情。在 National Geographic 所製播的 Air Crash Investigation 節目中, NTSB 曾指出,機艙內過於強勢的機長,會使資淺的副機長卻於指正機長的疏忽

運用 Checklists 預防人類容易遺漏、分心、粗心等疏失

  • Checklists 在航空界已被證明是個能強化行為精確性的利器,其能降低人為錯誤,特別是 slips (失誤) 與 memory-lapse (記憶缺失)。

  • 在面臨複雜環境、時程壓力、社會壓力下,人就是容易犯錯,檢查表可以預防人類容易遺漏、分心、粗心等疏失,提醒我們至少要確實做好哪些步驟。這麼做不只是為了確認,而且能追求更優異的表現

  • 2001 年時, Johns Hopkins Hosptial 的加護病房 (ICU, Intensive Care Unit) 開始試行避免靜脈注射感染 (central line infections) 的 checklists,包含:① 使用肥皂洗手、② 使用氯己定消毒患者的皮膚、③ 使用無菌窗簾隔絕病患、④ 醫護人員要戴口罩、帽子、手套與無菌袍、⑤ 在注射處貼上無菌貼布。護理人員只需要無腦地檢查上述五個規定是否有遵守,並且提醒來看診的醫生是否有遵守。此措施實施一年後,10 天內因靜脈注射而產生感染的機率從 11% 降到 0%。將施行的其間再拉長 15 個月,整個期間只有兩例感染案例。相較施行 checklist 程序前後,醫院至少避免了 43 例感染、8 例死亡與節省了 200 萬美金的感染照護成本。

  • Checklists 的制定有四個原則:① 簡單 (simple)、② 成本低廉 (cheap)、③ 有效 (effective) 與 ④ 易於傳播 (transmissible)。例如醫療團隊為了解決巴基斯坦、孟加拉等地,因在當地無法取得乾淨的水源使用所導致的腹瀉、肺炎 (pneumonia)、膿包病 (impetigo)、皮膚細菌感染、霍亂等問題。由於興建水庫、下水道系統等工程所費不貲,而且曠日廢時,無法即時解決目前的醫療問題。故醫療團隊開始發放免費肥皂與教導當地居民如何正確系統,並列了幾個要居民遵守的 checklists:① 每天洗澡一次;② 每次如廁後要洗手;③ 吃飯、準備食物與餵食孩童前,都要洗手。透過發放肥皂與正確洗手方式,輔以 checklist,兒童腹瀉比率減少52%,肺炎少48%,細菌性皮膚感染少35%。儘管尚未改善不潔的水源,但是只用肥皂依然能控制傳染病。


  1. 回報錯誤

說明

  • 降低錯誤發生的方法,就是要承認錯誤、蒐集造成錯誤的資訊、做出適當地改變以預防未來錯誤的發生。

  • 因怕遭受處罰或訕笑,人都有不想承認錯誤的傾向。我們應設計易於回報錯誤的流程與方法,目的不在於處罰,而是研究發生的原因、該做什麼改變,以避免錯誤再度發生

  • 事後控制不如事中控制,事中控制不如事前控制,應盡力做到做到防患於未然。

Case Study : Toyota 如何處理錯誤 - Jidoka (自働化)

  • 豐田生產方式的兩大支柱就是「JIT (Just In Time)」與「自働化」。在必要的時間,生產必要的物品,而且只生產必要的數量,藉此徹底剔除浪費;機器會在異常發生時,自動停止,讓問題突顯出來,然後進行「改善」

  • 豐田所使用的「自働化」與一般的「自動化」不同,豐田的自働化將「自動停止」的概念運用在生產線上,假如發生機器、品質異常,或是作業延遲等其他突發狀況,機器就會自動感應並且立刻停止生產,每個人員附近也都有按鈕,若是機器未辨識出來,也可由負責的人員按下按鈕,整條生產線就會停止,等到問題解決了之後,整條生產線才會再次啟動,這也落實了豐田所謂「不浪費」的原則,他們寧願在生產時就把問題解決,也不要在生產完才發現生產的都是劣質品。(Ref: https://reurl.cc/o9Mokj  )

Case Study : poka-yoke (防呆) 方法

  • 是一種 forcing function、防呆,是一種預防矯正的行為約束手段,運用防止錯誤發生的限制方法,讓操作者不需要花費注意力、也不需要經驗與專業知識,憑藉直覺即可準確無誤地完成的操作。

  • 這項概念的原創者為日本的品質管制專家、著名的豐田生產系統創設人新鄉重夫 (Shigeo Shingo) 先生 (1909 ~ 1990年),他根據其長期從事現場品質改進的豐富經驗,首先提出防誤 (ポカヨケ,Poka-yoke) 系統去完全消除錯誤的概念,並將其發展成為用以獲得零缺陷,最終免除品質檢驗的管理工具。

  • poka-yoke (防呆) 方法使用了本書提到的所有原則:affordances, signifiers, mapping, constraints, forcing functions。


  1. 偵測錯誤

說明

  • errors 是否會造成傷害,取決於其是否能快速地被發現。不同類別的 errors,被發現的容易度會有差異。一般來說,slips (失誤) 較容易發現,mistakes (錯誤) 則較難。尤其當沒有明顯 feedback 時,偵測錯誤更是困難

後見之明偏誤 (Hindsight bias,HB)

  • 當人們得知某一事件結果後,誇大原先對這一事件的猜測的傾向,俗語稱「事後諸葛」或「事後孔明」,認為我們可以預測已經發生的事情而實際上我們並不能預測。


  1. Design for error

說明

  • 按照預期路徑的設計是相對容易的 (sunny day),困難的是在未預期的情況下 (rainy day),如何指引顧客走回預期路徑上。

  • 許多系統不完備的設計,會加重問題嚴重程度,無法容易發現問題或從問題中復原。以下有幾點要注意:

    • 了解錯誤成因與透過設計以避免此成因發生。

    • 做理性的檢查,此執行動作有通過「常識測試」嗎?

    • 提供「 undo 功能」,使其能回復上一步的狀態。

    • 當錯誤發生時,讓使用者更容易地發現與矯正問題。

    • 別將使用者的行為視為錯誤,應該引導使用者合適的行為。

錯誤成因

  • 新人較易發生 mistakes (錯誤),專家較易發生 slips (失誤)。

  • 我們在日常生活中,很容易被打斷,所以很常發生 memory-lapse mistakes。美國 FAA 規定機師,在起降的重大時刻,機師不准討論與飛機控制以外的事情,機組員也不准與機師交談,避免因干擾 (interruption)、分心 (distraction) 而導致重大災難。

  • 很多人都有多工 (multitasking) 的迷思,根據研究顯示,只有高度自動化行為才是真的多工,例如走路。大部分的活動都需要有意識的注意,所以沒有所謂的多工 (multitasking),只有工作轉換 (task switching),你只是把注意力從這一個任務,換到另外一個任務,等做一段落,又再回到原本的任務。這樣來來回回的做法,只會降低你的專注力、提高錯誤機率。(Ref: Manage Your Day-to-Day)

減少錯誤的方法


方法

說明

從錯誤中學習

以航空業為例,美國於1967年成立國家運輸安全委員會 (NTSB, National Transportation Safety Board),負責民用運輸事故調查,主要任務是「確定運輸事故和事件徵候的可能原因,並制定安全建議以改善運輸安全。」基於其管轄範圍內的調查結果,NTSB 向有權實施這些建議的機構和體系提出正式的安全建議。NTSB 認為安全建議是防止未來民用運輸事故的主要工具。

增加限制以避免錯誤

poka-yoke (防呆)、限制、forcing function 等,都是此類智慧型應用。以 ATM 為例,一定要先取出金融卡後,才能領錢;以網路線為例,若方向不對就無法順利插入網路孔。

提供 undo 機制

作業系統就善用 undo 機制方式,並設置資源回收桶讓你還原已刪除的檔案。最佳的 undo 機制必須記錄一整串動作紀錄,讓使用者盡可能地回復到之前的系統狀況,例如 Apple 電腦提供的 Time Machine 機制;在 Chrome 瀏覽器,若誤關 tab,可透過 Ctrl + Shift + T 還原之前開啟的 tab。

提供確認與錯誤訊息

設計網頁時,當使用者要刪除某筆資料時,會出現 confirm dialog,請使用者再次確認是否真的要刪除。

為了避免使用者操作錯誤,設計師應:❶ 在重要的事物使用較大、較顯眼、較鮮艷的配色;❷ 讓使用者可以反悔,例如,使用者選擇刪除,但只是標示為刪除,未真的刪除。

利用常識檢查

胖手指失誤 (Fat-finger error) 是證券、外匯等金融市場中,因鍵盤輸入失誤而造成的錯誤交易,通常會導致證券成交的數量和價格錯誤,造成經濟損失並可能引發市場混亂。台股發生不少錯帳事件,其中最有名的烏龍錯帳,是富邦證券2005年6月因營業員將客戶下單的8000萬元,誤輸為80億元,造成多檔個股漲停,而該筆錯帳金額更創下台股史上最高紀錄。系統應盡可能做常識檢查,若覺得有疑問,應出現 confirm dialog,請使用者 double confirm。


常常有一些行政作業的事,很簡單但也很容易失誤。通常檢查一個東西,我們會有很多人輪流檢查。但其實人越多,就會覺得錯誤別人應該也檢查到了,導致每個人的檢查都很不細心。書中有提到比較好的做法是,兩個人一起檢查並填寫核對表。

讓失誤 (slips) 最小化

熟練的專家常因太熟練而導致不經大腦、自動化地做事,導致發生失誤 (slips) 。讓失誤最小化的作法,就是讓使用者提高注意力、有意識地做事、並給予適時回饋。


以醫院為例,為避免給錯藥物給患者,現在已利用條碼來做層層確認,以降低失誤。當護理人員將藥給住院病人時,可以掃描病人手腕腕帶上的條碼,確認是正確的病人,接著可以掃描藥袋上的條碼,護理人員及軟體可以確認是在正確時間、以正確劑量、正確給藥方式提供的正確藥品 (5 rights)。



  1. 🧀 瑞士乳酪模型 (Swiss Cheese Model)

說明

形容意外事件能夠被發生,只是湊巧同時穿過每一道防護措施的漏洞,有如層層乳酪中湊巧有一組孔洞的集合,能讓一束光線直接穿過。當檢視醫療與飛安事件時,尤其能看到這種「步步錯, 最後引發不幸」的例子,只要當時任何一個環節做對,事件就不會發生。換而言之,增加防護的層數 (乳酪層數) 及減少疏忽 (孔洞) 的發生,就能提高意外被阻擋下來的機會。最重要的,只要有一步做對,有任何一刻阻擋事件的穿透,悲劇就不會發生。(Ref: https://reurl.cc/bzKGLy )

Lesson Learned

  • 不要找意外的成因,導致嚴重事故發生的從來都不是因為某個單獨的原因,而是多個問題同時出現  (如上述四片瑞士乳酪串起來);

  • 透過預防措施來降低錯誤 (加更多片瑞士乳酪),建立備餘 (redundancy) 與安全邊際 (margin of safety),減輕對風險的敏感度

  • 減少洞的數量,或讓現有的洞縮小;

  • 當多個洞串成一條線時,系統應馬上警示。


  1. Resilience Engineering (彈性工程)

說明

當複雜的系統發生故障和事故,往往錯誤歸因於人為錯誤。利用彈性工程的構建系統,能夠有能力預測和規避事故的發生,藉由適當的學習和適應,盡可能地恢復中斷前的狀態

A Vision Of Resilience

  • Resilience是一個複雜的多方位能力系統,它能避免,吸收,適應和恢復中斷。

    • 避免 (avoid):為了避免 disruptions ,需要預測。

    • 對抗 / 吸收 (withstand):具有“減震器”的形式,使系統承受,而無需重新配置。

    • 適應 (adapt to):在為預期的變化中時,需要有重新配置形式的能力。

    • 恢復 (recover from):表示能夠恢復系統的中斷,狀態盡可能接近。


  1. 自動化的矛盾:隨著科技演進,機器越來越聰明,越來越自動化,並帶來許多便利。以自駕車為例,我們可以預期當路上汽車都是自動駕駛時,車禍比例會大幅降低,但是當自動駕駛機制出問題時,將會帶來巨大災難。

  2. 處理錯誤的設計原則

說明

  • 人類與機器擁有不同特質,應運用彼此優勢。

  • 對於錯誤的態度應是:接納已發生的錯誤 🠞 了解錯誤的成因 🠞 確保未來不會發生。應協助發生錯誤的人,而非懲罰或責難

  • 常見的 human error 常源自於要求人類去做違反天性的事情,例如,要求人類盯著機器、時時保持警戒,人類就是會恍神而出錯。我們應理解人類天性,運用科技提供人類適當協助,避免 human error。

處理錯誤的設計原則

  • 讓所需的知識儲存於外部 (knowledge in the world),不要讓所有知識都須讓人類記憶 (knowledge in the head)。

  • 善用自然或人工的限制 (natural or artificial constraints):包含物體、邏輯、語意與文化限制,善用 forcing function 與 natural mapping 的力量。

  • 協助人類跨越執行隔閡 (the gulf of execution) 與評估隔閡 (the gulf of evaluation)