iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 2
0

敏捷開發 Agile Software Development一個被講到爛的議題,但為什麼我還是要不厭其煩地提到呢?因為DevOps的緣起,就是有借助到Agile的延伸

先說說傳統的瀑布式開發法 Waterfall,需要一步步一個環節一個環節的向前走,需求訂下來了後,就沒有回頭修改的理由,這在工程師的生活裡其實相對的容易,可以照著文件單純的做就好,完全不用擔心上星期開發完測試好的功能在這周的review會議被調整
https://ithelp.ithome.com.tw/upload/images/20190918/20111916Luw1HN3s1o.png
圖片來源:Agile versus Waterfall for CRM Implementation Success

但,很顯然的這是理想中的夢幻場景,在現在這個環境生態裡,昨天的需求今天沒有調整就已經很值得感謝了,因此瀑布式開發漸漸不敷使用,隕石式開發日漸興起(誤XD),敏捷開發法越來越重要,透過靈活快速的開發方法,縮小每個cycle的scope,因應會不斷改變的需求,要注意敏捷開發,並不是要快速開發,而是要針對快速變化的需求能夠應對
https://ithelp.ithome.com.tw/upload/images/20190918/20111916d0mRNf1qPD.png
圖片來源:Agile versus Waterfall for CRM Implementation Success

常見的敏捷開發方法有:(這後面會逐一介紹與探討)

  • Extreme Programming(XP)
  • Scrum
  • Kanban

來對比一下Agile和Waterfall的特色:

Agile Waterfall
需求不需要很明確,會保有很大可變性 專案架構需求會很確定才動工,開發開始後無法更動,彈性很低
一專案會切分出很多次循環的開發流程,每次開發的範圍會很小區塊 一開使開發會是整個專案功能都開始開發
會須跨領域頻繁溝通 分工明確,開發容易
文件化大部分沒有,因快速變動,往往會沒有維護 可文件化較完整,因為不可更動
適用於需求快速變動或是尚未確定的專案 適用於小專案或需求單一的專案

結語先概提DevOps 的本身是一種認知,需要縮小每次循環的時程,透過自動化作業加速進程,也藉由每次的反饋調整,使團隊快速學習快速推進,這中間敏捷式開發儼然成為一個不可或缺的重要角色,因此後面會針對詳細內容作更多的討論,至於每個專案在不同的背景和環境,會有其適合的開發方式,這不代表敏捷就是唯一選擇,或是敏捷中的某個方法就是唯一,有時候瀑布開發還是有存在的必要!組合不同的開發方式搭配也可以產出不錯的效益!請針對自己的專案狀況選擇或嘗試喔~

參考資料、延伸閱讀:

下集預告:Extreme Programming


上一篇
寫在這次鐵人賽之前
下一篇
Extreme Programming
系列文
後端功城獅30天DevOps探討挑戰30

尚未有邦友留言

立即登入留言