1. 程式人生 > >學會透過現象看本質,即使現象有時…

學會透過現象看本質,即使現象有時…

最近看到一個汽車對冰淇淋過敏的小故事(原文在此),轉述如下:

  某汽車公司收到投訴信,使用者抱怨說他每晚都從家裡開車去商店買冰淇淋。如果買的是香草冰淇淋,則回家時汽車就無法發動;如果買其它口味的冰淇淋,則汽車可以正常發動。天天如此。該使用者懷疑這汽車是否對香草冰淇淋過敏。
  汽車公司的頭頭覺得這太過詭異,不過還是派了一個工程師去該使用者家調查原因。第一天,工程師和使用者一起去買冰淇淋。在店裡,工程師要求買香草口味,結果出來後,汽車果然不能發動。此後幾天,工程師每次都和使用者一起去買,每次都由工程師臨時決定買什麼口味。果不其然,凡是買了香草口味,汽車就無法發動;反之則可以。(由於是工程師臨時決定購買的型別,可以排除使用者搞惡作劇的可能)
  這個工程師是一個理性的人,也不信神,當然不會相信汽車過敏這一說。但是他覺得有更深層的原因在起作用。此後,他每天晚上和該使用者一起去買冰淇淋,每次他都詳細記錄往返的時間、途中踩油門和剎車次數、使用的汽油型號等各種資訊。許多天後,他終於發現規律:凡是買香草口味的,在商店裡面花的時間少(因為這個口味受歡迎,擺放的貨架靠門口)。
  於是問題就轉化為:停車的時間短導致汽車不能正常發動。然後,工程師就輕易找到了原因(當停車時間太短,發動機依然很熱而無法驅散氣阻)。

  這個故事給我們幾個啟發:
  1、不要拒絕接受貌似很詭異、很離奇、很不可能的現象
。我手下的很多程式設計師都曾經抱怨測試提交的某個bug太怪異,對這些bug不予承認。你想一想自己是否也有類似情況?
  2、要善於從一些細節發現規律,從而查出問題的根源。如果你是這個工程師,你能否通過細緻的觀察而發現其中的規律?