這邊的『蟲』(Bug),不是生物界的蟲子,像是蟑螂、蜘蛛、螞蟻等等。
我指的是程式或是硬體上的錯誤。
為什麼要說錯誤是『蟲』呢?
話說早期的電腦,是一大堆的繼電器所組成。有一天某個超級電腦出了問題,電腦管理者就到主機裡頭去看,看到一隻飛蛾死在電路板上。
當天的管理日誌,不但把那隻死掉的飛蛾貼在日誌上,下頭還寫著:這可能是全世界第一之臭蟲。
後來,不管是程式或是硬體有錯誤,都沿用了這個名詞。
時至今日,當年的那隻飛蛾有了許多的後代。像是除錯就稱為『除蟲』,邏輯上的錯誤,就叫做『邏輯蟲』,語法上的錯誤,就叫做『語法蟲』。電路上的錯誤,就叫做『電路蟲』……
抱歉,電路蟲我瞎掰的。
不管軟硬,工程師最討厭的就是看到臭蟲的出現,那代表工程師必須耗上好幾個白天,好多個晚上去找這隻臭蟲出現的原因。
排除錯誤不算是真的除錯喔!要找到問題的原因那才叫真正的除錯。
每到除錯除到深夜,只剩下貓頭鷹和蟑螂和我這個工程師醒著的時刻,我都會很想拿出殺蟲劑在電路板上噴個兩下,看看那些『臭蟲』會不會就這樣死掉。
不過那是我癡心妄想。
工程師除蟲,就好像在修道一樣;那些該死的臭蟲,不斷在考驗著工程師的耐性、毅力、體力和經驗。而且每出現一個錯誤,就會打擊工程師自信心。
因為那些錯誤,都是工程師當初設計的時候,粗心大意或是趕著交貨所造成的苦果。
有的工程師在除錯的時候,會不斷的自言自語,再不然就是沉著一張臉不說話,或者是菸不離手。
你問我啊!如果問題解不出來的話,我很可能著急到哭出來。
打先前,我曾經說過業務是工程師最大的敵人。最可惡也最活該的業務,就是當工程師在除錯的時候,自己討罵挨,跑到工程師面前說:你明天能不能把東西交給我?
那時候聽了真的會很想打人!
還有一種人也很討人厭。
那種人就是生雞蛋沒有,拉雞屎有的工程師。通常這種人都是主管。
我指的不是我現在的主管,是我以前的那個老闆。
那老傢伙自以為很懂,實際上一知半解,他還擺出一副高高在上的樣子,他總是說有問題去問他,但是真正問他的時候,他卻給了我一個很沒有意義的答案。
也就是因為那個老傢伙,我養成了除錯時獨立排除問題的習慣。
反正別人也幫不了我什麼忙,我還是得悶著頭去幹!
軟體的蟲比較沒有什麼問題,解出來之後,安裝到硬體就好了。只不過你要花時間去看那將近上萬行的程式碼,同時也得去看那些好幾G的PDF檔的規格書。
硬體的蟲就很麻煩了!
像是線路設計錯誤,電路板的走線不對,鋪地鋪的不好,造成輸出的時候出現雜訊,或是某條線路訊號接錯等等。
假設整個系統有一萬條線,只要錯了一條,那就代表必須重頭來,從修改電路,到繪製印刷電路板,洗版、打件。這中間來來回回,是牽扯到數萬塊到數十萬的金錢,更別提中間所浪費的時間了。
消費性電子產品那還好,如果是IC設計呢?喔~~那壓力更大了!只要這顆IC出了什麼問題,那可是數百萬到數千萬不等。
所以幹硬體的,會比做軟體的還要痛恨臭蟲。
不只是電子相關產品的工程師討厭臭蟲,其他類型的,像是建築業、化工產業,造船、汽車……等等,只要被冠上『工程師』的行業,他們都討厭臭蟲!
就算是生物界的臭蟲,也沒多少人會喜歡,除非是研究生物生態的科學家。
所以啊~~臭蟲,是所有工程師心中永遠的痛!
PS:
本篇文章所提及的工程師,絕對不包含在微軟工作的工程師。因為他們根本不是在寫程式或是做硬體,他們根本就是臭蟲製造工廠。
(本篇原發表日期:2006/02/23 16:08:44)
沒有留言:
張貼留言