上次的博文敏捷開發之道(二)極限編程XP和敏捷開發之道(三)極限編程XP續中,我們介紹了一下敏捷開發中的XP開發方法,今天咱們來了解另一個比較流行的敏捷開發方法——Scrum。
1、Scrum簡介
Scrum是一種兼顧計劃性和靈活性的敏捷開發過程,來源於美式足球中的"帶球過人","帶球過人"的含義主要是在比賽開始之前制定一個計劃,在比賽中隨機應變。2、Scrum與傳統開發模式
在傳統開發模式中,我們通常將開發模式分爲:需求、設計、編碼、測試等階段,而在Scrum中則將整個開發過程分爲多次迭代,成爲Sprint。3、Scrum與XP的區別和聯繫
Scrum與XP都是敏捷開發方法,兩者都體現了快速反饋,強調交流,強調人的主觀能動性等敏捷開發的基本原則,而且兩者之間的多數實踐都可以互相適用。但兩者之間除了聯繫之外還有一些區別。
區別一
Scrum的迭代長度一般爲2~4周,XP相對來說時間較短通常爲1~2周;區別二
在XP的一個迭代中,如果一個用戶素材還沒有實現,則可以考慮用另外的需求將其替換,替換的原則是需求實現的時間量是相等的。而在Scrum的一個迭代中則要求,一旦迭代開工會完畢,任何需求都不允許添加進來,並有Scrum Master嚴格把關,開發期間不允許開發團隊受到干擾;區別三
在XP迭代中,用戶素材的實現務必要遵守優先級別,而在Scrum中,則可以不按照優先級別來做。Scrum給出的理由很簡單,即如果優先問題的解決者,由於其它事情耽擱,不能認領任務,那麼整個進度就耽誤了。另外一個原因是,如果按優先級排序的用戶素材中,存在較高優先級依賴較低優先級的情況,則要想實現較高優先級的就必須首先完成優先級低的。區別四
XP對開發流程的定義非常嚴格,規定需要採用TDD、自動測試、結對編程、簡單設計、重構等約束團隊的行爲。XP這樣的理念加上敏捷開發自我管理的理念,它最終表達的意思就是你是一個自我管理的個體,但你需要執行TDD、自動測試、結對編程……等等,這就給我帶來了困惑。相對的,Scrum沒有對軟件的整個實施過程嚴格要求,更加強調Self-Orgnization的理念,要求開發者自覺保證。通過以上對比,我們可以發現Scrum更加強調面向管理過程的開發方式,XP則更加強調面向工程過程的開發方式。所以更多的人在管理模式上啓用Scrum, 而在實踐中,創造一個適合自己項目組的XP。
今天我們就先講到這裏,更多的內容,請見下篇!敬請期待。