Posted on 2007-09-11 15:07
久城 閱讀(1783)
評論(1) 編輯 收藏 所屬分類:
軟件工程
第一次聽到這個詞,是在剛入司時的年中總結會上。一個項目leader說他的項目正在采用迭代式開發開發一個項目。由于習慣了瀑布式模型,沒有過這種開發模式的經驗,所以項目進展時常遇到一些問題,小組的成員都在不斷嘗試與摸索中。當時還不知道什么叫迭代式開發。
直到參加項目一個多月后,從DD到PG再到PT,才知道,原來迭代式開發和自己一直進行著的瀑布式開發模型是一個層次的概念。
網上有人說,迭代式開發正在逐步取代瀑布式開發而成為主流。讓我不由得關注了一下迭代式開發。但還是感覺,這個想法很可笑。
兩者都是一種開發模式,就像設計模式一樣,考慮的角度不一樣,個人感覺談不到取代一說。
傳統的瀑布式開發,也就是從需求到設計,從設計到編碼,從編碼到測試,從測試到提交大概這樣的流程,要求每一個開發階段都要做到最好。特別是前期階段,設計的越完美,提交后的成本損失就越少。我現在從事的外包項目就是這樣的流程。
迭代式開發,不要求每一個階段的任務做的都是最完美的,而是明明知道還有很多不足的地方,卻偏偏不去完善它,而是把主要功能先搭建起來為目的,以最短的時間,最少的損失先完成一個“不完美的成果物”直至提交。然后再通過客戶或用戶的反饋信息,在這個“不完美的成果物”上逐步進行完善。
這兩種開發模式都各自具有自己的特點,迭代式開發適合在一些需求信息不明確的項目中,這樣在開發過程中遇到需求的變化時,所帶來的影響要比瀑布式開發小。而現在的很多項目中,需求在項目進行中變化的事兒經常見,所以顯得迭代式開發的優勢更明顯一些。
但是,從本質上來說,二者都不過是一種開發的模式,即使是迭代式開發,在每一個迭代的環節中,不也是此從需求到設計,從設計到編碼,從編碼到測試嗎?這不也是瀑布式模型的體現嗎?只不過這個瀑布式中的每一個階段不需要做到最優化,都留一些任務到下一層迭代中去做而已。
所以,我覺得面對不同的問題采用不同的模式,模式是為了方便我們開發而服務的,不是要求我們必須按照某一種模式從頭走到尾。
就象迭代式開發,我們其實也經常用到這種模式。比如說開發項目中的某一個模塊。我們先把能夠實現主要功能的代碼寫出來。比如一個查詢模塊,先從模塊的構思到設計再到編碼,先查詢功能的代碼,測試一遍查詢成功。這算是完成了第一層迭代。然后我們要再考慮一層迭代中的一些還未完成的細節問題,比如查詢的check,查詢結果的顯示以及查詢算法的優化等等,這就是第二層迭代。
我想這是程序員在寫代碼的時候常有的思路。這應該也是一種迭代式開發的體現吧。
只是干想,畢竟沒有實戰過,一定有很多我理解錯的地方。
先記錄下,有待以后更深的體會后再修改。
歡迎來訪!^.^!
本BLOG僅用于個人學習交流!
目的在于記錄個人成長.
所有文字均屬于個人理解.
如有錯誤,望多多指教!不勝感激!