2008年5月28日 星期三

Q05 產出驗收文件(4)──應不應該給客戶完整的程式碼?

在思考這個問題之前,應該先檢查公司內部對於專案程式碼的控管是否妥善並確認客戶是否註明原始碼交由他們自己維護。

在公司規定統一的控管方式之前,各個專案裡會有一部CVS電腦放置程式碼,但是在驗收後就會撤除。那時每個在專案裡的人都會在離開之前備份“當時”所有的程式碼,可是我們知道程式還會不斷地修改,在驗收後又再度需要修改程式時問題就出現了:每個人都不知道手上的程式碼跟客戶用的是否相同?更慘的狀況是根本再也找不到完整的程式碼。公司內有套系統要不是離職員工自行備份了一份,恐怕就正式成為孤兒軟體了。

我去維護某個系統時就是這樣,在沒人有把握的情況下只好自己用反組譯程式拉出要修改的Class到類似的環境裡,修改後編譯檔案再放進Jar File裡。在C++語言的系統沒有程式碼時,由於沒法反組譯exe檔案,有問題只好拿類似系統的內容過來再按執行時的需要當場修改。這樣的維護真的是人見人怕。

為了避免這些淒慘的狀況再度發生,現今的我會不管客戶合約有沒有註明要附上程式碼,在驗收的同時會將最後的工作區用密碼的方式壓縮後放在客戶端的電腦裡(當然自己也會收藏一份)。但是即使確保了最後的備份,要確定未來修改時改動到的是最正確的程式碼,還是必須仰賴所有經手的人把修改的部分更新到統一的控管裡才能達到。

沒有留言:

張貼留言