極限編程 VS Scrum

禪道&敏捷開發
關注
2021-12-20 16:07
711次閱讀
極限編程(XP)是一個敏捷軟件開發框架,旨在幫助開發團隊達成更高質量的開發節奏,開發更高質量的軟件。XP是描述軟件開發工程具體實踐的敏捷框架。
Scrum是一個能夠解決復雜適應性問題的敏捷開發框架,同時以富有創造力的方式交付最高價值的產品,幫助團隊在復雜產品上進行有效協作。
作為敏捷方法論,Scrum和XP共享迭代式開發、發布和迭代計劃、每日會議、回顧會議及其他敏捷過程涉及到的元素。在很大程度上,這兩種方法是一致的,甚至有時很難將采用XP的團隊和采用Scrum的團隊區分。
(極限編程)
(Sprint周期)
不過兩種敏捷方法并非完全一致,它們之間也有一些細微的差異,主要在以下4個方面:
1.迭代長度
Scrum:
- 通常為兩周到一個月。
XP:
- 通常是一到兩周。
2.是否允許在迭代中修改需求
Scrum:
- 不允許更改sprint;
- 一旦sprint計劃會議完成,并做出了交付一組產品待辦事項的承諾,那么在這一Sprint結束之前,這組待辦事項將不會再變。
XP:
- 更容易在迭代中進行更改;
- 只要團隊尚未開始研究某個特定功能,就可以將同等大小的新功能交換到XP團隊的迭代中。
3.是否嚴格按照迭代的優先級實現用戶故事
Scrum:
- Scrum產品負責人為產品待辦事項安排優先級,但團隊決定他們開發待辦事項的順序。
- Scrum團隊很可能會選擇從事第二重要的工作。
XP:
- 嚴格按照優先順序工作。
- 要開發的特性由客戶(或Scrum的產品負責人)確定優先級,團隊需要按照這個順序對其進行處理。
4.是否采用嚴格的工程方法來保證軟件實施過程中的進度或質量
Scrum:
- 沒有規定任何工程實踐。
XP:
- 極限編程有十二個工程實踐:現場客戶、代碼規范、每周40小時工作制、計劃游戲、系統隱喻、簡單設計、測試驅動開發、重構、代碼集體所有、持續集成、小型發布、結對編程。
我們將XP和Scrum之間的區別總結如下:
從中,我們不難發現,XP與敏捷的結合出現了一個悖論,因為XP的思想加上敏捷模式,最終向團隊傳達了這樣的信息:“敏捷要求團隊自管理,但團隊又被測試驅動開發、結對編程等工程實踐約束。”
結論
Scrum作為一個敏捷軟件開發框架,可以在Scrum框架的基礎上添加其他實踐。而極限編程的工程實踐也完全適應Scrum開發框架,因此,與其在XP和Scrum之間進行選擇,不如將Scrum和XP進行融合。對于剛開始實踐Scrum并努力實踐敏捷的團隊來說,在Scrum中添加XP的工程實踐可能是一條合適的道路。

禪道&敏捷開發
+
關注
0