在軟體工程管理的領域中,有兩種常見的開發方法,分別是敏捷式 Agile 和瀑布式 Waterfall。
早年大型專案多半是瀑布式的開發,但近十年來,許多成長型的公司開始採用敏捷,敏捷開發漸漸成為討論的主流。
而說起這兩者的差別,大家最想知道的問題通常是:「使用敏捷開發後,開發的速度會變快嗎?」
而這個問題的答案是不一定。
為什麼不一定?敏捷聽起來不是很快的意思嗎?是有這樣的意思,但也有一些誤解。我們先來簡單帶大家認識一下傳統的瀑布流,再來討論為什麼敏捷的開發速度不一定會比較快。
瀑布式開發
瀑布式開發是經典的開發方式,其實我認為也比較符合一般人的直覺。主要的核心概念就是,一口氣完成整個專案。
一口氣完成整個專案,不是理所當然地嗎?對,所以才說這比較符合普通人的直覺。因為敏捷不是這樣的。
總之,整個瀑布式的開發流程大致上可以分成幾個大階段,也就是經典的軟體開發生命週期(SDLC),以下稍微簡述:
需求訪談與定義
需求端提出對於系統的需求後,再歷經完整的需求訪談後會產生出規格文件,也會讓設計師進行介面的設計。
軟體系統分析設計
架構師或系統分析師根據前面規劃好的規格文件,進行系統的細部規劃,例如決定要使用什麼技術,程式架構的設計等等。
功能實作及單元測試
工程師根據系統分析的結果進行實際的程式撰寫,並測試其撰寫的程式是否正常運作。
整合測試及驗收
針對完成的功能進行整體性的測試,並讓需求端或利害關係人進行驗收。
安裝部屬及維運
實際將系統部屬到使用環境,並維持系統正常且持續運作。
這樣的流程,應該很符合大眾的邏輯,先有需求,然後規劃,然後設計開發、測試、上線。