2008年10月7日 星期二

R07 支援專案所見(4)──疊床架屋解決問題

原來的功能模組已經完成得差不多時,如果遇到一些與原來流程不盡相同的改變,要是因之前沒有良好設計而擔心融入新的考量時會有解不完的問題,那麼通常都會找出相異的地方後使用if else指令另繞出一條不同的路來放新的流程動作。這便是疊床架屋型的設計。

這種設計法很快而且風險很小,只要條件找對就可以成功。但是一塊一塊固化的程式以及一個一個的if夾雜在一塊,要維護與變更比較多層內的程式可就恐怖了,因為一旦拉扯到重心所在的物件時,恐怕整個系統倒得比什麼都快。還有即使是if else的條件判斷也應該規畫好放置的地方以及共用的考量,才不會因信手拈來而雜亂無章。

很可惜只要專案時程一壓迫,變動都會被只求快速地完成而無暇兼顧佈置,這也正是許多系統令人痛苦的地方。有時在增加新功能元件的時候,主管都會要求要好好地依理想設計,但是元件本身可以,想要把元件處理的部分“好好地”融合到原來的系統裡卻太困難了。

這時我會舉一個例子給主管:有兩個罐子各標示著要放紅豆與綠豆,但是原先的人放的時候不嚴謹,兩邊都各混到一些錯誤的豆子,後來的人再嚴格地把紅豆與綠豆分類放好,這對那兩個罐子而言還是混亂的,並沒有多大用處啊!最後整個系統還是要再度重整的,因為從一開始就沒有做好應有的設計,後面再怎麼做好效果都是有限甚至是做白工。

沒有留言:

張貼留言