目前主流在討論的兩種開發模式,一個是瀑布式開發,一個是敏捷式開發,其各有優缺點。
今天用商業思維的角度來分析這兩個開發模式適合在什麼時候。
瀑布式開發是一種傳統的軟體開發方法,它將開發過程分為一系列的階段,每個階段都必須完成之前的階段才能開始。
在過往明確的規格且變化不高的需求下,這樣的開發模式是一個很棒的品質控管機制,讓我們瞭解每個階段要產生的東西,每個階段要寫的內容,要測試的內容等。讓我們在開發之中都可以有明確的目標與內容可以參照。
瀑布式開發的優點是計劃較為完善和控制整個時程比較明確,面對不變的需求來說是非常有效益的,但缺點是缺乏靈活性,在需求變更時需要重新規劃和調整,因此成本相對會花費很多。
從商業的角度來看,瀑布式開發的優點是:
瀑布式開發的缺點是:
在現今的時代,是一個科技飛速成長的時代,市場的變化越來越快,面對不穩定性(Volatility)、不確定性(Uncertain)、更為 複雜(Complex) 的與 模糊(Ambiguous) 的需求市場,公司必須要做出更快的改變速度,才能在這樣波動如此大的環境下生存,進而找到屬於公司的商業模式。
在這樣的時代來臨,面對如此不穩定的市場面向,傳統的瀑布式開發缺少了靈活彈性的調整,每次的調整成本太高,因此再推出到市場之前就要花費很高的成本,也跟不上市場變化的腳步。
在過往我在產品開發的初期也是使用瀑布式的開發方式,但後來推出面對市場的改變也是來不及應對,而導致產品還沒推出就已經被淘汰了,因此我們需要用更彈性的方式來驗證市場。
因此敏捷開發因需而生,敏捷式開發是一種迭代式的軟體開發方法,它將開發過程分為一系列的短週期,每個週期都會交付一個可用的產品版本。敏捷式開發的優點是靈活性高,可以快速應變需求變化,缺點是需要更高的團隊協作能力。
從商業角度來看,敏捷式開發的優點是:
敏捷式開發的缺點是:
敏捷的重點是『有彈性的應對市場的需求改變』,透過迭代的產品價值,推出適合現代市場所需要的功能為優先,先創造收益為主的方式,雖然不能說可以擁有有很高的成功率,但是相對於失敗的成本來說降低了很多,我們更可以用最低的成本去驗證市場,而不用等到產品都開發完了才來驗證市場,更何況能根據市場的反應去調整要開發的方向與功能,更適合現代商業的作法。
瀑布式開發和敏捷式開發各有其優缺點,企業在選擇開發方法時需要根據具體情況進行考量。
如果面對市場的需求是相對穩定,可以使用瀑布式開發。瀑布式開發可以幫助企業在開發初期就制定明確的目標和計劃,從而減少不確定性和風險。
如果面對市場的需求追求變化快速,可以使用敏捷式開發。敏捷式開發可以幫助企業更快地獲得市場反饋,從而調整產品或服務以滿足客戶需求。
此外,企業還可以根據自身的情況,將瀑布式開發和敏捷式開發結合起來使用。例如,在開發初期可以使用瀑布式開發來制定整體的開發計劃,在後期可以使用敏捷式開發來進行迭代開發。
因此沒有完美的開發模式,而是根據不同的狀態下選擇適合的,不能說哪個好哪個壞,而是基於你所要追求的目的是什麼,而去選擇合適的方法與工具。『工具的好壞不在工具本身,而是在使用的人。』