作為一名電腦科學學生,你在學術生涯與早期職業生涯中將會接觸到各種框架與方法論。軟體開發中最為主流的兩種方法是敏捷與瀑布。理解這兩種模型之間的差異,對於專案管理、與利害關係人溝通以及交付高品質程式碼至關重要。本指南深入探討這兩種方法論,幫助你無需依賴特定工具或銷售宣傳,就能掌握軟體開發生命週期(SDLC)的複雜性。 理解瀑布模型 🌊 瀑布模型是軟體開發最早的方法之一。它遵循線性且順序的設計流程。可以把它想像成一條水流只朝一個方向流下的瀑布;一旦某個階段完成,專案就會進入下一個階段。若要回到先前的階段,將會付出顯著的成本或努力。 核心特徵 順序階段: 流程被劃分為明確的階段。在當前階段完成並獲得批准之前,無法開始下一個階段。 大量文件記錄: 每個階段在繼續前都需具備詳細的文件記錄。這確保了清晰性,並保留決策的紀錄。 僵化規劃: 需求在初期就已定義。專案啟動後,很難應對變更。 測試於最後階段: 質量保證與測試通常在開發階段完成後才進行。 瀑布模型的階段 雖然存在各種變體,但標準的瀑布生命週期通常包含以下步驟: 需求分析: 收集軟體需要執行的所有必要資訊。利害關係人完全定義專案範圍。 系統設計: 架構師與工程師建立藍圖。這包括資料庫設計、硬體規格與介面配置。 實作: 開發人員根據設計規格撰寫實際程式碼。 測試: 系統會被測試是否有錯誤、缺陷以及是否符合需求。若發現問題,將予以修復,但範圍變更極為罕見。 部署: 軟體會釋放到最終使用者。 維護: 上線後會持續提供支援,以修復問題或更新系統。 理解敏捷方法論 🔄 敏捷是一種現代化的方法,與瀑布模型截然不同。它強調彈性、協作與客戶反饋。與長時間的時程並在最後單一交付不同,敏捷將專案拆分成小型、可管理的單元,稱為迭代或衝刺。










