Scrum是一個包括了一系列的實踐和預定義角色的過程骨架(是一種流程、計劃、模式,用于有效率地開發(fā)軟件)。
敏捷方法之極限編程(XP)和Scrum區(qū)別
區(qū)別之一:迭代長度的不同
XP的一個Sprint的迭代長度大致為1~2周,而Scrum的迭代長度一般為2~4周。
區(qū)別之二:在迭代中,是否允許修改需求
XP在一個迭代中,如果一個User Story(用戶素材,也就是一個需求)還沒有實現(xiàn),則可以考慮用另外的需求將其替換,替換的原則是需求實現(xiàn)的時間量是相等的。而Scrum是不允許這樣做的,一旦迭代開工會完畢,任何需求都不允許添加進來,并有Scrum Master嚴格把關,不允許開發(fā)團隊受到干擾。
區(qū)別之三:在迭代中,User Story是否嚴格按照優(yōu)先級別來實現(xiàn)
XP是務必要遵守優(yōu)先級別的。但Scrum在這點做得很靈活,可以不按照優(yōu)先級別來做,Scrum這樣處理的理由是:如果優(yōu)先問題的解決者,由于其它事情耽擱,不能認領任務,那么整個進度就耽誤了。另外一個原因是,如果按優(yōu)先級排序的User Story#6和#10,雖然#6優(yōu)先級高,但是如果#6的實現(xiàn)要依賴于#10,則不得不優(yōu)先做#10。
區(qū)別之四:軟件的實施過程中,是否采用嚴格的工程方法,保證進度或者質量
Scrum沒有對軟件的整個實施過程開出工程實踐的處方,要求開發(fā)者自覺保證。但XP對整個流程方法定義非常嚴格,規(guī)定需要采用TDD、自動測試、結對編程、簡單設計、重構等約束團隊的行為。