問二、我待過一些軟體公司和接觸過的「將資訊軟體外包」的公司,普遍上有一個觀念叫做「bug free」,意思是,bug 是 programmer 自己生的,所以,萬一有 bug 發生,由 programmer 自行找時間處理(意思是要自動自發地找正常上班以外的時間修補)。但我好奇的是,隨著我在軟體業擔任的角色開始不同,會發現, 有些所謂的 bug,其實發生點在 system analysis 或 system design 的過程中,不過,解決最終還是要回到 programmer 手上,所以,我的感覺是 bug free 似乎是在「欺壓」programmer,更何況,我似乎沒有見過寫完之後沒有 bug 的程式(至少我天資平凡,沒有寫過那麼完美的作品),原因可能來自於規格不完整、或測試的範圍不夠(如果測試時間沒有被業務或專案經理給壓縮成 0 的話)。我個人是認為這樣的觀念並不合理,請問是因為我的思維太過於工程師導向,沒有注重管理面的要素,或是其它原因呢?
甲讀者可能真的太年輕了,幹這一行的打從第一天工作開始便被欺壓了,這有什麼稀奇呢?軟體業從業員的工資不比其他行業高,為什麼入行當天就沒有「超時補水」(註:補水者加給也,如果把加給overtime pay連同工時一起算,我猜programmer的時薪恐怕是數一數二的低。)?真的要怪的話,就怪你入錯行好了。
如果你來不及學習新技能來轉換就業階梯、或是你對軟體編程仍充滿熱誠、又或是你壯志未酬,深信下一個楊致遠將會是閣下的話,老仙的淺見是「吃虧也是另類的撿便宜」。
IT產業千真萬確的出了很多年青才俊,坐擁千萬家財(仙按:心理病者也為數不少);這年頭資訊界的機會也的確比其他行業來得多,正因為這些誘因才會吸引那麼多年輕人甘於徹夜不眠地對著小螢幕「捉蟲」。至於蟲從何處來,相信業者最清楚不過。就如你說的,當初系統設計時某些假設出了毛病、或是一廂情願地錯估了客戶的需求、或是系統測試做得太馬虎、或是程式設計師不小心犯錯、又或是付鈔的財大氣粗,硬是中途修改系統規格、當然有時候是某些「善長仁翁」無緣無故地覺得多送些附加功能給客戶會換來贊賞也會給專案帶來額外的負擔(註:在專案管理上我們稱這種行為是給專案鍍金Gold-Plating,無論結果是進度順暢且預算控制得宜,老美都定義這個專案是不成功的案例,專案成員是不可不知的。),凡此種種,都是培養「肥蟲」的良方妙藥,然而不管成因若何,最終還得由程式設計師來修橋補漏,再不公平程式碼都得有人來幹,不管肇事者會不會勇敢地跑在人前認錯,好歹把它當成一種鍛鍊就是了。只要你記取今天的教訓,他日當你當上主管時,不會把同樣的包袱轉嫁到你的下屬,我們的業界才有望向前邁進。至於經驗的累積,技能的提升,只能在不斷觀摩高手們的程式碼和實戰中鍛鍊出來的,一覺醒來就能頓悟,寫出0錯誤的程式碼,天底下恐怕沒有幾人。吃下眼前的小虧而為他日打下穩固的基礎,何樂而不為?
註1:如果年輕讀者真的想在編程上有所成就,老仙建議諸公不妨細閱一本叫Writing Solid Code的書。老仙20年業界生涯裡,幾近0錯誤的程式碼是有碰到過的,寫的人正是比 老仙年輕卻帶領老仙入行啟蒙好友,我和他寫下2MB大小的源碼系統,91年面世時 就已經備妥解決千年蟲的問題,4年來客戶都沒有過一個錯誤回報,若不是他因癌病 逝,老仙今天可能還是過著拿起老花眼鏡對著螢光幕捉蟲的日子。
註2:近年歐美等地的軟體業者已經回復朝8晚4的正常上班日子(有的朝7午3、有的不必 到公司上班,因為他們相信清晨有助程式員編程),要他們加班恐怕不易了;而週五的 禮服日正好讓他們在矽谷多參加交際應酬活動,早日結束王老五生涯,順便和基金經理 打打交道。不過這樣的光景恐怕短期內不會在華人的軟體業界出現,畢竟我們的老闆在 全面西化時是有選擇性的。
沒有留言:
發佈留言