終於快結束30天的挑戰了,專案開發的知識點除了環境安裝、技術學習以外,還有一個重點知識,那就是專案的開發流程,不論是想要開發甚麼樣的大型專案,都一定要先學習各種開發流程,然後尋找最適合現在使用的流程下去開發,這邊會介紹兩個常被人提及的開發模型,瀑布式與敏捷式。
在講開發模型以前,要先了解一下軟體開發生命週期(Software Development Life Cycle,SDLC),週期各階段如下圖所示。
這個步驟為專案開發的起點,當客戶提出需求時,第一個步驟就是計畫,在這個階段需要PM、UI/UX Designer、Developers 以及客戶共同確認幾個目標。
當需求與範圍確認完成後,就開始進入設計流程,這個階段交由PM 或UI/UX Designer 負責,在這裡也有分為幾個階段。
到這裡才正式進入開發的流程,從一開始到這個階段才衍生出不同開發模型,例如Waterfall Model、Agile Model 等,依照公司的文化、步調以及團隊的組成等等去決定使用的開發模型。
當然,在開發的過程中,團隊也會進行測試、修Bugs的過程;然而在軟體開發完畢,在將產品正式部署以前,必須再更深入的測試,了解使用者的反應、喜好以及軟體運作的情況,有機會做出進一步的修改。
通常,測試的工作會交由開發團隊中的QA (Quality Assurance)團隊,邀請一小群的Users 去測試Beta 版,利用追蹤工具、埋點去檢視使用者的操作情況。
在這個步驟就是將過去開發的結果部署到正式機上,將產品推向市場,發佈產品給所有使用者。
在產品正式部署後,會收到許多User 的反饋,需求就有可能進行更動,當然也有可能跑出許多測試時未發現的Bugs,這個階段就必須因應Users 的反饋進行維護並持續更新。
這裡也就是被稱為生命周期(Life Cycle) 的原因,因為整個開發流程就是不斷循環的一個過程,會根據使用者的需求改變、市場的改變,重複著上述每個步驟持續讓產品更新迭代,才能夠使產品生生不息。
Waterfall Model 瀑布模型也稱作瀑布式開發,它是大多數軟體開發的最初標準,基本上就是遵循著SDLC 的流程,必須完整的經歷生命周期的每個步驟,系統化的考慮時間與資源的投入以及分析、設計、技術等。
由於該模型強調開發過程中需有完整的規劃、分析、設計、測試等管理與控制,因此能有效的確保系統品質。
Agile Model 敏捷模型也稱作敏捷式開發,是一種應對快速變化需求的開發方式,強調開發人員團隊成員及客戶之間的緊密協同運作、面對面的溝通、頻繁交付新的軟體版本,能夠很好地適應需求的快速變化。
在敏捷式開發的過程中,會將專案項目分成多個子項目,各個子項目都會經過設計、開發、測試等流程,在子項目完成時,將成品展示給客戶,若符合需求再向下開發,反之則進行修正改進,如此一來可將整體風險降至最低,並使產品能夠快速適應變化。
由於將開發工作細分化,大大減少了前期規畫和設計的數量,因此可將每個子項目的開發時程減少到一到四週的時間,以保證可以快速迭代,迭代的方式可能不會一次增加足夠的功能可以立即發布使用,目標是在每次迭代都可以有個可用的發行版,因此完整產品的發布或新功能可能需要經過多次迭代。
因為較注重人員的溝通而忽略文件的重要性,若專案人員流動性太高,會給維護帶來不少難度,特別式專案存在新手較多的時候,老手會比較辛苦。
軟體業到底在幹嘛?軟體業開發流程、各職能大揭密!
瀑布模型 - 维基百科,自由的百科全书
敏捷软件开发 - 维基百科,自由的百科全书
Difference between Agile and Waterfall model - javatpoint
【筆記】Waterfall model 瀑布模型介紹 @ 橘子亂說話 :: 痞客邦 ::