原文:Error Messages Are Evil
作者:Don Norman
錯誤信息就是用來懲罰人們不能像機器一樣思考的。是時候讓人使用正常的人類思維方式來處理問題了。當問題發生的時候,我們應該把它叫做機器錯誤,而不是人的錯誤:是機器設計得不合理,強迫我們按照它的規則去操作。是時候設計和製造按照我們的規則來工作的機器了。不要再和我們作對,而是合作。
我(作者,下同)討厭錯誤信息,因爲它們讓我感覺不舒服,尤其是它們並不是必要的。它們害得我去做些不必要的工作,甚至毀掉我已經完成的部分。
程序員會問,“當用戶操作出錯的時候,我們又怎麼能不給他報錯呢?”
「用戶」?別再提這個詞:我是一個活生生的,有情感的人,而不是「用戶」。我們都是人,那是人在犯錯嗎?誰的責任?通常,它是計算機、系統,也就是背後的程序員或設計師的責任。
做出這些高科技的人把機器設計成收到準確、詳細的信息時就能很好地工作。但普通人不知道這些準確的信息,也不願意長時間用那些枯燥的東西。強迫人們用機器的思維去操作機器,自然容易出錯。我把這些錯誤叫做機器錯誤,或者也可以說是糟糕的設計。
爲什麼不設計給人用的系統呢?完全不要那些錯誤信息,把它們換成輔助信息。考慮文章一開始給出的例子,我想新建一個文件,並讓它在文件夾的最上面,所以我就想給文件名前面加一個點。在點號後面我輸入了一個很長的文件名,想着這個文件應該會如我所願排在最上面了。按下回車,蘋果系統告訴我,「以點號開頭的文件是我們的系統文件,你不能這樣命名。重來。」然後我輸的那一長串文件名就沒有了。
這個處理可一點幫助都沒有起到。我爲什麼要知道你這個祕密的命名規則?即便我違背了你這個沒人知道的規則,爲什麼要扔掉我之前的工作,而不是讓我修改它?
一個輔助性的信息應該是這樣的:
「對不起。只有系統文件才能起以點號開頭的名字。您可以使用字母或其它符號命名。請編輯文件名,再點擊保存。」
(我修改文件名的操作應該在信息中完成!)
這還不能算最好的處理方式。真正好的系統會在我工作前就告訴我這些規則。我們還要忍受多久這種辛辛苦苦輸了大量內容,結果被告知因爲不符合系統的一些怪癖,也就是系統設計者的怪癖,而前功盡棄的事情?
這種思考方式還能應用在哪兒?比如在輸入新密碼的時候,你好不容易想好一個輸入後,才被告知字符不夠、缺少某類字符等問題。當你按這個規則修改了密碼後,可能又有另一個規則沒有滿足。或者是在輸入生日或日期時,等你輸完後系統才告訴你應該遵守的格式?其實你輸入的信息誰都能理解,只是按照某種特定的規則可以讓系統設計者寫最少的代碼。
那我們應該如何改變?爲那些不合作的系統感到羞恥。堅持以人爲中心的設計哲學。再不要有「用戶錯誤」的觀念,這個詞反映的其實是「糟糕的設計」。強迫人們去做不符合他們習慣的事情,他們就會犯錯。(比如說不告訴他們你制定完成事情的方式,而等他們用其它方式做完時,你才去責怪他們。)
錯誤信息就是用來懲罰人們不能像機器一樣思考的。是時候讓人使用正常的人類思維方式來處理問題了。當問題發生的時候,我們應該把它叫做機器錯誤,而不是人的錯誤:是機器設計得不合理,強迫我們按照它的規則去操作。是時候設計和製造按照我們的規則來工作的機器了。不要再和我們作對,而是合作。