精華區beta CSSE 關於我們 聯絡資訊
※ 引述《vity (逍遙盃-佛得)》之銘言: : 大家好 : 想請問一下這兩個名詞, : 我認知是, Agile的精神在於讓使用者與開發者大量的溝通, : 例如使用雛形. : 而Rapid則是Agile的一種,例如Dynamic systems development method : 其精神在於反覆與漸增式開發, 同樣使用者與開發者大量溝通. : 像Extreme programing也是agile的一種, 著重反覆與漸增 : 我感覺起來三個幾乎一樣...不知關鍵差異在哪呢 Incremental model 是在 1970 年代就有人提出來的古典開發模型, 只是當時瀑布模型被喊得震天響,不這麼做就是落伍亂來,把其他開發模型都壓制了, 所以是很非主流的理論(因為當時軟體的主要市場在大型機構的電腦化)。 總之,到了個人電腦和 OOP 流行之後,由於套裝軟體的需求和開發工具的進步, 漸進模型才又鹹魚翻身,並大量出現各種改進的模型和開發方法, 到 1990 年代,瀑布模型反而人人喊打,以漸進模型為基礎的方法大行其道。 以原po提到的這三種較知名的方法來說: RAD 是 1991 年提出的方法 Extreme 是 1996 年 Agile 則是 2001 年 由於都在同樣的基礎上發展,所以看起來都很像,並且後來的方法, 自然會大量參考先前的方法,需要比較的重點,就是其間的演進了。 並且以時間點來看,真的不太能說某某方法是 Agile development 的一種, 後來才出現的方法,要把過去的方法收編在其名下,怎麼說都很怪。 RAD 所著重的,就是對外的快速原型,由此在內部的軟體結構,也因此需要著重, 當初會非常流行,主要就是因為 VB 的成功了。 到了 Extreme 就強調更深度和完善的溝通和回饋, 可以說是朝著和客戶共同開發的目標在走,因為客戶就是會想要改來改去, 與其被客戶搞得要死,不如叫他們一起參與開發過程。 那時候會流行 Extreme, 最主要就是因為大家都想要開網站。 Agile 則比較像是支持這類方法的狂熱開發者社群,給各種新的開發方法, 給予他們的認證,從某個角度來說,實際上就是他們在自 high, 別人可不見得願意被收編呢。 不過整體來說,就是朝著更為極端化的方向在走了,其中最大的特點, 可能就是正面肯定並引進 open source 運動所帶來的一些做法了, 例如支持 release early, release often 的原則就是一個例子, 所以和 open source 社群比較有交集,於是聲勢很大,外界的爭議和疑慮也多。 總之,這三者在實務上最簡單的分辨方法: 做 demo 程式給客戶看的叫 RAD 和客戶一直討論個不停的叫 Extreme 常常發佈新版本的叫 Agile 當然這些方法都有其軟體工程理論發展的脈絡,但如果光看理論, 很容易看得昏頭漲腦,不知道這些方法的重點在哪裡,以及為什麼。 若反過來從寫 VB 程式、開發網站,和做 open source 專案, 這樣的有時代性的需求來看,這些方法不過都是專家們整理開發經驗的結果, 於是從這個角度來看,其實就會很容易理解了。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.174.32.185 ※ 編輯: reader 來自: 218.174.32.185 (10/05 17:38)
vity:感謝 我在軟工聖經和吳仁和老師的課本都無法找到比這更詳細的 10/06 11:25
Favonia:incremental model 可能更早喔 :P 10/08 02:59
Favonia:doi.ieeecomputersociety.org/10.1109/MC.2003.1204375 10/08 03:00