日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SCRUM与XP区别

發(fā)布時間:2023/12/10 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SCRUM与XP区别 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

敏捷開發(fā)

1、敏捷的含義

敏捷開發(fā)是一種以人為核心迭代增量的開發(fā)方法。在敏捷開發(fā)中,把一個大項目分為多個相互聯(lián)系,可獨立運行的小項目,并分別完成,在此過程中軟件一直處于可使用狀態(tài)。

上面提到3個關(guān)鍵詞,下面做個闡述:

以人為核心:眾所周知在瀑布開發(fā)模型中,會出現(xiàn)大量的文檔,開發(fā)人員往往都是根據(jù)文檔進行開發(fā),一切以文檔為依據(jù);而敏捷開發(fā)倡導(dǎo)少寫文檔,注重人與人面對面的交流,用溝通解決項目問題,所以它強調(diào)以人為核心

迭代開發(fā):是指把一個復(fù)雜且開發(fā)周期很長的大任務(wù),分解為很多小周期可完成的任務(wù),這樣的一個周期就是一次迭代;同時每一次迭代都可以生產(chǎn)或開發(fā)出一個可以交付的軟件產(chǎn)品

增量開發(fā):是指軟件每個發(fā)布的版本,都會新增一個用戶可以感知的完整功能。可以理解成,按照新增功能來劃分迭代

2、如何敏捷?

上面闡述的敏捷更多的是一種理念,但要實現(xiàn)敏捷開發(fā)有哪些實現(xiàn)方式呢?常見方式有兩種Scrum和XP,在講解具體步驟前,先說說它們的區(qū)別。

網(wǎng)上隨處可查的區(qū)別是:Scrum偏重于過程,XP則偏重于實踐。簡單解釋一下這句話,Scrum是從管理上,流程上設(shè)計一些方法來定義敏捷。XP是從具體的細節(jié)和某一工作的實現(xiàn)方法上深度挖掘了敏捷思想。區(qū)別詳細如下:

1. Scrum 和 XP 團隊都在迭代的方式下工作,但Scrum的周期一般是從兩周到一個月,XP的周期是一兩周

2. Scrum 團隊在一個sprint中是不接受任何任務(wù)變更的。而XP的團隊在一個迭代中,如果新的用戶故事跟原來的規(guī)模和大小差不多,可以用新的進行替換。

3. XP 團隊會嚴格按照任務(wù)的優(yōu)先級來工作。所有的任務(wù)都被客戶劃分了優(yōu)先級,團隊都被要求在該優(yōu)先級下工作。但scrum團隊的人員會自己決定他們以何種順序來完成所有的任務(wù)。

4. Scrum并沒有定義任何工程實踐的方法,它只是提供了一個實踐的框架給你。但XP,極限編程卻會給你這樣的一些東西。比如測試驅(qū)動開發(fā), 自動化測試,結(jié)對編程,簡單設(shè)計,重構(gòu)等等。

下面我們分別來講講Scrum和XP

Scrum流程

?

Scrum步驟:

1、我們首先需要確定一個Product Backlog(按優(yōu)先級排列的一個產(chǎn)品需求清單),這個是由產(chǎn)品經(jīng)理負責的;

2、Scrum 團隊根據(jù)Product Backlog清單,做工作量的預(yù)估和計劃;

3、有了Product Backlog清單,我們需要通過 Sprint Planning Meeting(Sprint計劃會議) 來從中挑選出一個Story(用戶故事)作為本次迭代完成的目標,這個目標的時間周期是1-4周,然后把這個Story進行細化,形成一個Sprint Backlog;(PS:Sprint 表示一次迭代)

4、Sprint Backlog是由Scrum 團隊去完成的,每個成員根據(jù)Sprint Backlog再細化成更小的任務(wù)(細到每個任務(wù)的工作量在2天內(nèi)能完成);

5、在Scrum 團隊完成計劃會議上選出的Sprint Backlog過程中,需要進行 Daily Scrum Meeting(每日站立會議),每次會議控制在15分鐘左右,每個人都必須發(fā)言,并且要向所有成員當面匯報你昨天完成了什么,承諾你今天要完成什么,同時遇到不能解決的問題也可以提出,每個人回答完成后,要走到黑板前更新自己的 Sprint burn down(Sprint燃盡圖,見下圖);

6、做到每日集成,也就是每天都要有一個可以成功編譯、并且可以演示的版本;可使用工具實現(xiàn)提交、更新、測試和發(fā)布;

7、當一個Story完成,也就是Sprint Backlog被完成,也就表示一次迭代完成,我們就要進行 Srpint Review Meeting(演示會議),也稱為評審會議,每一個Scrum 團隊的成員都要演示自己完成的軟件產(chǎn)品;

8、最后就是 Sprint Retrospective Meeting(回顧會議),也稱為總結(jié)會議,以輪流發(fā)言方式進行,總結(jié)并討論改進的地方,放入下一輪Sprint的產(chǎn)品需求中;

?

XP敏捷實踐

XP即極限編程(Extreme Programming的縮寫)。極限編程是一種強調(diào)團隊工作的工作方式,它是多種敏捷方式的一種。與Scrum不同的是,Scrum是一種工作方式的框架,從組織到團隊的設(shè)計,而XP關(guān)注的是具體的工程技術(shù)實踐。XP旨在通過工程實踐的合理搭配使用,使開發(fā)者們能夠自信地響應(yīng)客戶需求。強調(diào)反饋環(huán)機制,客戶與研發(fā)團隊之間的反饋環(huán),測試與開發(fā)的反饋環(huán),具體代碼實現(xiàn)跟單元測試之間的反饋環(huán),結(jié)對之間的反饋環(huán)。極限編程認為在軟件研發(fā)過程中,變化是無所不在的,人們不應(yīng)回避變化,而應(yīng)該適應(yīng)變化,通過對反饋去適應(yīng)變化。

?

XP工程實踐:

1、小型發(fā)布(Small Release)

每一次發(fā)布的版本應(yīng)該盡可能的小,當然前提條件是每個版本有足夠的商業(yè)價值,值得發(fā)布。由于小型發(fā)布可以使得集成更頻繁,客戶獲得的中間結(jié)果也越頻繁,反饋也就越頻繁,客戶就能夠?qū)崟r地了解項目的進展情況,從而提出更多的意見,以便在下一次迭代中計劃進去。以實現(xiàn)更高的客戶滿意度。

2、計劃游戲/規(guī)劃策略(The Planning Game)

計劃游戲的主要思想就是先快速地制定一份概要的計劃,然后隨著項目細節(jié)的不斷清晰,再逐步完善這份計劃。計劃游戲產(chǎn)生的結(jié)果是一套用戶故事及后續(xù)的一兩次迭代的概要計劃。“客戶負責業(yè)務(wù)決策,開發(fā)團隊負責技術(shù)決策”是計劃游戲獲得成功的前提條件。也就是說,系統(tǒng)的范圍、下一次迭代的發(fā)布時間、用戶故事的優(yōu)先級應(yīng)該由客戶決定;而每個用戶故事所需的開發(fā)時間、不同技術(shù)的成本、如何組建團隊、每個用戶故事的風險,以及具體的開發(fā)順序應(yīng)該有開發(fā)團隊決定。

3、現(xiàn)場客戶(On-site Customer)

為了保證開發(fā)出來的結(jié)果與客戶的預(yù)想接近,XP方法論認為最重要的需要將客戶請到開發(fā)現(xiàn)場。因此,在項目中有客戶在現(xiàn)場明確用戶故事,并做出相應(yīng)的業(yè)務(wù)決策,對于XP項目而言有著十分重要的意義。

4、簡單設(shè)計(Simple Design)

這個實踐看上去似乎很容易理解,但卻又經(jīng)常被誤解,許多批評者就指責XP忽略設(shè)計是不正確的。其實,XP的簡單設(shè)計實踐并不是要忽略設(shè)計,而且認為設(shè)計不應(yīng)該在編碼之前一次性完成,因為那樣只能建立在“情況不會發(fā)生變化”或者“我們可以預(yù)見所有的變化”之類的謊言的基礎(chǔ)上的。

5、結(jié)對編程(Pair programming)

所有的軟件都是由兩個程序員、并排坐在一起在同一臺機器上完成的。

6、測試驅(qū)動開發(fā)(Testing)

編寫單元測試是一個驗證行為,更是一個設(shè)計行為。編寫單元測試避免了相當數(shù)量的反饋循環(huán),尤其是功能驗證方面的反饋循環(huán)。程序員以非常短的循環(huán)周期工作,他們將預(yù)先編寫一個自動化測試腳本,然后再編碼使之通過。

7、重構(gòu)(Refractoring)

重構(gòu)是一種對代碼進行改進而不影響功能實現(xiàn)的方式,XP需要開發(fā)人員在聞到代碼的壞味道時,有重構(gòu)代碼的勇氣。重構(gòu)的目的是降低變化引發(fā)的風險,使得代碼更優(yōu)雅。

8、持續(xù)集成(Continuous Integration)

持續(xù)集成的含義則是要求XP團隊每天盡可能多次地做代碼集成,每次都在確保系統(tǒng)運行的單元測試通過之后進行。這樣,就可以及早地暴露、消除由于重構(gòu)、集體代碼所有制所引起的錯誤。一個人commit后,其它所有人都有責任進行代碼集成工作。

9、代碼集體所有權(quán)(Collective Code Ownership)

任何結(jié)對的程序員都可以在任何時候改進任何代碼。沒有程序員對任何一個特定的模塊或技術(shù)單獨負責,每個人都可以參與任何其它方面的開發(fā)。

10、編碼規(guī)范(Code Standards)

XP方法論認為擁有編碼標準可以避免團隊在一些與開發(fā)進度無關(guān)的細節(jié)問題上發(fā)生爭論。

11、系統(tǒng)隱喻(System Metaphor)

它是系統(tǒng)的未來影像,將整個系統(tǒng)聯(lián)系在一起的全局視圖;它使得所有單獨模塊的所屬位置和外觀變得明顯直觀。如果模塊的外觀與整個隱喻不符,那么你就知道該模塊是錯誤的。

12、可持續(xù)的速度/每周40小時工作制(40-hour Week)

加班早已成為開發(fā)人員的家常便飯,也是管理者最常使用的一種策略,而XP方法論認為,加班最終會扼殺團隊的積極性,最終導(dǎo)致項目失敗。團隊只有持久才有獲勝的希望。他們以能夠長期維持的速度努力工作,他們保存精力,他們把項目看作是馬拉松長跑,而不是全速短跑。

?

總結(jié)

以上是生活随笔為你收集整理的SCRUM与XP区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。