簡介
瀑布模型,一個經典的軟件生命周期模型,也叫預測型生命周期、完全計劃驅動型生命周期。是比較傳統一種開發模式,在傳統企業經常見到他們的影子,特別一些大的項目或外包項目。
一般將軟件開發分為可行性分析(計劃)、需求分析、軟件設計(概要設計、詳細設計)、編碼(含單元測試)、測試、運行維護等幾個階段。
如圖:
優缺點
優點
- 階段清晰。從計劃到開發最后到上線運行,階段非常清晰,提供了按階段劃分的檢查點。
- 時間順序。每個階段順序必須是從上到下,嚴格按照時間先后進行。
- 環環相扣。在每一個階段都必須有產出物然后才能進入到下一個階段進行。
- 黑盒模式。每個階段都有各自的角色和分工,各自只關心自己的任務。
缺點
- 需求隔離。由于各階段的人員只能接觸到自己工作范圍內的東西,所以對客戶需求的理解程度高低不等,開發人員更像是定義為流水線上的工人。
- 變更代價大。既然叫做瀑布,就意味著不應該走回頭路。否則如果出現返工,付出的代價會很大。需求變更,編碼人員會很強的抵觸情緒。
- 束縛創造性。由于強調文檔管理,所以管理人員會比較喜歡,但是他束縛了開發人員的創造性。
- 測試不全面。測試人員往往最后面才開始介入測試,會因為沒有充分的準備而導致測試的缺失和不夠深入。
- 周期漫長。整個開發持續的生命周期很長,需求和設計的時間會耗費特別多,有時候會占用三分之一甚至更多時間,這樣整個周期就會變長,大都在半年到一年左右的時間,所以更適合需求相對穩定的大項目。
項目管理“鐵三角”
從項目管理“鐵三角”,項目管理四個最核心目標:
1 | 范圍 SCOPE(需求是什么要做什么) |
當“Fix Scope,Fix Cost”或者“Fix Scope,Fix TIME”,那么經常會聽到BOSS一句話,壓壓時間唄或者壓壓成本唄。
概念
項目執行計劃
人力資源計劃
項目實施方案
工作說明書
項目過程定義表
聯調計劃
聯調跟蹤表
項目周報
需求分析
概要設計
詳細設計
編碼
單元測試
集成測試
功能驗收測試
用戶驗收測試
運行維護