極限程式設計 - 過程週期
極限程式設計是一種敏捷過程。
極限程式設計是一種敏捷過程,因為它:
強調大量的溝通和反饋:
團隊內部(結對程式設計、集體程式碼所有權、簡單設計)
與客戶(現場客戶和驗收測試)
用於釋出計劃(客戶和開發人員參與估算)
極限程式設計聘用了一位教練,其工作是注意人們何時沒有進行溝通並重新引入溝通。
擁抱變化:
頻繁迭代(短期釋出)
輕鬆設計和重新設計(簡單設計)
持續編碼和測試(結對程式設計)
讓客戶持續參與(線上客戶)
以短迭代(短期釋出)向客戶交付可工作的產品。
儘早消除缺陷,從而降低成本(結對程式設計)
程式碼審查
單元測試
針對每一組更改和測試進行整合
極限程式設計過程週期
極限程式設計是迭代和增量的,並且由時間盒週期驅動。因此,極限程式設計過程的節奏至關重要。
極限程式設計具有以下活動級別:
產品生命週期
釋出
迭代
任務
開發
反饋
每個活動級別都提供下一級別所需的最小輸入。它們是:
產品生命週期活動為釋出週期提供輸入。
釋出計劃會議為迭代週期提供輸入。
迭代計劃會議為任務週期提供輸入。
任務開發為開發階段提供輸入。
開發產生產品。
反饋是整個專案和所有上述活動級別的持續活動。
產品生命週期
這也被稱為探索階段。它涉及功能集定義和計劃。客戶獲得高價值需求,並且需求以使用者故事的形式給出。
故事是此級別活動的初級交付物。
釋出
這也被稱為承諾階段。在此活動中:
整個團隊聚集在一起,以便:
審查進度。
可以新增新的需求和/或更改或刪除現有需求。
客戶展示故事。
討論故事。
開發人員確定技術方法和風險。他們提供第一級估計和選項。
客戶對故事進行優先順序排序並選擇目標釋出時間盒。
客戶和開發人員承諾要包含的功能以及下一次釋出的日期。
開發人員:
將故事安排到可能的迭代中。
包含來自先前釋出的驗收測試的缺陷修復。
開始迭代。
釋出計劃是此級別活動的初級交付物。
迭代
這也被稱為指導階段。整個團隊聚集在一起,以便審查進度並調整計劃。客戶為迭代展示故事,並更詳細地討論這些故事。
迭代計劃是此活動的初級交付物。
開發人員:
確定詳細的技術方法。
為每個故事建立任務列表。
開始開發。
部署系統到
可部署系統是此活動的最終交付物。
任務
開發人員註冊任務並開始開發階段以實現故事。他們確保迭代的任務已完成。開發人員還確保迭代的故事已透過驗收測試完成。
開發
開發人員組成配對,這可以是一個持續的動態活動。
每對:
驗證他們對故事的理解。
確定詳細的實施方法,確保簡單設計。
開始測試驅動開發,即編寫單元測試、實現程式碼以透過單元測試、重構以使程式碼簡單。
在適當的間隔將他們的程式碼整合到系統程式碼庫中。
經常審查進度。
反饋
配對人員在內部和外部與團隊進行持續溝通。線上客戶也持續參與溝通。某些團隊採用每日站立會議,以快速討論整體團隊狀態以及必要時可能的重新同步和微計劃。
迭代和釋出審查提供整體狀態和流程調整和改進點。
開發階段可能會導致重新思考任務。
任務開發可能會導致重新思考故事。
故事重新估算可能會導致迭代更改或恢復。
迭代結果可能會導致釋出計劃發生更改。
極限程式設計過程週期如下所示。