這次的挑戰方向我設定為「軟體開發養成計畫」。
內容將以程式設計能力的培養為核心,從基礎語法練習出發,逐步延伸到進階應用。不僅希望達成能寫出程式,更進一步朝向具備設計與規劃能力的層次發展。
在接下來的 30 天裡,我會完整記錄這段學習歷程,呈現每個小程式的開發過程與成果,並結合軟體開發中重要的觀念與方法。透過這樣的實作 + 思維並行,我期望養成持續精進的習慣,讓每天都能累積一點進步。
這些看似簡單的小程式,將會一步步堆疊出屬於我的開發養成之路,也成為日後挑戰更大型專案的基礎。
那麼,接下來就一起來看看我在 「軟體開發流程模型」 上的學習收穫吧!
簡單來介紹,軟體開發的過程都會需要有組織、有階段性的方法和架構,有需求分析、軟體規劃與設計、軟體開發、軟體測試與上線、維護與更新等流程。這些模型定義了各階段的先後順序、責任分工以及如何處理變更,以確保軟體品質與專案管理的效率。
以下是最常見的兩種流程模型:
Waterfall Model瀑布式開發流程,如其名,它的概念像瀑布一樣,流程從上到下依序進行,可以說是軟體開發最基礎的流程。
Agile Model敏捷開發模型,概念為透過迭代 (Iteration)和增量 (Increment),快速交付小部分功能,並能持續改進。與Waterfall Model不同,這是為了適應市場與需求的快速變化而產生的一種方式。
DevOps 是一種文化與實踐方法,旨在讓開發與運維緊密合作,透過自動化工具提高軟體交付速度與品質。它不是一個獨立的開發流程模型,而是可以作用於 Waterfall Model 或 Agile Model 的方法。
流程 / 方法 | 特徵 | 優點 | 缺點 |
---|---|---|---|
Waterfall (瀑布式) | 線性流程,一階段完成後才能進入下一階段 | 適合需求穩定的專案,規劃完整 | 後期修改困難,回應市場慢,使用者要到末期才見成品 |
Agile (敏捷) | 迭代與增量開發,快速交付小部分功能 | 調整彈性高,與使用者溝通密切,快速回饋 | 開發過程變動大,可能超出預算,需要團隊高度合作 |
DevOps | 開發與運維協作,自動化 CI/CD,持續監控 | 部署快且穩定,減少摩擦,提高效率 | 初期導入成本高,需要熟悉自動化與雲端技術 |
A:這兩種開發流程特性不同,可以依照專案種類來去做選擇。
如果專案需求很明確,而且變動不大,例如硬體控制系統或醫療專案,那 Waterfall 比較適合。
因為它有明確的階段,一步步走下去,文件完整,也方便管理。缺點是如果需求後期改變,修改成本很高,對市場變化的反應比較慢。
但如果專案需求常常變動,或者市場節奏很快,例如 App 開發或網頁服務,那 Agile 就比較適合。
因為它透過短週期的迭代和快速交付功能,能讓使用者提早看到成果並給回饋,團隊也能即時調整方向。缺點是過程不斷變動,需要團隊成員高度合作,且要有自律性。
所以呢,選哪個流程,主要還是看專案需求的穩定性和市場節奏,如果需求固定就用 Waterfall,如果需求容易變動就用 Agile。