敏捷開發(fā)實踐培訓(xùn)教程PPT幻燈片_第1頁
敏捷開發(fā)實踐培訓(xùn)教程PPT幻燈片_第2頁
敏捷開發(fā)實踐培訓(xùn)教程PPT幻燈片_第3頁
敏捷開發(fā)實踐培訓(xùn)教程PPT幻燈片_第4頁
敏捷開發(fā)實踐培訓(xùn)教程PPT幻燈片_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、產(chǎn)品敏捷開發(fā)實踐 培訓(xùn)教程,(2010年01月),目錄,引言 什么是敏捷 ? 什么是SCRUM ? 極限編程(XP)的12個核心實踐 術(shù)語表 敏捷能帶給我們什么? 敏捷開發(fā)實施標(biāo)準(zhǔn) 敏捷開發(fā)的案例分析 總結(jié),引言什么是敏捷開發(fā)(一),敏捷開發(fā)(agile development): 敏捷開發(fā)是一種以人為核心、迭代、循序漸進的開發(fā)方法。在敏捷開發(fā)中,軟件項目的構(gòu)建被切分成多個子項目,各個子項目的成果都經(jīng)過測試,具備集成和可運行的特征。 敏捷方法強調(diào)以人為本,專注于交付對客戶有價值的軟件。在高度協(xié)作的開環(huán)境中,使用迭代式的方式進行增量開發(fā),經(jīng)常使用反饋進行思考、反省和總結(jié),不停的進行自我調(diào)整和完善

2、,開發(fā)流程,敏捷宣言 我們通過身體力行和幫助他人來揭示更好的軟件開發(fā)方式。經(jīng)由這項工作,我們形成了如下價值觀: 個體與交互 重于 過程和工具 可用的軟件 重于 完備的文檔 客戶協(xié)作 重于 合同談判 響應(yīng)變化 重于 遵循計劃 在每對比對中,后者并非全無價值,但我們更看重前者,引言什么是敏捷開發(fā)(二),周期,短周期開發(fā),提供及早的、具體的、持續(xù)的反饋。,增量,增量開發(fā)。迅速地提出總體計劃,并在項目生命周期中不斷演化。,反應(yīng),靈活安排功能地實現(xiàn),以對變化的業(yè)務(wù)需求作出反應(yīng)。,自動,使用由程序員和測試人員編寫的自動化測試來監(jiān)控開發(fā)進度,支持系統(tǒng)演化,并盡早發(fā)現(xiàn)缺陷。,交流,通過口頭溝通、測試和源代碼來

3、交流系統(tǒng)的結(jié)構(gòu)和意圖。,設(shè)計,漸進式的設(shè)計過程貫穿整個系統(tǒng)生命周期。,協(xié)作,依賴于能力普通但能積極參與的程序員之間的緊密協(xié)作,實踐,各種實踐兼顧項目成員的短期直覺和項目的長期利益。,敏捷開發(fā)特點,引言什么是SCRUM(一),Scrum是一個迭代性、增量性的敏捷流程,適用于任何的產(chǎn)品開發(fā)以及工作管理,其中包含了風(fēng)險控制,解決最優(yōu)先需求,團隊高效協(xié)作等各種思想。 在每個迭代結(jié)束后,Scrum都會產(chǎn)生一套可以交付的功能性產(chǎn)品。,Scrum是一個“檢查并適應(yīng)”的框架:在 三個角色(產(chǎn)品負責(zé)人/Scrum Master/團隊)、 三種儀式(Sprint計劃/Sprint回顧/每日例會)和 三種制品(產(chǎn)品

4、Backlog/Sprint Backlog/燃盡圖) 的基礎(chǔ)上,你可以根據(jù)公司或者項目的情況,因地制宜引入任何有利于縮短開發(fā)周期、提高產(chǎn)品質(zhì)量的實踐,Scrum過程,Scrum的“3個三”,Scrum定義,引言什么是SCRUM(二),團隊目標(biāo)重于崗位職責(zé) 團隊工作優(yōu)于獨立作戰(zhàn) 高效溝通強于標(biāo)準(zhǔn)化的文檔 高能動性的、自組織的團隊勝于角色劃分清晰的流水線 務(wù)實的解決問題的方法好于經(jīng)典理論 快速實踐,快速反饋,持續(xù)優(yōu)化,什么樣的項目適合SCRUM,Scrum精神,SCRUM的項目通常會有一些共性: 項目的需求多變。 項目周期較長(通常大于3次迭代) 項目分期開發(fā),迭代增量。,適用癥: 重量級流程導(dǎo)

5、致的軟件開發(fā)環(huán)節(jié)復(fù)雜 面向任務(wù)、面向職責(zé)的開發(fā)模式導(dǎo)致的各司其職、流程環(huán)節(jié)銜接不暢,項目進度的掌控困難 以上兩條導(dǎo)致的項目/產(chǎn)品開發(fā)周期過長 原理: 目標(biāo)驅(qū)動,在統(tǒng)一的軟件交付目標(biāo)下組織團隊 依靠團隊的智慧做項目評估、計劃乃至設(shè)計、開發(fā)、測試 抓住最基本的項目開發(fā)屬性:周期 + 質(zhì)量,1. 完整團隊 XP項目的所有參與者(開發(fā)、客戶、測試等)一起工作在一個開放的場所中。 2. 計劃游戲 計劃是持續(xù)的、循序漸進的。 每2周一次,根據(jù)成本和商務(wù)價值來選擇要實現(xiàn)的特性。 3. 客戶測試 客戶可以根據(jù)腳本語言來定義出自動驗收測試來表明該特性可以工作。 4. 簡單設(shè)計 團隊保持設(shè)計恰好和當(dāng)前的系統(tǒng)功能相

6、匹配,盡可能簡單。 5. 結(jié)對編程 開發(fā)是由兩個程序員、并排坐在一起在同一臺機器上進行的。 6. 測試驅(qū)動開發(fā) 編寫單元測試避免了相當(dāng)數(shù)量的反饋循環(huán),尤其是功功能能驗證方面的反饋循環(huán),7. 重構(gòu) 隨時利用重構(gòu)方法改進已經(jīng)腐化的代碼,保持代碼盡可能的干凈、具有表達力。 8. 持續(xù)集成 團隊總是使系統(tǒng)完整地被集成。一個人Check in后,其它所有人責(zé)任代碼集成。 9. 集體代碼所有權(quán) 任何結(jié)對的程序員都可以在任何時候改進任何代碼。 10. 編碼標(biāo)準(zhǔn) 系統(tǒng)中所有的代碼看起來就好像是被單獨一人編寫的。 11. 隱喻 是讓項目參與人員都必須對一些抽象的概念理解一致,也就是我們常說的行業(yè)術(shù)語,開始要先明

7、確雙方使用的隱喻,避免歧異。 12. 可持續(xù)的速度 團隊只有持久才有獲勝的希望。他們以能夠長期維持的速度努力工作,他們保存精力,他們把項目看作是馬拉松長跑,而不是全速短跑。,引言極限編程(XP)的12個核心實踐,極限編程(XP)是敏捷方法中最著名的一個,它是由一系列簡單卻互相依賴的實踐組成,能幫軟件團隊養(yǎng)成良好的習(xí)慣。,目錄,引言 術(shù)語表 敏捷能帶給我們什么? 敏捷在公司產(chǎn)品開發(fā)中的定位 敏捷能解決的具體問題 敏捷的應(yīng)用范圍 敏捷開發(fā)實施標(biāo)準(zhǔn) 敏捷開發(fā)的案例分析 總結(jié),術(shù)語表,目錄,引言 術(shù)語表 敏捷能帶給我們什么 敏捷在公司產(chǎn)品開發(fā)中的定位 敏捷解決的具體問題 敏捷的應(yīng)用范圍 敏捷開發(fā)實施標(biāo)

8、準(zhǔn) 敏捷開發(fā)的案例分析 總結(jié),敏捷能帶給我們什么敏捷在公司產(chǎn)品開發(fā)中的定位,1,3,2,解決產(chǎn)品開發(fā)的問題: 由于公司有些產(chǎn)品的需求總是在不斷的變化,很多時侯產(chǎn)品全部開發(fā)完了才發(fā)現(xiàn)這不是客戶想要的東西,這樣就大大浪費了開發(fā)資源,并導(dǎo)致產(chǎn)品開發(fā)周期無限延長,我們需要找到一種應(yīng)對需求不斷變化的產(chǎn)品開發(fā)流程,敏捷開發(fā)能解決這一問題。,SCRUM框架+XP實踐:管理的框架上是采用的SCRUM,指導(dǎo)如何編碼實現(xiàn)上就采用了一些XP的實踐。同時在實踐的過程中也引入了精益、消除浪費的思想。 應(yīng)用范圍:主要應(yīng)用在一些需求經(jīng)常發(fā)生變更的高復(fù)雜度/高風(fēng)險的產(chǎn)品開發(fā),提升最終的產(chǎn)品價值: 敏捷能夠靈活安排功能實現(xiàn),以

9、對變化的業(yè)務(wù)需求作出反應(yīng),這樣就縮短了產(chǎn)品版本的發(fā)布周期,及時展現(xiàn)給客戶,從而提升了最終的產(chǎn)品價值,敏捷能帶給我們什么敏捷開發(fā)解決的具體問題,提倡短周期發(fā)布,這樣任何延遲的范圍都是有限的。 一個發(fā)布周期內(nèi),計劃許多小任務(wù)以保證團隊可以在該周期內(nèi)解決問題。 提倡優(yōu)先實現(xiàn)高優(yōu)先級的功能。,最小發(fā)布必須是滿足最大商業(yè)意義的,選擇團隊中面向業(yè)務(wù)的成員來承擔(dān)。,自動化測試,每次代碼改動后運行,確保質(zhì)量底線。 保證系統(tǒng)處于可部署狀態(tài),不允許出現(xiàn)問題的積累。,減少進度延遲,避免系統(tǒng)惡化,由于縮短了發(fā)布周期,因此極大減少變更帶來的影響。 擁抱變化,利用重構(gòu)解決變更帶來的技術(shù)問題。,減小項目取消的代價,應(yīng)對業(yè)務(wù)

10、需求的頻繁變更,1,2,3,4,敏捷能帶給我們什么敏捷開發(fā)的適用范圍,瀑布 模型,特點 項目需求比較明確,后期改動較少 大型項目,技術(shù)參與人數(shù)很多 項目工期比較緊 開發(fā)人員水平有限,敏捷 模型,特點 項目需求經(jīng)常發(fā)生變更 項目團隊的人數(shù)不能太多 項目工期較為寬裕 高復(fù)雜度/高風(fēng)險的項目實施 開發(fā)人員可以參與決策,適用項目 公司產(chǎn)品:需求不明確,開發(fā)周期較長 內(nèi)部IT項目:功能持續(xù)、不斷完善 其它二次開發(fā):功能少、開發(fā)周期短,適用項目 外部項目:需求明確、開發(fā)周期緊 重要業(yè)務(wù):功能明確、重點保障,CMM與敏捷比較,目錄,引言 術(shù)語表 敏捷能帶給我們什么? 敏捷開發(fā)實施 團隊建設(shè) 工具選擇 產(chǎn)品開

11、發(fā)實施過程 敏捷開發(fā)的案例分析 總結(jié),敏捷開發(fā)實施,軟件產(chǎn)品開發(fā)的三要素: 人(團隊) 產(chǎn)品開發(fā)團隊的建設(shè) 工具 管理工具的選擇 過程管理 對整個產(chǎn)品開發(fā)過程的有效管理,敏捷開發(fā)實施團隊建設(shè)(一),開發(fā)項目經(jīng)理,技術(shù),產(chǎn)品、內(nèi)容,交互設(shè)計師,UI設(shè)計師,.,拓展、營銷,開發(fā) 工程師,測試 工程師,拓展經(jīng)理,職責(zé) 產(chǎn)品需求的提出 產(chǎn)品的推廣 對客戶負責(zé),產(chǎn)品經(jīng)理,營銷經(jīng)理,職責(zé) 產(chǎn)品的功能策劃 對最終產(chǎn)品功能負責(zé),職責(zé) 產(chǎn)品功能的技術(shù)實現(xiàn) 對技術(shù)成果負責(zé),產(chǎn)品經(jīng)理: 確定產(chǎn)品的功能,定義開發(fā)目標(biāo),需要實現(xiàn)的feature和優(yōu)先級,開發(fā)項目經(jīng)理:需求分析,項目任務(wù)分解,開發(fā)周期制定,主持會議,進度

12、檢查,問題協(xié)調(diào)解決,項目成員:開發(fā)人員:設(shè)計,編碼,編寫測試用例,單元測試 測試人員:編寫產(chǎn)品周期版本測試方案、測試用例,集成測試,敏捷開發(fā)核心團隊角色:,.,敏捷開發(fā)實施團隊建設(shè)(二),理想敏捷團隊的要求: 項目人數(shù)較少。這有助于項目成員之間的彼此了解,也有助于開發(fā)項目經(jīng)理了解每個人的狀況。 項目成員樂于溝通。由于需求的不斷變化,敏捷團隊往往比其他的團隊需要更多的溝通;而團隊成員之間的交流和了解也有助于提高項目的開發(fā)效率(比如碰到新技術(shù)時,直面的請教要比摸索需要的時間短的多)。 項目成員有較強的凝聚力,能夠在工作時間全身投入,在休息時間好好放松。就像字面理解sprint一樣,要沖刺的時候,自

13、然要精神集中;而要不斷的沖刺,又要學(xué)會放松自己。,一支出色敏捷團隊靠的不是技術(shù),不是流程,而是有良好素質(zhì)的團隊成員。良好素質(zhì)包括進取心、責(zé)任心、良好的習(xí)慣、熱情,敏捷開發(fā)實施工具選擇,產(chǎn)品策略管理平臺,VSS,Mercury,Xplanner,JUNIT,產(chǎn)品策略平臺是一個公司內(nèi)部針對所開展的項目進行的分目標(biāo)用戶的需求及產(chǎn)品設(shè)計成果的討論平臺,全稱為 Visual Source Safe 。它主要任務(wù)就是負責(zé)項目文件(源碼、文檔)的管理,質(zhì)量管理工具集,用到其中的缺陷管理功能,JUNIT是基于面向?qū)ο髽?gòu)建的java單元測試框架,是一個基于Web的敏捷開發(fā)團隊計劃和跟蹤工具,敏捷開發(fā)實施產(chǎn)品開發(fā)

14、實施過程管理(一),技術(shù),產(chǎn)品、內(nèi)容,拓展、營銷,產(chǎn)品討論審核,產(chǎn)品策略管理平臺,客戶,產(chǎn)品決策團隊,產(chǎn)品經(jīng)理 (產(chǎn)品策劃團隊),拓展經(jīng)理(營銷經(jīng)理),敏捷開發(fā)管理平臺,開發(fā)項目經(jīng)理 (技術(shù)開發(fā)團隊),SCRUM流程,為客戶作產(chǎn)品演示,增量交付的產(chǎn)品,產(chǎn)品需求提出,產(chǎn)品策劃,需求調(diào)查,演示反饋,產(chǎn)品開發(fā)流程圖,敏捷開發(fā)實施產(chǎn)品開發(fā)實施過程管理(二),開發(fā)需求策劃階段,1,2,技術(shù)開發(fā)階段(一),敏捷開發(fā)實施產(chǎn)品開發(fā)實施過程管理(二),2,技術(shù)開發(fā)階段 (二),接上頁,敏捷開發(fā)實施產(chǎn)品開發(fā)實施過程管理(二),接上頁,3,給客戶演示產(chǎn)品階段,營銷經(jīng)理把每次與客戶交流的反饋建議重新提高給產(chǎn)品經(jīng)理 產(chǎn)

15、品經(jīng)理負責(zé)把這些建議進行功能化放入產(chǎn)品的功能列表以供下一次迭代選擇 進入下一次技術(shù)開發(fā)階段,項目切分原則: 優(yōu)先考慮底層的、核心的模塊 優(yōu)先考慮通用工具和框架的實現(xiàn) 先難后易的原則 任務(wù)開發(fā)時長最好在完整的開發(fā)周期內(nèi) 相關(guān)聯(lián)的任務(wù)能夠安排在相鄰的開發(fā)周期,4,后續(xù)流程說明,目錄,引言 術(shù)語表 敏捷能帶給我們什么? 敏捷開發(fā)實施 敏捷開發(fā)的案例分析 某部門敏捷實戰(zhàn)案例 實戰(zhàn)案例分析與總結(jié) 典型的失敗案例 典型的成功案例 總結(jié),敏捷開發(fā)的案例分析某部門敏捷實戰(zhàn)案例,敏捷開發(fā)的案例分析實戰(zhàn)案例分析與總結(jié)(一),歸納用到的實踐(一),敏捷開發(fā)的案例分析實戰(zhàn)案例分析與總結(jié)(二),歸納用到的實踐(二),接

16、上頁,敏捷開發(fā)的案例分析案例分析與總結(jié)(三),未用到的實踐,接上頁,還沒找到很好的方式促進開發(fā)和QA融合為統(tǒng)一的Scrum團隊 有些有價值的實踐沒有實施到很有意義的程度,執(zhí)行不堅決深入 持續(xù)的方法改進工作有待加強,做的還不到位的方面,敏捷開發(fā)的案例分析失敗案例,案例描述,接上頁,失敗分析,一個離岸開發(fā)的某創(chuàng)業(yè)型公司。雖然團隊比較特殊(離岸開發(fā)團隊),但這個失敗案例卻非常典型和普遍。 “某一天,國外的PM突然發(fā)來幾個鏈接,一看講的是一個聞所未聞的詞,就是Scrum了。好像就給了一兩天的時間去看Scrum的介紹文檔,然后就開Stand-up Meeting(站立會議)?!?這個案例的團隊是真真的在

17、推行SCRUM。從表明看,大家也是在按照SCRUM框架的方式工作:有相應(yīng)劃分的角色,有具體的分解任務(wù),有會議,也有迭代(Sprint)。那又怎么會失敗呢?,顯然,他們是在照搬照套了SCRUM的框架。他們是兩個離岸的開發(fā)團隊,因為地點、時區(qū)和語言的差異,很容易就會導(dǎo)致溝通和交流不暢,這時候再生硬的引入SCRUM,無異是火上澆油,敏捷開發(fā)的案例分析成功案例,案例描述,接上頁,成功分析,“我們不是采用純粹的Scrum,而是將Agile中的很多理念,包括XP的部分做法,然后結(jié)合現(xiàn)有的開發(fā)環(huán)境與要求,用Scrum的回顧不斷地做改進, 從而趟出自己的一條路。如果這個Sprint我們回顧時覺得自己代碼Rev

18、iew(審查)做的不好,下個Sprint就會引入新的代碼Review機制。 這個Sprint覺得重復(fù)性的bug較多,下個Sprint就會引入缺陷預(yù)防機制。我們是自底向上,先做小范圍試點,再全面推廣,中間對過程進行不斷改進”。他們的具體做法如下: “其實我們一開始并沒有把Scrum這個說法拿出來。就是首先和業(yè)務(wù)一起商量什么時候上線,商量出來的結(jié)果是每個月定期上線。于是就有了一月一個項目的進 度(我們是線上服務(wù),沒有版本的概念,有一堆需求過來,對技術(shù)來說就是在這一個月以內(nèi)完成這些需求,把這一個月以內(nèi)的工作叫一個項目)。然后為了管理,我 們開始開晨會。然后為了改進,我們開始開項目總結(jié)會,把Produ

19、ct review和Team retrospective放在一起,既有產(chǎn)品經(jīng)理介紹現(xiàn)狀,也有大家討論成績,不足和挑戰(zhàn)。后來總結(jié)會上覺得質(zhì)量不好,我們加入了單元測試和代碼 Review機制。至于計劃會議,一開始我們就采用的Scrum的方法。項目小,MS Project太難調(diào)。我們就更換了Scrum的Excel計劃表,后來又換了Xplanner。,無獨有偶,這些成功案例的團隊,就是通過這樣的方式進行一步一步推進,把SCRUM成功的引入到了各自的項目中,目錄,引言 術(shù)語表 敏捷能帶給我們什么? 敏捷開發(fā)實施 敏捷開發(fā)的案例分析 某部門敏捷實戰(zhàn)案例 實戰(zhàn)案例分析與總結(jié) 典型的失敗案例 典型的成功案例 總結(jié),總結(jié),敏捷就是一個團隊持續(xù)不斷的自我改進過程,直到那些優(yōu)秀的品質(zhì)成為大家的一種職業(yè)習(xí)慣一個自

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論