最近為了抓一個bug, 真是傷透了腦筋.
那個bug的現象大概是我們的程式跑了一段時間之後會有一個位元的資料錯誤. 剛開始, 我們覺得是硬體問題, 但是硬體部門卻覺得不是. 一方面是要複製得要花大量時間, 另一方面也是有其他更重要的事情趕著, 所以就只有一個資淺的IC designer在看.
沒想到因為最近一些其他的bug, 又把我們的眼光吸引到這邊來了. 經過一段時間的苦戰, 一開始找到第一個問題, 以為是解決了, 沒想到測了一天後又出現, 後來終於明白了錯誤的現象其實是由兩個獨立的問題造成, 找到第二個問題後才完全解決.
Debug是應該以邏輯與系統的思考來追查問題, 如果真的想不出來, 可能是對系統不夠了解, 手中的線索還不夠多, 或是忽略了某些線索. 這是純粹以工程的角度來看, 但是從心理面的角度來看, 工程師有時面對難纏問題時的態度更值得檢討.
這個問題所在的部份是由一位年資約1年的韌體工程師負責, 老實說, 算是資淺的. 雖然一方面也是因為其他事情先將這個bug放一邊, 但是某種程度來說他對這個bug是比較退縮的態度, 也就是他被這個bug給打敗了. 有時候工程師除了需要技術上的支持之外, 也需要心理上的支持, 不管是資深同仁還是主管的關心, 即使都不懂的人, 往往一起討論也會有所收穫.
沒有留言:
張貼留言