敏捷開發(fā)模型介紹_第1頁(yè)
敏捷開發(fā)模型介紹_第2頁(yè)
敏捷開發(fā)模型介紹_第3頁(yè)
敏捷開發(fā)模型介紹_第4頁(yè)
敏捷開發(fā)模型介紹_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、敏捷開發(fā)介紹(一)1敏捷開發(fā)知識(shí)體系簡(jiǎn)介Agile(敏捷)一詞來(lái)源于2001年初美國(guó)雪鳥滑雪勝地的一次敏捷方法發(fā)起者和實(shí)踐者的聚會(huì),隨后他們成立了“敏捷聯(lián)盟”,并制定了敏捷宣言。敏捷軟件開發(fā)又稱敏捷開發(fā),是一種從20世紀(jì)90年代開始捉奸因其廣泛關(guān)注的一些新型軟件開發(fā)方法,它基于更緊密的團(tuán)隊(duì)協(xié)作、持續(xù)的用戶參與和反饋,能夠有效應(yīng)對(duì)快速變化需求、快速交付高質(zhì)量軟件的迭代和增量的新型軟件開發(fā)方法。敏捷開發(fā)更注重人的作用,強(qiáng)調(diào)個(gè)人和團(tuán)隊(duì)協(xié)作及自組織、通過(guò)短迭代快速交付和展示價(jià)值、持續(xù)的客戶參與及反饋和快速響應(yīng)變化。敏捷開發(fā)是哲學(xué)理念、價(jià)值觀和一系列開發(fā)實(shí)踐的綜合。這種哲學(xué)理念關(guān)注持續(xù)的交付價(jià)值,推崇讓

2、客戶滿意和軟件盡早發(fā)布。接受敏捷理念的客戶和工程師有著共同的觀點(diǎn):唯一真正重要的工作產(chǎn)品是在合適時(shí)間提交給客戶的可運(yùn)行軟件。敏捷開發(fā)同時(shí),又是一種輕量級(jí)的開發(fā)方法,他通過(guò)一個(gè)或多個(gè)跨職能的小型團(tuán)隊(duì)分多個(gè)迭代持續(xù)增量的交付價(jià)值。敏捷開發(fā)通過(guò)迭代和快速用戶反饋,管理不確定性和擁抱變化。敏捷開發(fā)恰當(dāng)?shù)谋A袅塑浖_發(fā)過(guò)程的基本框架活動(dòng):用戶溝通、策劃、設(shè)計(jì)構(gòu)建、交付物和評(píng)估,它以用戶的需求進(jìn)化為核心,采用迭代、循序漸進(jìn)的方法進(jìn)行軟件開發(fā)。在敏捷開發(fā)中,軟件項(xiàng)目在構(gòu)建初期被切分成多個(gè)子項(xiàng)目,各個(gè)子項(xiàng)目的成果都經(jīng)過(guò)測(cè)試,具備可視、可集成和可運(yùn)行使用的特征。換言之,就是把一個(gè)大項(xiàng)目分為多個(gè)相互聯(lián)系,但也可獨(dú)

3、立運(yùn)行的小項(xiàng)目,并分別完成,在此過(guò)程中軟件一直處于可使用狀態(tài)以此推動(dòng)項(xiàng)目朝著構(gòu)建和交付發(fā)展。敏捷開發(fā)知識(shí)體系框架可分為3層:核心價(jià)值層、敏捷開發(fā)方法框架層和敏捷實(shí)踐層。核心價(jià)值層主要包括敏捷宣言和12個(gè)原則;敏捷開發(fā)方法框架層主要包括各種敏捷開發(fā)過(guò)程框架,包括XP、Scrum、精益開發(fā)和OpenUP等;敏捷開發(fā)實(shí)踐層則主要包括用于指導(dǎo)敏捷開發(fā)的各種實(shí)踐。敏捷開發(fā)知識(shí)體系層次如下圖:敏捷開發(fā)知識(shí)體系層次敏捷開發(fā)知識(shí)體系的核心對(duì)敏捷開發(fā)知識(shí)體系的層次進(jìn)行細(xì)分,就得到敏捷開發(fā)知識(shí)體系的整體框架,如下圖所示。其中,敏捷開發(fā)知識(shí)體系的核心是敏捷宣言,它們是敏捷開發(fā)思想和價(jià)值觀的集中體現(xiàn),它直接影響人們的

4、思維模式。敏捷開發(fā)方法框架ScrumXpLeanOpenUPFDDCrystal等敏捷開發(fā)管理實(shí)踐項(xiàng)目管理:迭代式開發(fā)多級(jí)項(xiàng)目規(guī)劃完整團(tuán)隊(duì)風(fēng)險(xiǎn)價(jià)值生命周期沖刺規(guī)劃每日站立會(huì)任務(wù)板燃盡圖故事點(diǎn)評(píng)估開發(fā):代碼規(guī)范測(cè)試:測(cè)試管理變更管理:團(tuán)隊(duì)變更管理敏捷開發(fā)方法框架層核心層:核心價(jià)值觀和開發(fā)原則敏捷開發(fā)方法實(shí)踐層_L_敏捷開發(fā)工程實(shí)踐需求管理:產(chǎn)品待辦列表業(yè)務(wù)流程草圖用例驅(qū)動(dòng)開發(fā)用戶故事架構(gòu):演進(jìn)式架構(gòu)演進(jìn)式設(shè)計(jì)開發(fā):結(jié)對(duì)編程測(cè)試驅(qū)動(dòng)開發(fā)重構(gòu)測(cè)試:?jiǎn)卧獪y(cè)試并行測(cè)試變更管理:基于組件的架構(gòu)設(shè)計(jì)持續(xù)集成自動(dòng)構(gòu)建敏捷開發(fā)知識(shí)體系整體框架因此,正確的理解敏捷宣言,建立正確的敏捷價(jià)值觀是成功開展敏捷開發(fā)的關(guān)鍵

5、。敏捷的價(jià)值觀更相信通過(guò)個(gè)體及個(gè)體間的有效協(xié)作,持續(xù)不斷地交付價(jià)值;通過(guò)客戶的參與和快速反饋,更好地?fù)肀ё兓嵘蛻魸M意度。它充分體現(xiàn)敏捷文化中面向結(jié)果,關(guān)注價(jià)值和以客戶為中心的協(xié)作創(chuàng)新理念。敏捷開發(fā)方法框架隨著敏捷開發(fā)運(yùn)動(dòng)的開展,敏捷開發(fā)領(lǐng)域逐漸發(fā)展出各種敏捷開發(fā)過(guò)程或方法框架,這些敏捷開發(fā)過(guò)程都可以由他們所強(qiáng)調(diào)的3個(gè)關(guān)鍵假設(shè)識(shí)別出來(lái),而這3個(gè)假設(shè)可以適用于大多數(shù)的軟件開發(fā)項(xiàng)目。假設(shè)1:項(xiàng)目的需求總是變化的,而提前預(yù)測(cè)哪些需求是穩(wěn)定的,哪些需求會(huì)變化是非常困難的。同樣,管理項(xiàng)目進(jìn)行過(guò)程中客戶優(yōu)先級(jí)的變化也很困難。假設(shè)2:對(duì)于很多軟件來(lái)說(shuō),設(shè)計(jì)和構(gòu)建是交錯(cuò)進(jìn)行的。假設(shè)3:從指定計(jì)劃的交付來(lái)看

6、,軟件的分析、設(shè)計(jì)、構(gòu)建和測(cè)試并不像我們?cè)O(shè)想的那么容易。這3個(gè)假設(shè)要求敏捷開發(fā)過(guò)程一定是預(yù)測(cè)性的過(guò)程,而如何能夠做到預(yù)測(cè)性呢?答案就是敏捷的自適應(yīng)性。也就是說(shuō),敏捷軟件過(guò)程必須具備自適應(yīng)能力。但原地踏步式的自適應(yīng)收效甚微,因此,敏捷軟件過(guò)程必須是增量地自適應(yīng)。為了達(dá)到這一目的,敏捷團(tuán)隊(duì)需要通過(guò)快速交付可運(yùn)行軟件,獲取客戶的持續(xù)反饋。在以上3個(gè)假設(shè)的前提下,敏捷方法中應(yīng)用最廣的敏捷開發(fā)方法框架包括如下幾種。1、Scrum。Scrum包括一系列事件和預(yù)定義角色,是一種靈活的軟件管理過(guò)程。它提供了一種經(jīng)驗(yàn)方法,可以幫助你駕馭迭代并實(shí)現(xiàn)遞增的軟件開發(fā)過(guò)程。這一過(guò)程是迅速、有適應(yīng)性、自組織的,他發(fā)現(xiàn)了軟

7、件工程的社會(huì)意義,是的團(tuán)隊(duì)成員能夠獨(dú)立地集中在創(chuàng)造性的協(xié)作環(huán)境中工作。2、精益開發(fā)(lean)。精益的理念,就是從最終用戶的視角上觀察生產(chǎn)流程,視任何未產(chǎn)生增值的活動(dòng)為浪費(fèi),并通過(guò)持續(xù)的消除浪費(fèi),實(shí)現(xiàn)快速交付、提高質(zhì)量與控制成本的目標(biāo)。因此,對(duì)于軟件開發(fā)而言,在開發(fā)者或者最終用戶的視角上觀察軟件開發(fā)過(guò)程,并發(fā)現(xiàn)和消除無(wú)益于快速交付的行為,記為精益的軟件開發(fā)。3、極限編程(XP)。極限編程是由KentBeck提出的一套對(duì)業(yè)務(wù)需求和軟件開發(fā)實(shí)踐的規(guī)則,它的作用在于將二者力量集中在同一個(gè)共同的目標(biāo)上,高效并穩(wěn)妥地推進(jìn)開發(fā)。它力圖在客戶需求不斷變化的前提下,以可持續(xù)的步調(diào),采用高響應(yīng)的軟件開發(fā)過(guò)程來(lái)交

8、付高質(zhì)量的軟件產(chǎn)品。4、OpenUP。最早源自IBM內(nèi)部對(duì)RUP(RationalUnifiedProcess)的敏捷化改造,它是由一組適合高效率軟件開發(fā)的最小實(shí)踐集組成的敏捷化的統(tǒng)一過(guò)程。他的基本出發(fā)點(diǎn)是務(wù)實(shí)、敏捷和協(xié)作。本文后續(xù)將重點(diǎn)介紹Scrum和XP方法,其余因目前暫未在公司進(jìn)行實(shí)踐,不做過(guò)多介紹。敏捷開發(fā)管理實(shí)踐和工程實(shí)踐敏捷開發(fā)管理實(shí)踐和工程實(shí)踐包括哪些,可參見敏捷開發(fā)整體框架圖,此不贅述。2敏捷開發(fā)核心價(jià)值觀和原則敏捷軟件開發(fā)宣言2001年2月,17位在當(dāng)時(shí)被稱之為“輕量級(jí)方法學(xué)家”的軟件開發(fā)領(lǐng)域領(lǐng)軍人物聚集在美國(guó)猶他州的滑雪勝地雪鳥雪場(chǎng)。經(jīng)過(guò)兩天的討論,“敏捷”(Agile)這

9、個(gè)詞為全體聚會(huì)者所接受,用以概括一套全新的軟件開發(fā)價(jià)值觀,并通過(guò)一份簡(jiǎn)明扼要的敏捷宣言傳遞給世界,宣告了敏捷開發(fā)運(yùn)動(dòng)的開始。敏捷開發(fā)宣言我們一直在實(shí)踐中探尋更好的軟件開發(fā)方法,身體力行的同時(shí)也幫助他人。由此我們建立了如下價(jià)值觀:個(gè)體和互動(dòng)高于流程和工具工作的軟件高于詳盡的文檔客戶合作高于合同談判響應(yīng)變化高于遵循計(jì)劃也就是說(shuō),盡管右項(xiàng)有價(jià)值,我們更重視左項(xiàng)的價(jià)值。敏捷宣言告訴我們,敏捷是一個(gè)相對(duì)的詞匯(見下圖示意),具體敏捷程度取決于項(xiàng)目團(tuán)隊(duì)的上下文,例如復(fù)雜項(xiàng)目由于其團(tuán)隊(duì)規(guī)模、技術(shù)特點(diǎn)和循規(guī)要求等,將會(huì)要求團(tuán)隊(duì)有更嚴(yán)格的治理流程和工具支持、更規(guī)范的文檔和計(jì)劃要求,但仍然可以借助敏捷的價(jià)值觀和各

10、種實(shí)踐解決開發(fā)過(guò)程中遇到的問題。因此,在具體的敏捷開發(fā)實(shí)踐中,必須實(shí)事求是地采用合適的敏捷實(shí)踐,以實(shí)用主義為指導(dǎo)思想,面向業(yè)務(wù)結(jié)果和價(jià)值,切不可為了敏捷而敏捷。個(gè)體和互動(dòng)工作的軟件客戶合作響應(yīng)變化流程和工具詳盡的文檔合同談判遵循計(jì)劃Agility是一個(gè)相對(duì)的詞匯敏捷開發(fā)核心價(jià)值觀敏者,疾也,指對(duì)外來(lái)的刺激作出迅速、機(jī)靈的反應(yīng);捷者,/戚(ie)也,指以最短的路徑去追趕和實(shí)現(xiàn)目標(biāo)。敏捷開發(fā)的核心理念就是以最簡(jiǎn)單有效的方式快速地達(dá)成目標(biāo),并在這個(gè)過(guò)程中及時(shí)地響應(yīng)外界的變化,作出迅速的調(diào)整。敏捷開發(fā)的核心價(jià)值觀總結(jié)為以下四條:以人為本強(qiáng)調(diào)個(gè)體及個(gè)體間的溝通與協(xié)作在軟件開發(fā)過(guò)程中的重要性目標(biāo)導(dǎo)向敏捷開

11、發(fā)認(rèn)同目標(biāo)導(dǎo)向是成功的關(guān)鍵,軟件開發(fā)的目標(biāo)是客戶為先可工作的軟件“,而不是面面俱到的文檔敏捷開發(fā)中,既不簡(jiǎn)單地將客戶視為“上帝”,也不將客戶當(dāng)做談判桌上的對(duì)手。敏捷價(jià)值觀把客戶當(dāng)成了合作伙伴,把自己使命定位為“幫助客戶取得競(jìng)爭(zhēng)優(yōu)勢(shì)”擁抱變化承認(rèn)變化是軟件開發(fā)的一部分并坦然應(yīng)對(duì),正是這些變化為客戶和項(xiàng)目帶來(lái)價(jià)值。最后,應(yīng)記住敏捷宣言中的最后一句話:“盡管右項(xiàng)有價(jià)值,我們更重視左項(xiàng)的價(jià)值”敏捷宣言并未否定或貶損“右項(xiàng)”的價(jià)值,在敏捷開發(fā)的價(jià)值觀中承認(rèn)“流程和工具”、“詳盡的文檔”、“合同談判”以及“遵循計(jì)劃”的重要性,只是相比較,更重視“左項(xiàng)”的價(jià)值。3敏捷開發(fā)的原則及應(yīng)用敏捷開發(fā)12條原則:o我

12、們最重要的目標(biāo),是通過(guò)持續(xù)不斷地及早交付有價(jià)值的軟件使客戶滿意;【終極目標(biāo)】o欣然面對(duì)需求變化,即使在開發(fā)后期也一樣;【擁抱變化】o為了客戶的競(jìng)爭(zhēng)優(yōu)勢(shì),敏捷過(guò)程掌控變化;o經(jīng)常地交付可工作的軟件,相隔幾星期或一兩個(gè)月,傾向于采取較短的周期;o業(yè)務(wù)人員和開發(fā)人員必須相互合作,項(xiàng)目中的每一天都不例外;o激發(fā)個(gè)體的斗志,以他們?yōu)楹诵拇罱?xiàng)目;o提供所需的環(huán)境和支援,輔以信任,從而達(dá)成目標(biāo);o不論團(tuán)隊(duì)內(nèi)外,傳遞信息效果最好效率也最高的方式是面對(duì)面的交談;o可工作的軟件是進(jìn)度的首要度量標(biāo)準(zhǔn);o敏捷過(guò)程倡導(dǎo)可持續(xù)開發(fā);o責(zé)任人、開發(fā)人員和用戶要能夠共同維持其步調(diào)穩(wěn)定延續(xù);o堅(jiān)持不懈地追求技術(shù)卓越和良好設(shè)計(jì)

13、,敏捷能力由此增強(qiáng);o以簡(jiǎn)潔為本,它是極力減少不必要工作量的藝術(shù);【精益生產(chǎn),簡(jiǎn)介為本】o最好的架構(gòu)、需求和設(shè)計(jì)出自自組織團(tuán)隊(duì);o團(tuán)隊(duì)定期地反思如何能提高成效,并依此調(diào)整自身的舉止表現(xiàn)。敏捷開發(fā)原則的應(yīng)用敏捷開發(fā)原則是對(duì)敏捷價(jià)值觀的解釋和實(shí)踐,它將敏捷的價(jià)值觀落實(shí)到具體可操作的原則之上,遵循這12條原則,是敏捷軟件開發(fā)項(xiàng)目得以成功的基石。我們?cè)谶M(jìn)行敏捷開發(fā)時(shí),可以嘗試將這12條原則作為團(tuán)隊(duì)工作的信條,隨時(shí)展現(xiàn)在團(tuán)隊(duì)面前,提醒自己,確保目標(biāo)的達(dá)成。4敏捷與傳統(tǒng)開發(fā)模式的對(duì)比及優(yōu)勢(shì)雖然傳統(tǒng)的開發(fā)模型瀑布、增量、迭代、螺旋等等,但在公司大多數(shù)的項(xiàng)目,在執(zhí)行中都會(huì)變成瀑布型的模式。因此本文主要對(duì)比一下

14、瀑布模型和敏捷模型的區(qū)別。瀑布模型是最典型的預(yù)見性的方法,嚴(yán)格遵循預(yù)先計(jì)劃的需求、分析、設(shè)計(jì)、編碼、測(cè)試的額步驟順序進(jìn)行。步驟成果作為衡量進(jìn)度的方法,例如需求分析、設(shè)計(jì)文檔、測(cè)試計(jì)劃和代碼審查等等,他更適用于需求比較明確的項(xiàng)目。瀑布式的主要問題是它的嚴(yán)格分級(jí)導(dǎo)致了自由度的降低,項(xiàng)目早期即作出承諾導(dǎo)致對(duì)后期需求的變化難以調(diào)整,代價(jià)高昂。瀑布式方法在需求不明確并且在項(xiàng)目進(jìn)行過(guò)程中可能變化的情況下基本上是不可行的。而我們公司所面臨的的情況往往很難符合瀑布模型的優(yōu)勢(shì)。我們所面臨的行業(yè)和自身的條件導(dǎo)致,我們項(xiàng)目的需求總是在不斷的變化,需求保持穩(wěn)定的周期很短,因此我們必須在變化來(lái)臨之前,讓客戶看到我們的產(chǎn)

15、品,及早的提出更符合預(yù)期的需求。敏捷方法則在幾周或者幾個(gè)月的時(shí)間內(nèi)完成相對(duì)小的功能,強(qiáng)調(diào)的是能將盡早盡量小的可用的功能交付使用,并在整個(gè)項(xiàng)目周期中持續(xù)改進(jìn)和增強(qiáng),也就是敏捷中所說(shuō)的最小可行產(chǎn)品(MVP)。由此,我們可以想象敏捷更符合軟件開發(fā)規(guī)律。用一個(gè)非常形象的比喻來(lái)講,軟件更像一個(gè)活著的植物,軟件開發(fā)是自底向上逐步有序的生長(zhǎng)過(guò)程,類似于植物自然生長(zhǎng)。而敏捷開發(fā)遵循軟件客觀規(guī)律,不斷的進(jìn)行迭代增量開發(fā),最終交付符合客戶價(jià)值的產(chǎn)品。你也可以想象人的成長(zhǎng)教育過(guò)程,也像是一個(gè)敏捷的過(guò)程。通過(guò)運(yùn)用敏捷的管理模型開發(fā)的軟件,在成本、質(zhì)量、效率、客戶滿意度上均有所改善。下圖數(shù)據(jù)來(lái)自互聯(lián)網(wǎng)。敏健對(duì)生產(chǎn)率、質(zhì)

16、量.煽意度,成本有朋顯改進(jìn)二】所中jure皆Ew*iJdrdijutiHighrHigherHiNoChiigASomiiNhatLffw&rMiltliL力的酎iMucliLowerS-jrnewihatLowrNoChangenSdiinewiiatHigher一地:U11HphwrMuchL0wcr盹*就加對(duì)目NaChange二SorrewhatHigheru*Wi川姓日37%的項(xiàng)目成本有降低FNuchLoerQSiCimiRKihAlLnw京上或常忘當(dāng)口口32008去08m打苴矣起的用上海垂其案ir二N。ChamelSomewhilHigher一MuchHigh畫5敏捷開發(fā)誤區(qū)隨著敏捷思想的引入,敏捷開發(fā)目前已經(jīng)成為業(yè)界主流軟件開發(fā)方法,與瀑布模式相比,其在應(yīng)對(duì)需求變化、提升產(chǎn)品質(zhì)量、加快需求響應(yīng)、縮短交付周期、提前暴露風(fēng)險(xiǎn)、及時(shí)激勵(lì)員工以及平滑人力資源的使用等方面具有明顯優(yōu)勢(shì)。但我們?cè)谕菩忻艚莸倪^(guò)程中,很多不了解敏捷的人會(huì)對(duì)“敏捷”進(jìn)行錯(cuò)誤的理解,就好比是盲人摸象,全憑自己的想象。敏捷開發(fā)意味著可以不需要文檔、設(shè)計(jì)和計(jì)劃敏捷只是一些優(yōu)秀實(shí)踐,或者是優(yōu)秀實(shí)踐的結(jié)合敏捷只適用于小項(xiàng)目開發(fā)敏捷只會(huì)對(duì)研發(fā)產(chǎn)生改變管理者不需要親自了解敏捷,只需要管理上支持就可以了引入敏捷只需要按照既定的步驟去做就可以了敏捷是CMM的替代品,是另一種流程敏捷只注重特性的快速交付,在

溫馨提示

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

評(píng)論

0/150

提交評(píng)論