不要讓其他程式設計師修補自己的BUG

王垠的部落格發表於2015-03-04

在軟體行業,經常看到有的公司管理讓一個人修補另一個人程式碼裡的 BUG。有時候有人寫了一段程式碼,扔出來不管了,然後公司管理讓其他工程師來修復它。我想告訴你們,這種方法會很失敗。

首先,讓一個人修復另一個人的 BUG,是不尊重工程師個人技術的表現。久而久之會降低工程師的工作積極性,以至於失去有價值的員工。程式碼是人用心寫出來的作品,就像藝術家的作品一樣,它的質量牽掛著一個人的人格和尊嚴。如果一個人A寫了程式碼,自己都不想修復裡面的 BUG,那說明A自己都認為他自己的程式碼是垃圾,不可救藥。如果讓另一個人B來修復A程式碼裡的 BUG,就相當於是讓B來收拾其他人丟下的垃圾。可想而知,B在公司的眼裡是什麼樣的地位,受到什麼樣的尊重。

其次,讓一個人修復另一個人的 BUG,是效率非常低下的作法。每個人都有自己寫程式碼的風格和技巧,程式碼裡面包含了一個人的思維方式。人很難不經解釋理解別人的思想,所以不管這兩人的程式設計技術高下,都會比較難理解。不能理解別人的程式碼,不能說明這人程式設計技術的任何方面。所以讓一個人修補另一個人的 BUG,無論這人技術多麼高明,都會導致效率低下。有時候技術越是高的人,修補別人的 BUG 效率越是低,因為這人根本就寫不出來如此糟糕的程式碼,所以他無法理解,覺得還不如推翻重寫一遍。

當我在大學裡做程式設計課程助教的時候,我發現如果學生的程式碼出了問題,你基本是沒法簡單的幫他們修復的。我的水平顯然比學生的高出許多,然而我卻經常根本看不懂,也不想看他們的程式碼,更不要說修復裡面的 BUG。就像上面提到的,有些人自己根本不知道自己在寫什麼,做出一堆垃圾來。看這樣的程式碼跟吃屎的感覺差不多。對於這樣的程式碼,你只能跟他們說這是不正確的。至於為什麼不正確,你只能讓他們自己去改,或者建議他們推翻重寫。也許你能指出大致的方向和思路,然而深入到具體的細節卻是不可能的,而且不應該是你的職責。這就是我的教授告訴我的做法:如果程式碼不能執行,直接打一個叉,不用解釋,不用推敲,等他們自己把程式改好,或者實在沒辦法,來 office hours 找你,向你解釋他們的思想。

如果你明白我在說什麼,從今天起就對自己的程式碼負起責任來,不要再讓其它人修補自己的 BUG,不要再修補其他人的 BUG。

相關文章