Categories

工作態度 (1)    方法論 (5)    本土化 (9)    危機管理 (2)    死亡 (1)    自我成長 (1)    自我管理 (3)    決策管理 (1)    版本 (1)    社會 (2)    品管 (3)    風險管理 (1)    效能 問題 (1)    時間管理 (5)    專案 (10)    教育 (1)    產能 (1)    產業 (5)    軟體 (4)    測試 (10)    閒聊 (14)    溝通 (4)    道德 (1)    漫談 (23)    管理 (1)    機器翻譯 (1)    簡轉繁 (2)    翻譯 (8)    booksore (1)    Chinese (1)    Flash (1)    G11N (1)    I18N (3)    Industry (1)    L10N (8)    politics (1)    Project Management (6)    Revision (1)    Software (3)    Testing (4)    Time Management (1)    Translation (4)    UI Design (1)   

2012年3月12日

找出問題並加以排除的能力

我常覺得是不是因為我小學 (還是中學?) 時的自然科學實驗 (還是理化實驗?) 基礎打得好, 還是因為邏輯觀念比一般人好些, 我老覺得似乎周遭的人的抓錯 (trouble-shooting) 能力似乎不大靈光?

先不說排除問題的能力, 因為找到問題所在, 與問題的排除解決, 有時候是兩件事情. 先看找到問題的部分. 雖然說這需要一些天分, 也許還需要廣泛的興趣與知識涉獵, 但大概好的邏輯觀念影響更多.

來看簡單的狀況, 如果在你面前有三個不透明的空杯子, 還有一個骰子, 你看到我把骰子放進其中一個杯子裏頭, 然後我快速的移動了這三個杯子, 直到你眼花了, 無法記得究竟是哪個杯子裡有骰子. 你要找出哪個杯子裡有骰子的方法, 就是猜. 也許你很確定最右邊那一個杯子裡覺得沒有骰子, 因為你眼睛有注意到後來一直是中間與左邊的杯子再互換, 那麼若你是對的, 你猜中哪個杯子有骰子的機率應該可以說是變成 1/2 的機率. 要嘛你猜中間, 要嘛猜左邊, 結果就是答對或是答錯. 如果你在這麼肯定骰子絕對不會在最右邊的杯子裡的狀況下, 猜了中間的杯子, 但猜錯了, 如果你接著猜右邊的杯子, 是自打嘴巴嗎? 還是你是經過某種推理覺得既然你第一猜猜錯了, 那麼骰子應該在右邊的杯子?

如果說客廳裡的電視不能看了, 你遙控怎麼按它都沒反應, 你會怎麼辦? 先去按電視機上的 On/Off 鍵以排除是遙控器沒電或是壞掉的可能? 看電視的電源燈有沒有亮著? 檢查電視插頭是不是被拔掉了? 確認你家是不是有電? 還是電視真的是壞掉了?

如果你的機車突然不正常了, 發不動! 你怎麼辦? 先確認發動按鈕多按幾下時, 機車的反應, 有沒有引擎嘗試發動的聲音? 接著打開大燈或是方向燈確認是不是電池還有電? 用腳踩地發動看看能否發動起來? 看有無殘餘電力可以顯示油箱裡是不是還有油?

這些嘗試找出問題的過程當中, 需要相當的生活經驗,通常都是因為我們日常已很正常的使用那些東西有很長的時間, 無形當中我們會去記得每種細節. 雖然每個人記得的數量與項目會有所不同, 但大抵上在一定程度的找出真正問題的目的上會有所斬獲. 車子發不動時, 我們會嘗試去確認是否沒電, 還是沒油. 我們不會去檢查煞車是否失靈這種完全扯不上關係的因素. 電視不能看了, 我們同樣會去確認其他方式來開啟電視, 或是檢查有無電力, 有無訊號. 我們不會去檢查是不是旁邊的音響沒開導致電視不能開!

找出可能的問題, 也是有程度上的, 例如我們可能只能很肯定地排除這機車發不動並不是因為沒油, 不是因為沒電, 因為我們可以確認油箱裡確實有油, 大燈會亮, 但無論怎樣發動, 包含腳踩, 都發不動. 真正發不動的原因我們只能把範圍做一定程度的縮小. 因為多數的我們不懂機車構造, 不會拆解機車, 不懂它細部構造與原理. 但至少我們可以合理的做一些排除與範圍縮小. 有時也許我們在嘗試找出問題時就找到真正的問題並且可以順利加以排除. 例如電視開不起來的原因其實是插頭沒插, 如果你因為這原因而找了電視廠商來檢測, 會不會有點太誇張?

但找出問題時, 問題的本身也可能相當複雜, 同時有相當多可能的變數在. 例如本來你家裡的無線網路分享器本來都運作得好好的, 某陣子你開始覺得它有異常, 經常斷線或是不穩. 好吧, 如果你實在閒錢很多, 那麼就是再買一台新的回來, 但也許裝上去發現隔天問題又是一樣, 至少你排除了並不是先前那台壞掉的可能, 只是代價不斐! 你得想一想, 也許條列一下可能的因素, 例如 a)你最近多添加了好多電器, 也許因為總耗電量增加導致電力供應不足或不穩; b)你最近也買了一個新的櫃子來重新擺設家裡的很多雜物, 也許因為這櫃子是金屬的, 導致某些訊號影響, 因為你把網路分享器擺在金屬櫃上面; c)也許因為你最近新買的無線喇叭訊號會與無線網路相互干擾, 因為它們都是無線傳輸, 並且問題的發生與無線喇叭的啟用似乎同時間; d)可能因為你最近為了在室內測試 GPS 所以買了個 GPS 訊號放大器擺在房間; e) 還有一個已經證實應該不是因素的 - 網路分享器壞掉了, 因為你買了個新的結果問題還是存在.

好了, 至少你依據經驗列出了四個可能性, 然後你把四個因素加以排除, 把最近一個月內新添購的電器通通搬到房間以外並且不插電; 然後把新買的金屬櫃也搬出房間; 接著把無線喇叭也搬出去; 最後把 GPS 訊號放大器也拆掉. 太棒了, 網路恢復正常了! 但問題到底是什麼? 如果你精力與體力都夠, 你可以把那 a, b, c, d 四種可能因素全部再引進, 驗證看看是不是問題又發生了; 或是你可以一次還原一個可能的因素, 如果問題沒有再次發生, 可以驗證說這個並不是導致問題發生的因素, 這麼做直到你可以確切地確認只要哪個可能一擺回房間, 問題就發生, 移走, 就消失.

可是你的過程是否有效率? 上面的例子, a, b, c, d 四個因素你頭先全部把它排除, 確認問題應該在這四個因素當中, 緊接著又全部加回來, 可以說再次確認問題真的發生在這四個因素之中. 如果緊接著你又把 a, b 兩項移走, 問題消失, 那麼是說問題應該變成在 a 與 b 當中, 而不是 c 與 d. 如果你緊接著卻放回 a 然後又移走 d, 也就是讓 a 與 c 同時放在房間, 你得想想你這麼做是為了什麼? 照理說你應該不要動房間內的 c 與 d, 然後先把 a 拿回房間, 看問題是不是又發生了, 如果不是, 那麼照理說真正引發問題的是 b. 於是你可以嘗試把 a, c, d 都移走, 只單純放回 b 好真正驗證問題就是它造成的.

實際上你也許也會遇到, 當你把上述類似的問題排除過程都跑過了, 但奇怪就是找不到問題真正所在, 例如當我們認為應該是 b 導致問題的發生, 可是當僅把 b 放回房間, 卻又發現問題並問發生, 那麼應該有其他因素我們尚未發現. 這種狀況很常發生! 也可能在我們嘗試排除或加回因素時, 很雞婆的多做了一些多餘的事情! 例如我們把那些因素移除時可能也順便把一個電源延長線也移除, 讓網路分享器直接接上牆壁的插頭, 這裡就多冒出一個可能的因素. 或是我們把因素移回時, 可能因為空間擺設變化, 所以臨時拿了個木櫃把分享器架高, 這裡又多了個因素干擾!

真正的因素也許是因為我們在這個月之內換過一個電源延長線, 但它的品質不良, 導致供電不穩. 或是實際原因可能是因為我們把分享器訪在鐵櫃上面, 但這時分享器的位置很接近冷氣機, 冷氣機運轉時也許某種因素導致干擾(?)

在逐一排除因素, 或是逐一引進可能因素時, 一定要很清楚哪些是我們想要驗證的, 而不要去變動到其他隱藏的因素.

另外, 排除與引進因素的方法也要有條理, 一次全部排除或重新引進也許很快速, 可以確定因素就在這當中; 一次排除或引進一半的因素有時也很有效率, 特別在可能因素過多時, 以上述的例子, 要嘛真正因素是在 a 或 b 當中, 要嘛就在 c 或 d 當中, 或是確認另有其他因素.