2008年5月19日星期一

當軟體專案計劃趕不上變化時

http://www.lifeparty.idv.tw/blog/archives/279(部份轉載)

雖然「計劃趕不上變化,變化比不上老闆一句話」,但趕不上或比不上並不代表要放棄計劃,否則專案的成功也只是聽天由命的偶然罷了。同人認為,軟體專案要成功,關鍵不在於如何照計劃進行,而是要「計劃」當計劃趕不上變化時該怎麼辦。換句話說,當軟體專案管理者把計劃當成死的名詞時,他將不會成為稱職的專案管理者;稱職的專案管理者會把計劃當動詞,用以採取適當行動,才會讓專案走向成功。

實際上,根據同人在軟體專案開發的實務經驗,期待專案問題藉由收尾巴的過程而得到解決的想法,往往是要付出很慘痛的代價的,但許多人總是無法從這些慘痛教訓中得到啟示。在專案後期所發現的問題、或產生變動,其所花費的成本與消耗的開發人員的青春,與產出軟體的功能與品質相比往往是划不來的。於是,歷史不斷地重演,軟體開發的痛苦經驗也一再地被經歷。

問題並不在於軟體功能無法說加就加、說改就改,而是在收尾巴的過程中自廢武功。不根據需求的變動或軟體的現存問題規劃出合適的架構與概念設計,現存設計怎麼會有足夠的空間來容納新功能?就好像想在堆滿東西的房間中,還要硬塞一些東西進去,這樣的結果當然很容易會讓我們在這房間中跌倒。

......

理論上專案管理中的專案收尾過程(project closeout)本來就不是用來讓開發者增加功能、修改缺陷的,而是吸取專案的經驗及教訓(Lessons Learned),以利後續專案當作規劃參考。因此,期待在專案收尾巴才來修改軟體的想法,事實上,正代表著專案在規劃、執行及控制的過程中有所遺漏。然而,一廂情願地認為收尾巴可以彌補這些在專案過程中的遺漏,這種想法實在是太過樂觀了呀。

所以,現在其實是反省的時候,開發的時間已經過去了,硬著頭皮去修改將會付出很慘痛的代價的。你想修改的等Further Development時再改吧!

沒有留言: