敏捷軟件開發(fā)方法xpscrumppt課件_第1頁
敏捷軟件開發(fā)方法xpscrumppt課件_第2頁
敏捷軟件開發(fā)方法xpscrumppt課件_第3頁
敏捷軟件開發(fā)方法xpscrumppt課件_第4頁
敏捷軟件開發(fā)方法xpscrumppt課件_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 敏捷軟件開發(fā)方法其實(shí)不是一個(gè)具體的過敏捷軟件開發(fā)方法其實(shí)不是一個(gè)具體的過程,而是一個(gè)涵蓋性術(shù)語。用于概括那些程,而是一個(gè)涵蓋性術(shù)語。用于概括那些應(yīng)需而生的具有類似價(jià)值觀的軟件開發(fā)方應(yīng)需而生的具有類似價(jià)值觀的軟件開發(fā)方式和方法,這些方法一般都具有以人為核式和方法,這些方法一般都具有以人為核心、循環(huán)迭代、響應(yīng)變化等特點(diǎn),著眼于心、循環(huán)迭代、響應(yīng)變化等特點(diǎn),著眼于能高質(zhì)量地快速交付客戶滿意的工作軟件。能高質(zhì)量地快速交付客戶滿意的工作軟件。:現(xiàn)代軟件的 復(fù)雜性 軟件越來越復(fù)雜 可變性 需求越來越多變 一致性 過程越來越規(guī)范: 統(tǒng)一開發(fā)過程:Rational Unified Process 極限編程:

2、eXtreme Programming Scrum方法 敏捷建模:Agile Modeling 自適應(yīng)軟件開發(fā):Adaptive Software Developmentetc.: 極限編程XP是一種全新而快捷的軟件開發(fā)方法。XP團(tuán)隊(duì)使用現(xiàn)場客戶、特殊計(jì)劃方法和持續(xù)測試來提供快速的反饋和全面的交流。這可以幫助團(tuán)隊(duì)最大化地發(fā)揮他們的價(jià)值。XP誕生于2019年XP是以開發(fā)符合客戶需要的軟件為目標(biāo)而產(chǎn)生的一種方法論XP是一種以實(shí)踐為基礎(chǔ)的軟件工程過程和思想XP認(rèn)為代碼質(zhì)量的重要程度超出人們一般所認(rèn)為的程度: XP方法的基礎(chǔ)是4個(gè)價(jià)值觀念:溝通大多數(shù)項(xiàng)目的失敗源于溝通不暢,所以要進(jìn)行一些能夠推動積極溝

3、通的實(shí)踐。簡單開發(fā)能夠滿足客戶需要的最簡單的產(chǎn)品。反響開發(fā)者必須要獲取并且重視來自客戶、系統(tǒng)的反饋以及相互之間的反饋。勇氣準(zhǔn)備好做出支持其他原則和實(shí)踐的艱難決定。 :XP的適用范圍: XP適合規(guī)模小、進(jìn)度緊、需求變化大、質(zhì)量要求嚴(yán)的項(xiàng)目。它希望以最高的效率和質(zhì)量來解決用戶目前的問題,以最大的靈活性和最小的代價(jià)來滿足用戶未來的需求,XP在平衡短期和長期利益之間做了巧妙的選擇。 世界500強(qiáng)公司中成功應(yīng)用XP的公司有:Ford,Daimler-Chrysler,F(xiàn)irst Union National Bank,IBM,HP等等。: 不宜采用XP的項(xiàng)目:中大型的項(xiàng)目項(xiàng)目團(tuán)隊(duì)超過10人); 重構(gòu)會導(dǎo)

4、致大量開銷的應(yīng)用; 需要很長的編譯或者測試周期的系統(tǒng); 不容易進(jìn)行測試的應(yīng)用; 團(tuán)隊(duì)人員異地分布的項(xiàng)目; 不能接收XP文化的組織和團(tuán)隊(duì)。:XP在4個(gè)價(jià)值觀之上,又定義了12個(gè)的必須遵循的實(shí)踐:1. 完整團(tuán)隊(duì):XP項(xiàng)目的所有參與者開發(fā)人員、客戶、測試人員等一起工作在一個(gè)開放的場所中,他們是同一個(gè)團(tuán)隊(duì)的成員。這個(gè)場所的墻壁上隨意懸掛著大幅的、顯著的圖表以及其他一些顯示他們進(jìn)度的東西。每個(gè)人都了解對方的工作狀態(tài),程序員們都處在適合于激烈地進(jìn)行討論的位置上。客戶是Team成員,在開發(fā)現(xiàn)場和開發(fā)人員一起工作??蛻羰侵付x產(chǎn)品的特性并排列這些特性優(yōu)先級的人或者團(tuán)體.:2. 計(jì)劃游戲:計(jì)劃是持續(xù)的、循序漸進(jìn)

5、的。每2周,開發(fā)人員就為下2周估算候選特性的成本,而客戶則根據(jù)成本和商務(wù)價(jià)值來選擇要實(shí)現(xiàn)的特性。在每次發(fā)布和每次迭代的開始,開發(fā)人員基于在最近一次迭代或者最近一次發(fā)布中他們所完成的工作量,為客戶提供一個(gè)預(yù)算??蛻暨x擇那些所需的成本合計(jì)起來不超過該預(yù)算的用戶素材。 依據(jù)這些簡單的規(guī)則,采用短周期迭代和頻繁的發(fā)布,很快客戶和開發(fā)人員就會適應(yīng)項(xiàng)目的開發(fā)節(jié)奏。客戶會了解開發(fā)人員的開發(fā)速度?;谶@種了解,客戶能夠確定項(xiàng)目會持續(xù)多長時(shí)間,以及會花費(fèi)多少成本。:3. 客戶測試:作為選擇每個(gè)所期望的特性的一部分,客客戶測試:作為選擇每個(gè)所期望的特性的一部分,客戶可以根據(jù)腳本語言來定義出自動驗(yàn)收測試來表明該戶可

6、以根據(jù)腳本語言來定義出自動驗(yàn)收測試來表明該特性可以工作。特性可以工作。簡單設(shè)計(jì):團(tuán)隊(duì)保持設(shè)計(jì)恰好和當(dāng)前的系統(tǒng)功能相匹配。簡單設(shè)計(jì):團(tuán)隊(duì)保持設(shè)計(jì)恰好和當(dāng)前的系統(tǒng)功能相匹配。它通過了所有的測試,不包含任何重復(fù),表達(dá)出了編它通過了所有的測試,不包含任何重復(fù),表達(dá)出了編寫者想表達(dá)的所有東西,并且包含盡可能少的代碼。寫者想表達(dá)的所有東西,并且包含盡可能少的代碼。規(guī)范規(guī)范(依重要性依重要性): 通過所有測試通過所有測試 可讀性高的代碼可讀性高的代碼 避免重復(fù)避免重復(fù) 最少數(shù)量的類或方法。最少數(shù)量的類或方法。:5.結(jié)對編程:6. 所有的產(chǎn)品軟件都是由兩個(gè)程序員、并排坐在一起在同一臺機(jī)器上構(gòu)建的,讓兩個(gè)人共同

7、設(shè)計(jì)和開發(fā)代碼的實(shí)踐。結(jié)對者是全職合作者,輪流執(zhí)行鍵入和監(jiān)視;這提供了持續(xù)的設(shè)計(jì)和代碼評審。 XP的必須組成部分,XP中最有爭議的規(guī)則之一。7.不是兩個(gè)人做一個(gè)人的事情。:6. 測試驅(qū)動開發(fā):開發(fā)功能代碼之前,先編寫測試代碼,然后只編寫使測試通過的功能代碼,從而以測試來驅(qū)動整個(gè)開發(fā)過程的進(jìn)行。這有助于編寫簡潔可用和高質(zhì)量的代碼,有很高的靈活性和健壯性,能快速響應(yīng)變化,并加速開發(fā)過程。編寫單元測試是一個(gè)驗(yàn)證行為,更是一個(gè)設(shè)計(jì)行為。測試驅(qū)動開發(fā)的基本過程如下: 快速新增一個(gè)測試 運(yùn)行所有的測試有時(shí)候只需要運(yùn)行一個(gè)或一部分),發(fā)現(xiàn)新增的測試不能通過 做一些小小的改動,盡快地讓測試程序可運(yùn)行,為此可以

8、在程序中使用一些不合情理的方法 運(yùn)行所有的測試,并且全部通過 重構(gòu)代碼,以消除重復(fù)設(shè)計(jì),優(yōu)化設(shè)計(jì)結(jié)構(gòu) :7.改進(jìn)設(shè)計(jì):隨時(shí)利用重構(gòu)方法改進(jìn)已經(jīng)腐改進(jìn)設(shè)計(jì):隨時(shí)利用重構(gòu)方法改進(jìn)已經(jīng)腐化的代碼,保持代碼盡可能的干凈、具有化的代碼,保持代碼盡可能的干凈、具有表達(dá)力。表達(dá)力。8. 重構(gòu)是重構(gòu)是XP的一個(gè)重要組成部分。所謂的一個(gè)重要組成部分。所謂重構(gòu)是指在不改變代碼外在行為的前提下重構(gòu)是指在不改變代碼外在行為的前提下對代碼做出的修改,以改進(jìn)代碼的內(nèi)部結(jié)對代碼做出的修改,以改進(jìn)代碼的內(nèi)部結(jié)構(gòu)。重構(gòu)是一種有紀(jì)律的、經(jīng)過訓(xùn)練的、構(gòu)。重構(gòu)是一種有紀(jì)律的、經(jīng)過訓(xùn)練的、有條不紊的代碼整理方法,可以將整理過有條不紊的

9、代碼整理方法,可以將整理過程中不小心引入錯(cuò)誤的可能性降到最低。程中不小心引入錯(cuò)誤的可能性降到最低。從本質(zhì)上說,重構(gòu)就是在代碼寫好之后改從本質(zhì)上說,重構(gòu)就是在代碼寫好之后改進(jìn)它的設(shè)計(jì)。進(jìn)它的設(shè)計(jì)。:為什么要重構(gòu)?為什么要重構(gòu)?1.改進(jìn)軟件的設(shè)計(jì)。改進(jìn)軟件的設(shè)計(jì)。重構(gòu)則幫助重新組織代碼,重新清晰的體現(xiàn)結(jié)構(gòu)和進(jìn)一步改重構(gòu)則幫助重新組織代碼,重新清晰的體現(xiàn)結(jié)構(gòu)和進(jìn)一步改進(jìn)設(shè)計(jì)。進(jìn)設(shè)計(jì)。2.提高代碼質(zhì)量,可維護(hù)性。提高代碼質(zhì)量,可維護(hù)性。容易理解的代碼可以很容易的維護(hù)和做進(jìn)一步的開發(fā)。容易理解的代碼可以很容易的維護(hù)和做進(jìn)一步的開發(fā)。3.重構(gòu)幫助盡早的發(fā)現(xiàn)錯(cuò)誤。重構(gòu)幫助盡早的發(fā)現(xiàn)錯(cuò)誤。在另一個(gè)時(shí)段重新審視

10、自己或別人代碼,可以更容易的發(fā)現(xiàn)在另一個(gè)時(shí)段重新審視自己或別人代碼,可以更容易的發(fā)現(xiàn)問題和加深對代碼的理解。問題和加深對代碼的理解。.重構(gòu)可以提高提高開發(fā)速度。重構(gòu)可以提高提高開發(fā)速度。重構(gòu)對設(shè)計(jì)和代碼的改進(jìn),都可以有效的提高開發(fā)重構(gòu)對設(shè)計(jì)和代碼的改進(jìn),都可以有效的提高開發(fā)速度。速度。:8. 持續(xù)集成:團(tuán)隊(duì)總是使系統(tǒng)完整地被集成。一持續(xù)集成:團(tuán)隊(duì)總是使系統(tǒng)完整地被集成。一個(gè)人拆入個(gè)人拆入Check in后,其它所有人責(zé)任代后,其它所有人責(zé)任代碼集成。碼集成。 持續(xù)集成的思想是任何時(shí)候只有一項(xiàng)任務(wù)持續(xù)集成的思想是任何時(shí)候只有一項(xiàng)任務(wù)完成,就集成新代碼,構(gòu)造系統(tǒng)并測試。讓開完成,就集成新代碼,構(gòu)造

11、系統(tǒng)并測試。讓開發(fā)人員在第一時(shí)間了解到軟件的錯(cuò)誤,并迅速發(fā)人員在第一時(shí)間了解到軟件的錯(cuò)誤,并迅速排除錯(cuò)誤。排除錯(cuò)誤。:9. 集體代碼所有權(quán):任何結(jié)對的程序員都可以在任何時(shí)候改進(jìn)任何代碼,但改動后的代碼必須通過所有相關(guān)的測試。沒有程序員對任何一個(gè)特定的模塊或技術(shù)單獨(dú)負(fù)責(zé),每個(gè)人都可以參與任何其它方面的開發(fā)。10. 編碼標(biāo)準(zhǔn):系統(tǒng)中所有的代碼看起來就好像是一人單獨(dú)編寫的。規(guī)定了程序的風(fēng)格,包括注釋如何寫,變量命名的規(guī)范,代碼的格式等等。:11. 隱喻:將整個(gè)系統(tǒng)聯(lián)系在一起的全局視圖的概念。它是系統(tǒng)的未來影像,是它使得所有單獨(dú)模塊的位置和外觀變得明顯直觀。如果模塊的外觀與整個(gè)隱喻不符,那么你就知道該

12、模塊是錯(cuò)誤的。隱喻通??梢詺w結(jié)為一個(gè)名字系統(tǒng)。這些名字提供了一個(gè)系統(tǒng)組成元素的詞匯表,并且有助于定義它們之間關(guān)系。12. 可持續(xù)的速度:團(tuán)隊(duì)只有持久才有獲勝的希望。他們以能夠長期維持的速度努力工作,他們保存精力,把項(xiàng)目看作是馬拉松長跑,而不是全速短跑。提倡平穩(wěn)的工作效率,體現(xiàn)了XP以人為本的價(jià)值觀。XP的規(guī)則是不允許團(tuán)隊(duì)加班工作。在版本發(fā)布前的一個(gè)星期是該規(guī)則的惟一例外。如果發(fā)布目標(biāo)就在眼前并且能夠一蹴而就,則允許加班。:SCRUM 是敏捷過程的一種,以英式橄欖球爭球隊(duì)形 (Scrum)為名。Scrum將軟件開發(fā)團(tuán)隊(duì)比擬成橄欖球隊(duì) 有明確的最高目標(biāo), 熟悉開發(fā)流程中所需具備的最佳典范與技術(shù),

13、具有高度自主權(quán), 緊密地溝通合作, 以高度彈性解決各種挑戰(zhàn), 確保每天、每個(gè)階段都朝向目標(biāo)有明確的推進(jìn): 適于在不確定性高的環(huán)境中開發(fā)復(fù)雜產(chǎn)品; 簡潔但有效; 易于學(xué)習(xí)和掌握; 能夠在開發(fā)進(jìn)程中不斷檢查,并作出相應(yīng)調(diào)整; 項(xiàng)目信息對所有干系人高度透明; 便于快速發(fā)現(xiàn)問題,促使團(tuán)隊(duì)和組織持續(xù)改進(jìn);:圖一:團(tuán)隊(duì)生產(chǎn)力:圖二:士氣:圖三:責(zé)任感與主人翁意識:圖四:協(xié)調(diào)與合作:圖五:交付質(zhì)量:Google OracleIBM MotorolaNokia AgilentSiemens PhilipsSun SAPMicrosoft TecentOracle Yahoo!: 1、產(chǎn)品負(fù)責(zé)人Product

14、Owner):它是開發(fā)團(tuán)隊(duì)和客戶或最終用戶之間的聯(lián)絡(luò)點(diǎn)。代表產(chǎn)品線的利益,與Scrum Master和Scrum Team合作負(fù)責(zé)管理和確定產(chǎn)品記錄的優(yōu)先次序,角色負(fù)責(zé)產(chǎn)品的遠(yuǎn)景規(guī)劃側(cè)重于投資回報(bào)Return Of Investment:2、Scrum專家Scrum Master):Scrum專家負(fù)責(zé)指導(dǎo)開發(fā)團(tuán)隊(duì)進(jìn)行Scrum開發(fā)與實(shí)踐,它也是開發(fā)團(tuán)隊(duì)與產(chǎn)品擁有者之間交流的聯(lián)絡(luò)點(diǎn)。 為Scrum Team服務(wù),確保每一個(gè)成員都認(rèn)同Scrum價(jià)值觀和遵守其游戲規(guī)則組織每天的Daily Scrum會議負(fù)責(zé)保證Scrum Team的持續(xù)進(jìn)展決策和免除障礙幫助Scrum Team規(guī)劃Sprint計(jì)劃:

15、3、團(tuán)隊(duì)成員Team Member):即項(xiàng)目開發(fā)人員。自我管理,自我組織,多功能,通常由6 10人組成負(fù)責(zé)將Product Backlog轉(zhuǎn)化成Sprint中的工作項(xiàng)目所有團(tuán)隊(duì)成員協(xié)調(diào),合作和完成Sprint中每一個(gè)規(guī)定的工作所有團(tuán)隊(duì)成員和Scrum Master負(fù)責(zé)每一個(gè)Sprint的成功:l自我管理,自我組織,多功能,通常由6 10人組成l負(fù)責(zé)將Product Backlog轉(zhuǎn)化成Sprint中的工作項(xiàng)目l所有團(tuán)隊(duì)成員協(xié)調(diào),合作和完成Sprint中每一個(gè)規(guī)定的工作l所有團(tuán)隊(duì)成員和Scrum Master負(fù)責(zé)每一個(gè)Sprint的成功:開發(fā)團(tuán)隊(duì)成員召開,一般為15分鐘。所有成員必須參加,每個(gè)人

16、給全體成員匯報(bào)工作進(jìn)展。更新燃盡圖。每個(gè)開發(fā)成員需要向ScrumMaster匯報(bào)三個(gè)項(xiàng)目: 今天完成了什么? 遇到了障礙無法繼續(xù)下去? 明天要做什么?通過該會議,團(tuán)隊(duì)成員可以相互了解項(xiàng)目進(jìn)度。:Sprint評審會用來演示在這個(gè)Sprint中開發(fā)的產(chǎn)品功能給Product Owner. Produc Owner會組織這階段的會議并且邀請相關(guān)的干系人參加。 團(tuán)隊(duì)展示Sprint中完成的功能 一般是通過現(xiàn)場演示的方式展現(xiàn)功能和架構(gòu) 不要太正式不需要PPT一般控制在2個(gè)小時(shí) 團(tuán)隊(duì)成員都要參加 可以邀請所有人參加:團(tuán)隊(duì)的定期自我檢視,發(fā)現(xiàn)什么是好的,什么是不好的。 一般控制在15-30分鐘 每個(gè)Spri

17、nt都要做 全體參加Scrum Master產(chǎn)品負(fù)責(zé)人團(tuán)隊(duì)可能的客戶或其它干系人Sprint回顧會議上,全體成員討論有哪些好的做法可以啟動,哪些不好的做法不能再繼續(xù)下去了,哪些好的做法要繼續(xù)發(fā)揚(yáng)。:l 一次跌代開發(fā)的時(shí)間周期,一般最多以30天為 一個(gè)周期l 在這段時(shí)間內(nèi),開發(fā)團(tuán)隊(duì)需要完成一個(gè)制定的backlog,產(chǎn)品的設(shè)計(jì)、開發(fā)、測試都在Sprint期間 完成。l Sprint結(jié)束時(shí)交付可以工作的軟件。:一個(gè)需求的列表: 一般情況使用用戶故事來表示backlog條目 理想情況每個(gè)需求項(xiàng)都對產(chǎn)品的客戶或用戶有價(jià)值 Backlog條目按照商業(yè)價(jià)值排列優(yōu)先級 優(yōu)先級由產(chǎn)品負(fù)責(zé)人來排列 在每個(gè)Sprint結(jié)束的時(shí)候要更新優(yōu)先級的排列:l 將整個(gè)產(chǎn)品的backlog分解成Sprint Backlog,這個(gè)Sprint Backlog是按照目前的人力物力條件可以完成的。l 團(tuán)隊(duì)成員自己挑選任務(wù),而不是指派任務(wù)。l 每個(gè)團(tuán)隊(duì)成員都可以修改Sprint backlog,添加、刪除或者修改任務(wù)。:燃盡圖直觀的反映了

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論