2007年7月18日 星期三

C06 外包給大學生做的程式

在2003年時,公司有一個專案需要大量的網頁來呈現後端的資料,那時因為人手不足的緣故而外包給五位大學生製作。開發完成後在整合測試時,我奉命支援那個專案添加一些功能,所以有機會看到他們所寫的JSP網頁程式。

他們製作的內容很單純,用html顯示內容再加上一些java script作控制;在控制的方法邏輯裡夾雜直接呼叫幾個通用處理與DB的類別;但是同事測試的時候幾乎是一邊測一邊念,因為一個功能的頁面與邏輯放在同一個檔案裡,類似的邏輯又重覆出現在許多功能中,測試的時候只要修改一個問題就得同時改變很多檔案裡相同的區塊。

這就是沒有把邏輯與顯示分開的典型,開發的時候把一堆東西夾雜在一起,在不用考慮關聯而直接使用的情形下,功能只要會動就好,開發速度超快;遇到第二個類似的功能,把第一個複製成第二個再修改差異部分的程式就完成另一個。我們看得到開發時的快速,但也看到必須修改時的痛苦,如果加上因特別因素非得拆開顯示與邏輯在不同檔案時,再投入的資源將會是良好規畫下所花費的五倍以上。

可是開發的人看不到這種痛苦,因為他們不是負責做這種事的人;專案經理也看不到這種痛苦,因為他們只管功能是否如期完成;老板也同樣看不到這種痛苦,因為他只感覺為什麼維護要花這麼多時間還做得不大好。這時負責維護的人要說什麼呢?只能祈禱能有明主可以解決這種痛苦吧。

沒有留言:

張貼留言