iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 3
1
DevOps

後端功城獅30天DevOps探討挑戰系列 第 3

Extreme Programming

中文翻譯「極限編程」,簡稱XP,不是Windows那個萬年長青喔XD

網路上有找到一些介紹,但英文版的居多,我就簡單整理一下分享Extreme Programming 是敏捷開發中的其中一種方式,雖然現在是Scrum比較夯,但多年前XP是相當受歡迎的敏捷開發方法

主要的重點,有四種基本行為、五個價值,三條原則,十二個實踐練習

Activities 基本行為

  • Coding 程式編碼:為唯一重要的資產,好的程式碼就形同一份好的文件
  • Testing 測試:會頻繁的執行測試,確保產出品質
  • Listening 傾聽需求:持續溝通,了解需求背後的故事,更加完善功能本身
  • Designing 系統設計:完善系統分析與設計可以增加程式的開發速度與未來的維運穩定度

Values 價值

  • Communication 溝通:利用頻繁的溝通和簡單的文件取代先前複雜的文件,可以加速開發流程
  • Simplicity 簡單:鼓勵用最簡單的方式完成,標榜專注當下的任務,不用為未來的需求作設想,因為未來的變數太多,另外相當鼓勵「重構 Refactoring」
  • Feedback 回饋:經過測試、客戶、用戶的回饋來調整與改善
  • Respect 尊重:XP倡導團隊,因此團隊中的任一人皆可修改程式,但要對其結果負責,亦須尊重團隊成員的貢獻
  • Courage 勇氣:要勇敢重構程式,避免跳入迴圈或是歷史的包袱中

Principles 原則

  • Feedback 快速反饋:在頻繁的修改、鼓勵勇敢重構的狀況下,需要快速且自動的回饋,很適合結合CI來運行
  • Assuming Simplicity 極簡風格:倡導不需要考慮未來擴充性,專注當下的簡易即可
  • Embracing Change 包容變化:能接受需求的異動與變化

Practices 實踐

  • Fine-scale feedback
    • Pair programming 團隊程式開發:組隊兩人以上一起寫程式,互相討論、code review,相信如此的程式碼才會比較完美,品質也會比較高
    • Planning game:
    • Test-driven development 測試驅動開發:這個現在也滿紅的,在開發程式以前先寫測試,沒有測試就不寫程式。有測試的好處是可以確保每次的更動都有一定程度的檢核與確保品質,在推動重構上也會更加穩定
      • Whole team 團隊:需要客戶與團隊一同合作
  • Continuous process
    • Continuous integration 持續整合:這個後面會有提到,可以屆時Follow我的分享
    • Refactoring or design improvement 重構:XP的重要觀念不要為了未來的擴展去多加設想,時間久了程式碼容易髒亂,因此非常推崇重構
    • Small releases 小規模發布:在敏捷裡滿重要的點,將每次修改異動的範圍縮小,加速開發
  • Shared understanding
    • Coding standards 程式開發規範:有一致的程式編碼風格與習慣可以提高後續維護的便利性,另外維持良好的Design Pattern也很重要
    • Collective code ownership 程式共有:程式碼都是共有的,每位工程師都須對程式碼負責
    • Simple design 簡單設計:XP非常推行「Simple is Best」要用最簡單的方式設計系統
    • System metaphor 系統隱喻:可以藉由程式碼了解某些特色,也可以傳達訊息,例如命名規則,buy(item),此功能即是購買某物的功能
  • Programmer welfare
    • Sustainable pace 可持續發產:這是一個在台灣大部分老闆裡會不太能接受的事情,開發工程師不得工作超過40小時,若當週超過時數,下週需要扣回來。要用較短的開發循環持續推進,更頻繁的交付,已獲得更高質量的成果

什麼時候適合使用若有符合以下六點的團隊,會適合使用XP:

  • 系統功能、需求,會快速的演變與產生
  • 系統使用者或客戶並不是真的很知道自己需要怎麼樣的系統功能
  • 在緊繃的Deadline狀況下,想要減少風險
  • 團隊只有少量的工程師(約2-12人左右)
  • 團隊運作與客戶相當貼近與密切
  • 團隊有導入自動測試

https://ithelp.ithome.com.tw/upload/images/20190919/20111916xTleisgGKK.png
圖片來源:What Is Extreme Programming? An Overview of XP Rules and Values

以上就是縱整我搜集到的資料重新說明的Extreme Programming歡迎有興趣的人可以至下方參考資料與延伸閱讀去了解更多細部內容

參考資料、延伸閱讀:

下集預告:Scrum


上一篇
Agile 敏捷開發(一)
下一篇
Scrum
系列文
後端功城獅30天DevOps探討挑戰30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言