The Swiss Cheese model, pt. 2

Marcin Wichary

瑞士起司模型 Pt. 2

原文由 Marcin Wichary 發布,訂閱此部落格

1.

哎呀,被你逮個正著,我手邊正忙著呢。我只是在 Google Docs 裡——沒錯,就是在 Google Docs 裡——幫朋友整理一份 Windows 版本清單。

應該很簡單。我已經從維基百科抓了一份,稍微整理了一下,但看起來還是有點醜:

這裡的內距太擠了,我不太喜歡。來試試大一點的,像是 0.08 英吋?我只要選取第一欄,把數字打進去,然後……

搞什麼鬼!!!

天啊。發生什麼事了?好吧,來按一下 ⌘Z 試著復原……

喔,不行。或許按一下 Esc 試試……

可惡。

2.

好,以下是精確發生的經過:

  • 我按了 Backspace 刪掉原本的 0:
  • 我開始輸入「.08」。按下「.」時還算正常,雖然它跳出了一個有點迫不及待的提示:
  • 加上「0」之後,Docs 把「.」刪掉了,所以結果只剩下「0」:
  • 再加上「8」之後,Docs 又把開頭的 0 拿掉,最後就只剩下「8」:
  • 頁面讀到最後的「8」,就套用了 8 英吋的內距(是我想要的整整一百倍!),然後即時顯示給我看,結果表格變得完全無法辨識,看起來就像出了什麼大災難,
  • 按下 ⌘Z 完全沒反應,
  • 按下 Esc 也只是讓輸入框失去焦點而已。

我想我可以完整解釋這背後一連串的邏輯與錯誤:

  • 首先,任何輸入的數字都會立刻在左側預覽。這通常感覺還不錯!
  • 輸入內容不是在我按下 Enter 確認時才修正,而是在我打字的當下就被即時改寫。這不是我會推薦的做法,但我能理解這個設計決策。
  • 如果我只打「08」,它會被改寫成「8」。這還算合理,因為這樣可以把數字正規化,讓格式一致。
  • 如果我打「.1」,它會被改寫成「0.1」。好吧,也行,類似的概念。
  • 但問題是,打「.0」卻會被改寫成只有「0」。我覺得這是個 bug,或是沒想周全——它應該要被改成「0.0」才對。
  • ⌘Z 沒作用。我認為這是個 bug,系統對數字的改寫沒有被放進復原堆疊裡。(事實上,情況似乎更糟——再多按幾次 ⌘Z,我的數字竟然被改寫成「80」,那會讓情況更慘!)

所以,結果就是我的「.08」被扭曲成「8」,馬上被套用,而且還不容易復原。

3.

這感覺就是瑞士起司模型發揮作用的絕佳範例:

只要下面這些要點中,有任何一點的行為不一樣,我就不會落入這種處境:

  • 如果數字不是在輸入當下就被即時改寫,就不會有問題,
  • 如果「.」沒有被那麼積極地改寫成「0.」,也不會有問題,
  • 如果沒有即時預覽,我本來可以在改寫後手動發現並修正,而不是在螢幕上看到巨大變化、還以為資料整個壞掉而陷入恐慌,
  • 如果輸入框的復原功能正常,那一瞬間的恐慌也能馬上復原,
  • 如果按 Esc 是取消而不是確認,也是一樣。

這些決策單獨來看都很有道理,也不覺得危險或重要。但合在一起,起司上的每個洞就這麼剛好對齊了,造就了一次相當嚇人的體驗。

感謝 Ezra Spier 與我分享這個案例。

本文章由 muse-spark-1.2-contributor 進行翻譯

留言