最近在學習一些敏捷開發相關的知識,覺得有必要和傳統的瀑布開發模式做個比較。因為瀑布模式仍然被很大程度在使用著,作為技術開發出身我有較深的體會,相信有針對行的對比分析會有更好的理解。
關於瀑布模式和敏捷開發的基本特徵可以參照:
個人理解對比如下:
瀑布模型
敏捷開發
工作方式
1.以文件驅動,將軟體專案開發周期嚴格劃分為幾個固定階段(需求分析,系統設計,軟體設計,編碼,測試,交付),每個階段結束都有對應的詳細文件作為輸出
2.上乙個階段的輸出會作為下乙個階段的輸入,直至完成整個開發流程
3. 重視和強調過程文件
1.更加強調人的協作(團隊之間,客戶與團隊之間),在高度協作的環境中使用迭代方式進行增量開發
2.每次迭代完成都有可交付客戶查驗的產品功能並根據客戶的反饋進行產品功能的調整和完善
3.進行多次迭代直至完成完整產品交付
優點1.每個階段目的明確,階段人員完全專注於該階段的工作,有助於提高端段效率
2. 由於存在詳細的過程文件,在早期就能明確出專案的範圍和概況,能夠更有效的組織和調配資源開展專案
1.開發的階段性成果可以在開發過程中被客戶查驗,降低了專案開發的風險
2. 靈活性高,需求的變更可以在任何時候進行
缺點1.階段間大量的文件,極大的增加了工作量
2.專案後期才能展示成果給客戶,增加了專案開發的風險
(例如專案最終與客戶預期差別很大,若要修復會造成專案的延期和成本增加)
3.需求變更的成本較高
(需求的變動理論上也會嚴格按照各個階段去實施,導致時間成本過高)
1.最終交付的內容無法**,預期和實際完成的內容經常會有很大差異
2.敏捷需要高水平的協作以及開發人員和使用者之間的定期溝通。 業務和it人員在溝通前需要做大量的準備工作,但很多情況下業務的溝通時間無法保證
適用專案
軟體需求十分明確並且不會有頻繁的變化
需求不明確的專案、創新性的專案或者需要搶占市場的專案
敏捷開發與瀑布式開發的區別(精簡比較)
瀑布模型的特點 傳統的開發方式 1 強調文件 前乙個階段的輸出就是下乙個階段的輸入,文件是個階段銜接的唯一資訊。所以很多開發人員好象是在開發文件,而不是開發軟體,因為要到開發的後期才可以看到軟體的 模樣 2 沒有迭代與反饋。瀑布模型對反饋沒有涉及,所以對變化的客戶需求非常不容易適應。瀑布就意味著沒有...
軟體開發模式 瀑布與敏捷
文章摘自 瀑布模型是比較傳統一種開發模式,特別是在2b的傳統企業,包括erp,mes,wms,crm,oa,ibms等系統當中可以經常見到他們的影子。現在這種模式仍然流行在一些大的專案或者是外包的一些專案當中。如上圖所示,瀑布模型優缺點都很突出。根據以上分析,我們知道瀑布模式強調里程碑,重視文件,強...
瀑布模型開發與敏捷開發的對比
瀑布模型開發 嚴格把軟體專案的開發分隔成各個開發階段 需求分析,要件定義,基本設計,詳細設計,編碼,單體測試,結合測試,系統測試等。使用里程碑的方式,嚴格定義了各開發階段的輸入和輸出。如果達不到要求的輸出,下一階段的工作就不展開。強調文件,在開發的後期才會看到軟體的模樣。在這種情況下,文件的重要性彷...