版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
敏捷軟件開發(fā)介紹Davin2009年06月N.001敏捷軟件開發(fā)介紹1目錄
敏捷理念敏捷優(yōu)秀實踐敏捷應用建議2022/11/30目錄 敏捷理念2022/11/302Page3軟件作坊軟件過程控制重型過程2001~今敏捷正在流行軟件規(guī)模小,以作坊式開發(fā)為主;硬件飛速發(fā)展,軟件規(guī)模和復雜度激增,引發(fā)軟件危機;引入成熟生產(chǎn)制造管理方法,以“過程為中心”分階段來控制軟件開發(fā)(瀑布模型),一定程度上緩解了軟件危機;軟件失敗的經(jīng)驗促使過程被不斷增加約束和限制,軟件開發(fā)過程日益“重型化”,開發(fā)效率降低、響應速度變慢;隨著信息時代到來,需求變化更快,交付周期成為企業(yè)核心競爭力,輕量級的,更能適應變化的敏捷軟件開發(fā)方法被普遍認可并迅速流行。軟件危機20世紀60年代80年代90年代軟件開發(fā)順應時代變化,從重型過程轉(zhuǎn)向輕量型敏捷70年代敏捷誕生的歷史背景Page3軟件作坊軟件過程控制重型過程2001~今敏3Page4Hw敏捷的發(fā)展:2006年之前:IPD(集成產(chǎn)品開發(fā))2006~2008年:從咨詢公司ThoughtWorks引入敏捷軟件開發(fā),開展軟件項目試點2008后:產(chǎn)品試點,全部軟件項目使用,硬件項目使用優(yōu)秀實踐騰訊敏捷的發(fā)展:2006年之前:IPD(集成產(chǎn)品開發(fā))2006年之后:從咨詢公司ThoughtWorks引入敏捷軟件開發(fā),正式命名為TAPD(TencentAgileProductDevelopment)HW敏捷和騰訊敏捷的發(fā)展Page4Hw敏捷的發(fā)展:HW敏捷和騰訊敏捷的發(fā)展4Page5敏捷宣言揭示更好的軟件開發(fā)方法敏捷宣言(2001年)是敏捷起源的基礎,由上述4個簡單的價值觀組成,敏捷宣言的簽署推動了敏捷運動敏捷宣言本質(zhì)是揭示一種更好的軟件開發(fā)方式,啟迪人們重新思考軟件開發(fā)中的價值和如何更好的工作敏捷宣言Page5敏捷宣言揭示更好的軟件開發(fā)方法敏捷宣言(2005Page6軟件更像一個活著的植物,軟件開發(fā)是自底向上逐步有序的生長過程,類似于植物自然生長敏捷開發(fā)遵循軟件客觀規(guī)律,不斷的進行迭代增量開發(fā),最終交付符合客戶價值的產(chǎn)品傳統(tǒng)開發(fā)敏捷開發(fā)敏捷更符合軟件開發(fā)規(guī)律Page6軟件更像一個活著的植物,軟件開發(fā)是自底向上逐步有6Page7對敏捷的常見誤解誤解一:敏捷開發(fā)意味著可以不需要文檔、設計和計劃誤解二:敏捷只是一些優(yōu)秀實踐,或者是優(yōu)秀實踐的結(jié)合誤解三:敏捷只適用于小項目開發(fā)誤解四:敏捷只會對研發(fā)產(chǎn)生改變誤解五:管理者不需要親自了解敏捷,只需要管理上支持就可以了誤解六:引入敏捷只需要按照既定的步驟去做就可以了誤解七:敏捷是CMM的替代品,是另一種流程誤解八:敏捷只注重特性的快速交付,在敏捷下架構(gòu)不重要了Page7對敏捷的常見誤解誤解一:敏捷開發(fā)意味著可以不需7Page8統(tǒng)一認識:敏捷=理念+優(yōu)秀實踐+具體應用理念(敏捷核心思想)敏捷包括3個層次優(yōu)秀實踐(敏捷的經(jīng)驗積累)具體應用(能夠結(jié)合自身靈活應用才是真正敏捷)理念優(yōu)秀實踐具體應用Page8統(tǒng)一認識:敏捷=理念+優(yōu)秀實踐+具體應用8Page9敏捷理念不斷調(diào)整以適應(Adapting)變化激發(fā)團隊(Team)潛能,加強協(xié)作聚焦客戶價值(Value),消除浪費Page9敏捷理念不斷調(diào)整以適應(Adapting)變化激9Page10優(yōu)秀實踐:業(yè)界敏捷優(yōu)秀實踐概覽結(jié)對編程測試驅(qū)動開發(fā)客戶參與驗收計劃游戲代碼集體所有每日站立會議產(chǎn)品backlog(帶優(yōu)先級的需求清單)燃燒圖迭代計劃會議回顧會議ScrumMasterProductOwnerAnatomy(系統(tǒng)解剖)OneTrackSystemakut(缺陷管理和決策)重構(gòu)完整團隊穩(wěn)定開發(fā)節(jié)奏Lagomising(需求決策)隱喻電信業(yè)偏重大規(guī)模產(chǎn)品實踐、Scrum偏重項目管理,XP偏重編程實踐電信業(yè)ScrumXP持續(xù)集成迭代交付Page10優(yōu)秀實踐:業(yè)界敏捷優(yōu)秀實踐概覽結(jié)對編程測試驅(qū)10敏捷軟件開發(fā)典型場景Page11PO和開發(fā)團隊對產(chǎn)品業(yè)務目標形成共識PO建立和維護產(chǎn)品需求列表(需求會不斷新增和改變),并進行優(yōu)先級排序PO每輪迭代前,Review需求列表,并篩選高優(yōu)先級需求進入本輪迭代開發(fā)開發(fā)團隊細化本輪迭代需求,并按照需求的優(yōu)先級,依次在本輪迭代完成開發(fā)團隊每日站立會議、特性開發(fā)、持續(xù)集成,使開發(fā)進度真正透明PO對每輪迭代(2-4周)交付的可工作軟件進行現(xiàn)場驗收和反饋回到第3步,開始下一輪迭代迭代每日工作站立會議特性開發(fā)特性測試持續(xù)集成交付可以工作的軟件迭代計劃回顧確定一個迭代的工作內(nèi)容產(chǎn)品和利益相關(guān)人①②③、⑦④⑤⑥敏捷軟件開發(fā)典型場景Page11PO和開發(fā)團隊對產(chǎn)品業(yè)務目11Page12什么是完整團隊敏捷開發(fā)中,以Story為單位的持續(xù)交付要求系統(tǒng)組、開發(fā)和測試等跨功能團隊進行密切協(xié)同,相互獨立的功能團隊難以應對。完整團隊是跨功能領域(需求分析師、設計師、開發(fā)人員、測試人員、資料人員等)的人員組成一個團隊,坐在一起工作,團隊成員遵循同一份計劃,服從于同一個項目經(jīng)理。完整團隊的好處有助于團隊成員形成共同目標和全局意識,促進各功能領域的拉通和融合;通過面對面溝通提升溝通效率。實現(xiàn)團隊成員的高度協(xié)同,支撐高密度地、持續(xù)地、短周期的交付。完整團隊的關(guān)鍵要點成員來自多功能領域:團隊擁有完成目標所需的各職能成員;坐在一起辦公:團隊成員無障礙地溝通;團隊保持相對穩(wěn)定:臨時組建的團隊生產(chǎn)效率較低,團隊穩(wěn)定非常關(guān)鍵。完整團隊聚焦客戶需求交付,提高協(xié)作效率敏捷團隊實踐:完整團隊Page12什么是完整團隊完整團隊的好處完整團隊的關(guān)鍵要點12Page13產(chǎn)品Backlog關(guān)鍵要點清楚表述列表中每個需求任務對用戶帶來的價值,做為優(yōu)先級排序的重要參考;動態(tài)的需求管理而非“凍結(jié)”方式,PO持續(xù)地管理和及時刷新需求清單,在每輪迭代前,都要重新篩選出高優(yōu)先級需求進入本輪迭代;迭代的需求分析過程,而非一次性分析清楚所有需求(只對近期迭代要做的需求進行詳細分析,其它需求停留在粗粒度)。敏捷工作件:產(chǎn)品Backlog什么是產(chǎn)品Backlog經(jīng)過優(yōu)先級排序的動態(tài)刷新的產(chǎn)品需求清單,用來制定發(fā)布計劃和迭代計劃。產(chǎn)品Backlog的好處通過需求的動態(tài)管理應對變化,避免浪費;易于優(yōu)先交付對用戶價值高的需求。產(chǎn)品Backlog是需求動態(tài)管理的載體Page13產(chǎn)品Backlog關(guān)鍵要點敏捷工作件:產(chǎn)品Ba13Page14什么是迭代Backlog迭代Backlog是團隊在一輪迭代中的“任務”(Task)清單,是團隊的詳細迭代開發(fā)計劃;當團隊接收從產(chǎn)品Backlog挑選出要在本輪迭代實現(xiàn)的需求時,召開團隊迭代計劃會議,將需求轉(zhuǎn)化為具體的“任務”;每項任務信息包括當前剩余工作量和責任人。敏捷工作件:迭代Backlog迭代Backlog的好處將需求分解成更細小的任務,利于對迭代內(nèi)進度進行精確控制;剩余工作量可用來實時跟蹤團隊當前進展。迭代Backlog關(guān)鍵要點“任務”由團隊成員自己分解和定義,而不是上級指派,支撐需求完成的所有工作都可以列為任務;任務要落實到具體的責任人;任務粒度要小,工作量大于兩天的任務要進一步分解;用小時做為任務剩余工作量的估計單位,并每日重估計和刷新。迭代Backlog提供精細的迭代開發(fā)計劃任務責任人狀態(tài)剩余工時日期Page14什么是迭代Backlog敏捷工作件:迭代Bac14Page15敏捷工作件:完成標準(DefinitionofDone)什么是完成標準基于“隨時可向用戶發(fā)布”的目標制定衡量團隊工作是否已完成的標準,由團隊和PO形成共識;完成標準的好處共同協(xié)商的完成標準是團隊的自我承諾,團隊會更認真;用于準確評估團隊工作進展;清晰和明確的完成標準保證了每次迭代是高質(zhì)量的。完成標準的關(guān)鍵要點團隊自協(xié)商:團隊根據(jù)項目實際情況來定義完成標準,并嚴格遵守;有層次:一般分為三個層次:Story級別,迭代級和發(fā)布級,每個級別都有各自的完成標準。Story完成標準樣例迭代完成標準樣例發(fā)布完成標準樣例代碼合入主干代碼符合規(guī)范代碼100%檢視通過驗收測試通過迭代驗收系統(tǒng)測試用例100%通過通過性能測試所有Story完成通過回歸測試所有缺陷解決更新配套資料完成標準的樣例代碼100%通過單元測試持續(xù)集成無錯誤完成標準確保團隊每一步前進都奠定在堅實的質(zhì)量基礎之上Page15敏捷工作件:完成標準(Definitiono15Page16敏捷管理實踐:迭代計劃會議什么是迭代計劃會議每輪迭代啟動前,團隊共同討論本輪迭代詳細開發(fā)計劃的過程,輸入是產(chǎn)品Backlog,輸出是團隊迭代Backlog;多團隊迭代計劃會議要分層召開版本迭代計劃會議:將產(chǎn)品Backlog(需求)分配給團隊;團隊迭代計劃會議:將選取的產(chǎn)品Backlog需求轉(zhuǎn)換成迭代Backlog(任務),分配給團隊成員;迭代計劃會議內(nèi)容:澄清需求、對“完成標準”達成一致工作量估計、根據(jù)團隊能力確定本輪迭代交付內(nèi)容;細化、分配迭代任務和初始工作計劃。迭代計劃會議的好處通過充分討論,使團隊成員對任務和完成標準理解一致;團隊共同參與,促進團隊成員更認真對待自己的承偌。迭代計劃會議的關(guān)鍵要點充分參與:ScrumMaster確保PO和Team充分參與討論,達成理解一致;相互承諾:Team承諾完成迭代Backlog中的需求并達到”完成標準“,PO承諾在短迭代周期不增加需求(2-4周);確定內(nèi)部任務:Team和PO協(xié)商把一些內(nèi)部任務放入迭代中(例如重構(gòu)、持續(xù)集成環(huán)境搭建等),由PO考慮并與其他外部需求一起排序。迭代計劃會議由團隊共同確定迭代交付內(nèi)容和完成標準Page16敏捷管理實踐:迭代計劃會議什么是迭代計劃會議迭16Page17敏捷管理實踐:每日站立會議什么是每日站立會議每日工作前,團隊成員的例行溝通機制,由ScrumMaster組織,Team成員全體站立參加聚焦在下面的三個主題:我昨天為本項目做了什么?我計劃今天為本項目做什么?我需要什么幫助以更高效的工作?每日站立會議的關(guān)鍵要點準時開始:按計劃會議制定的時間地點開會,形成團隊成員的自然習慣;高效會議:會議限時15分鐘,每個人都保持站立,依次發(fā)言,不討論與會議三個主題無關(guān)的事情(如技術(shù)解決方案等);問題跟蹤:ScrumMaster應該記錄下所有的問題并跟蹤解決;每日站立會議的好處增加團隊凝聚力,產(chǎn)生積極的工作氛圍及時暴露風險和問題;促進團隊內(nèi)成員的溝通和協(xié)調(diào)。每日站立會議促進團隊溝通協(xié)調(diào),及時暴露問題Page17敏捷管理實踐:每日站立會議什么是每日站立會議每17Page18敏捷管理實踐:可視化管理可視化管理的好處簡單,一目了然,降低管理成本;實時狀態(tài)顯示,及時暴露問題;信息同源使團隊理解一致,提升團隊凝聚力;激勵先進,鞭策后進,增強團隊進取心。什么是可視化管理將項目狀態(tài)(進度、質(zhì)量等)通過物理實體(如白板,大屏幕)實時展示,讓團隊所有成員直觀地獲取當前項目進展信息??梢暬芾淼年P(guān)鍵要點物理實體:可視化一定要做到物理上的實體化,大家在公開場所都容易看到,觸摸到,(存在電腦中的文件不是可視化的);內(nèi)容精簡,易懂:信息展示一目了然,切實對團隊有幫助,切忌貪多求全,難以分辨;實時刷新:延遲的信息拖延問題暴露,降低運作效率??梢暬芾砑皶r暴露問題,激勵團隊Story墻(展示Story進度)缺陷走勢圖(展示缺陷解決進展)Anatomy視圖(展示系統(tǒng)集成進展)Page18敏捷管理實踐:可視化管理可視化管理的好處什么是18Page19敏捷管理實踐:迭代驗收什么是迭代驗收每次迭代開發(fā)結(jié)束時舉行,通過演示可工作的軟件檢查需求是否滿足客戶要求;由Scrum
Master組織,PO和用戶代表(外部或內(nèi)部利益相關(guān)人)負責驗收、Team負責演示可工作軟件。迭代驗收的好處通過演示可工作的軟件來確認項目的進度,具有真實性;能盡早的獲得用戶對產(chǎn)品的反饋,使產(chǎn)品更加貼近客戶需求。迭代驗收的關(guān)鍵要點展示“真實”的產(chǎn)品:Team應在真實環(huán)境中展示可運行的軟件,判斷是否達到“完成”標準;收集反饋:PO根據(jù)驗收情況及客戶反饋意見,及時調(diào)整產(chǎn)品Backlog。迭代驗收盡早演示可工作的軟件,收集反饋意見Page19敏捷管理實踐:迭代驗收什么是迭代驗收迭代驗收的19Page20敏捷管理實踐:迭代回顧會議迭代回顧會議的好處激勵團隊成員;幫助團隊挖掘優(yōu)秀經(jīng)驗并繼承;避免團隊犯重復的錯誤;營造團隊自主改進的氛圍。什么是迭代回顧會議在每輪迭代結(jié)束后舉行的會議,目的是分享好的經(jīng)驗和發(fā)現(xiàn)改進點,促進團隊不斷進步;圍繞如下三個問題:本次迭代有哪些做得好本次迭代我們在哪些方面還能做得更好我們在下次迭代準備在哪些方面改進?迭代回顧會議的關(guān)鍵要點會議氣氛:Team全員參加,氣氛寬松自由,暢所欲言,頭腦風暴發(fā)現(xiàn)問題,共同分析根因;關(guān)注重點:Team共同討論優(yōu)先級,將精力放在最需要的地方(關(guān)注幾個改進就夠了);會議結(jié)論要跟蹤閉環(huán):可以放入迭代backlog中。迭代回顧會議是促進團隊持續(xù)改進的最有效手段好的能做得更好的將來改進的Page20敏捷管理實踐:迭代回顧會議迭代回顧會議的好處什20Page21敏捷工程實踐:用戶故事(userstory)什么是用戶故事用戶故事是站在用戶角度描述需求的一種方式;每個用戶故事須有對應的驗收測試用例;用戶故事是分層分級的,在使用過程中逐步分解細化;典型的描述句式為:作為一個XXX客戶角色,我需要XXX功能,帶來XXX好處。用戶故事的好處用戶故事站在用戶視角便于和客戶交流,準確描述客戶需求;用戶故事可獨立交付單元、規(guī)模小,適于迭代開發(fā),以獲得用戶快速反饋;用戶故事強調(diào)編寫驗收測試用例作為驗收標準,能促使需求分析人員準確把握需求,牽引開發(fā)人員避免過度設計。用戶故事的關(guān)鍵要點I–Independent,可獨立交付給客戶N–Negotiable,便于與客戶交流V-Valuable,對客戶有價值E-Estimable,能估計出工作量S-Small,分解到最底層的用戶故事粒度盡量小,至少在一個迭代中能完成T-Testable,可測試初始需求:1.作為網(wǎng)絡規(guī)劃人員,我想要配置一個媒體網(wǎng)關(guān),因為想要增加網(wǎng)絡容量和服務初次分解:1.1作為網(wǎng)絡規(guī)劃人員,我想把媒體網(wǎng)關(guān)參數(shù)上傳到管理系統(tǒng)
1.2作為網(wǎng)絡規(guī)劃人員,我想從管理系統(tǒng)下載媒體網(wǎng)關(guān)參數(shù)再次分解:1.2.1作為網(wǎng)絡規(guī)劃人員,我想用文件方式從管理系統(tǒng)下載媒體網(wǎng)關(guān)參數(shù)
用例:用戶在管理系統(tǒng)上選擇以文件方式下載媒體網(wǎng)關(guān)參數(shù),執(zhí)行成功后,檢查文件是否正確下載到本地且內(nèi)容正確
1.2.2作為網(wǎng)絡規(guī)劃人員,我想用MML結(jié)構(gòu)方式從管理系統(tǒng)下載媒體網(wǎng)關(guān)的參數(shù)
用例:…………故事樣例用戶故事便于團隊站在用戶角度分解細化需求并制定驗收標準Page21敏捷工程實踐:用戶故事(userstory)21敏捷工程實踐:結(jié)對編程Page22什么是結(jié)對編程兩位程序員在一臺電腦前工作,一個負責敲入代碼,而另外一個實時檢視每一行敲入的代碼;操作鍵盤和鼠標的程序員被稱為“駕駛員”,負責實時評審和協(xié)助的程序員被稱為“領航員”;領航員檢視的同時還必須負責考慮下一步的工作方向,比如可能出現(xiàn)的問題以及改進等。結(jié)對編程的好處有助于提升代碼設計質(zhì)量;研究表明結(jié)對生產(chǎn)率比兩個單人總和低15%,但缺陷數(shù)少15%,考慮修改缺陷工作量和時間都比初始編程大幾倍,所以結(jié)對編程總體效率更高(source:TheEconomist);結(jié)對編程能夠大幅促進團隊能力提升和知識傳播。結(jié)對編程的關(guān)鍵要點程序員應經(jīng)常性地在“駕駛員”和“領航員”間切換,保持成員間平等協(xié)商和相互理解,避免出現(xiàn)一個角色支配另一個角色的現(xiàn)象;開始一個新Story開發(fā)的時候即可變換搭檔,以增進知識傳播;培養(yǎng)團隊成員積極、主動、開放、協(xié)作的心態(tài)能夠增進結(jié)對編程效果;實施初期需要精心輔導,幫助團隊成員克服個性沖突和習慣差異。結(jié)對編程提高代碼質(zhì)量和工作效率敏捷工程實踐:結(jié)對編程Page22什么是結(jié)對編程結(jié)對編程的22Page23敏捷工程實踐:持續(xù)集成(CI)什么是持續(xù)集成持續(xù)集成(CI)是一項軟件開發(fā)實踐,其中團隊的成員經(jīng)常集成他們的工作,通常每人每天至少集成一次,每次集成通過自動化構(gòu)建完成。持續(xù)集成的好處大幅縮短反饋周期,實時反映產(chǎn)品真實質(zhì)量狀態(tài);缺陷在引入的當天就被發(fā)現(xiàn)并解決,降低缺陷修改成本;將集成工作分散在平時,通過每天生成可部署的軟件;,避免產(chǎn)品最終集成時爆發(fā)大量問題。
持續(xù)集成的關(guān)鍵要點持續(xù)集成強調(diào)“快速”和“反饋”,要求完成一次系統(tǒng)集成的時間盡量短,并提供完備且有效的反饋信息;自動化測試用例的完備性和有效性是持續(xù)集成質(zhì)量保障;修復失敗的構(gòu)建是團隊最高優(yōu)先級的任務;開發(fā)人員須先在本地構(gòu)建成功,才可提交代碼到配置庫;持續(xù)集成的狀態(tài)必須實時可視化顯示給所有人;大系統(tǒng)持續(xù)集成需分層分級,建立各層次統(tǒng)一的測試策略。持續(xù)集成提供產(chǎn)品質(zhì)量的快速反饋,保證隨時擁有可工作的軟件參見附件:持續(xù)集成解讀.pptPage23敏捷工程實踐:持續(xù)集成(CI)什么是持續(xù)集成持23Page24敏捷工程實踐:Anatomy系統(tǒng)解剖Page24什么是AnatomyAnatomy(解剖)來源于電信行業(yè),從用戶視角全面展示復雜產(chǎn)品系統(tǒng)的功能依賴關(guān)系,讓整個系統(tǒng)的功能按自底向上逐步有序地開發(fā)和集成。Anatomy的關(guān)鍵要點Anatomy不是系統(tǒng)架構(gòu)視圖,圖中的Block是表示系統(tǒng)提供給用戶使用的一個功能(capability),是站在純用戶視角,不包含設計信息;Anatomy中的依賴關(guān)系是用戶使用系統(tǒng)功能的依賴關(guān)系,而不是設計或架構(gòu)上的依賴關(guān)系;Anatomy是系統(tǒng)全視圖,由最了解系統(tǒng)的工程師繪制出基線,在增量開發(fā)時需不斷刷新。Anatomy幫助團隊理解系統(tǒng)全局,制定合理的迭代計劃Anatomy的好處Anatomy是迭代計劃制定的重要依據(jù),保證系統(tǒng)按照類似生物自然生長的順序自底向上有序地開發(fā)和集成(Organicintegration);Anatomy也可作為可視化工具,通過標識圖中每一個功能的狀態(tài),使項目整體進展一目了然,并能極大增強團隊的信心;有助于團隊從增量交付向交付全系統(tǒng)的思維轉(zhuǎn)變;是很好的培訓教材,幫助工程師了解全系統(tǒng)。Anatomy樣例Page24敏捷工程實踐:Anatomy系統(tǒng)解剖Page242022/11/302022/11/3025敏捷輔助參考資料《敏捷軟件開發(fā):原則、模式與實踐》《硝煙中的Scrum和XP》《Scrum敏捷項目管理》Page26
敏捷輔助參考資料《敏捷軟件開發(fā):原則、模式與實踐》Page26謝謝!2022/11/30謝謝!2022/11/3027敏捷軟件開發(fā)介紹Davin2009年06月N.001敏捷軟件開發(fā)介紹28目錄
敏捷理念敏捷優(yōu)秀實踐敏捷應用建議2022/11/30目錄 敏捷理念2022/11/3029Page30軟件作坊軟件過程控制重型過程2001~今敏捷正在流行軟件規(guī)模小,以作坊式開發(fā)為主;硬件飛速發(fā)展,軟件規(guī)模和復雜度激增,引發(fā)軟件危機;引入成熟生產(chǎn)制造管理方法,以“過程為中心”分階段來控制軟件開發(fā)(瀑布模型),一定程度上緩解了軟件危機;軟件失敗的經(jīng)驗促使過程被不斷增加約束和限制,軟件開發(fā)過程日益“重型化”,開發(fā)效率降低、響應速度變慢;隨著信息時代到來,需求變化更快,交付周期成為企業(yè)核心競爭力,輕量級的,更能適應變化的敏捷軟件開發(fā)方法被普遍認可并迅速流行。軟件危機20世紀60年代80年代90年代軟件開發(fā)順應時代變化,從重型過程轉(zhuǎn)向輕量型敏捷70年代敏捷誕生的歷史背景Page3軟件作坊軟件過程控制重型過程2001~今敏30Page31Hw敏捷的發(fā)展:2006年之前:IPD(集成產(chǎn)品開發(fā))2006~2008年:從咨詢公司ThoughtWorks引入敏捷軟件開發(fā),開展軟件項目試點2008后:產(chǎn)品試點,全部軟件項目使用,硬件項目使用優(yōu)秀實踐騰訊敏捷的發(fā)展:2006年之前:IPD(集成產(chǎn)品開發(fā))2006年之后:從咨詢公司ThoughtWorks引入敏捷軟件開發(fā),正式命名為TAPD(TencentAgileProductDevelopment)HW敏捷和騰訊敏捷的發(fā)展Page4Hw敏捷的發(fā)展:HW敏捷和騰訊敏捷的發(fā)展31Page32敏捷宣言揭示更好的軟件開發(fā)方法敏捷宣言(2001年)是敏捷起源的基礎,由上述4個簡單的價值觀組成,敏捷宣言的簽署推動了敏捷運動敏捷宣言本質(zhì)是揭示一種更好的軟件開發(fā)方式,啟迪人們重新思考軟件開發(fā)中的價值和如何更好的工作敏捷宣言Page5敏捷宣言揭示更好的軟件開發(fā)方法敏捷宣言(20032Page33軟件更像一個活著的植物,軟件開發(fā)是自底向上逐步有序的生長過程,類似于植物自然生長敏捷開發(fā)遵循軟件客觀規(guī)律,不斷的進行迭代增量開發(fā),最終交付符合客戶價值的產(chǎn)品傳統(tǒng)開發(fā)敏捷開發(fā)敏捷更符合軟件開發(fā)規(guī)律Page6軟件更像一個活著的植物,軟件開發(fā)是自底向上逐步有33Page34對敏捷的常見誤解誤解一:敏捷開發(fā)意味著可以不需要文檔、設計和計劃誤解二:敏捷只是一些優(yōu)秀實踐,或者是優(yōu)秀實踐的結(jié)合誤解三:敏捷只適用于小項目開發(fā)誤解四:敏捷只會對研發(fā)產(chǎn)生改變誤解五:管理者不需要親自了解敏捷,只需要管理上支持就可以了誤解六:引入敏捷只需要按照既定的步驟去做就可以了誤解七:敏捷是CMM的替代品,是另一種流程誤解八:敏捷只注重特性的快速交付,在敏捷下架構(gòu)不重要了Page7對敏捷的常見誤解誤解一:敏捷開發(fā)意味著可以不需34Page35統(tǒng)一認識:敏捷=理念+優(yōu)秀實踐+具體應用理念(敏捷核心思想)敏捷包括3個層次優(yōu)秀實踐(敏捷的經(jīng)驗積累)具體應用(能夠結(jié)合自身靈活應用才是真正敏捷)理念優(yōu)秀實踐具體應用Page8統(tǒng)一認識:敏捷=理念+優(yōu)秀實踐+具體應用35Page36敏捷理念不斷調(diào)整以適應(Adapting)變化激發(fā)團隊(Team)潛能,加強協(xié)作聚焦客戶價值(Value),消除浪費Page9敏捷理念不斷調(diào)整以適應(Adapting)變化激36Page37優(yōu)秀實踐:業(yè)界敏捷優(yōu)秀實踐概覽結(jié)對編程測試驅(qū)動開發(fā)客戶參與驗收計劃游戲代碼集體所有每日站立會議產(chǎn)品backlog(帶優(yōu)先級的需求清單)燃燒圖迭代計劃會議回顧會議ScrumMasterProductOwnerAnatomy(系統(tǒng)解剖)OneTrackSystemakut(缺陷管理和決策)重構(gòu)完整團隊穩(wěn)定開發(fā)節(jié)奏Lagomising(需求決策)隱喻電信業(yè)偏重大規(guī)模產(chǎn)品實踐、Scrum偏重項目管理,XP偏重編程實踐電信業(yè)ScrumXP持續(xù)集成迭代交付Page10優(yōu)秀實踐:業(yè)界敏捷優(yōu)秀實踐概覽結(jié)對編程測試驅(qū)37敏捷軟件開發(fā)典型場景Page38PO和開發(fā)團隊對產(chǎn)品業(yè)務目標形成共識PO建立和維護產(chǎn)品需求列表(需求會不斷新增和改變),并進行優(yōu)先級排序PO每輪迭代前,Review需求列表,并篩選高優(yōu)先級需求進入本輪迭代開發(fā)開發(fā)團隊細化本輪迭代需求,并按照需求的優(yōu)先級,依次在本輪迭代完成開發(fā)團隊每日站立會議、特性開發(fā)、持續(xù)集成,使開發(fā)進度真正透明PO對每輪迭代(2-4周)交付的可工作軟件進行現(xiàn)場驗收和反饋回到第3步,開始下一輪迭代迭代每日工作站立會議特性開發(fā)特性測試持續(xù)集成交付可以工作的軟件迭代計劃回顧確定一個迭代的工作內(nèi)容產(chǎn)品和利益相關(guān)人①②③、⑦④⑤⑥敏捷軟件開發(fā)典型場景Page11PO和開發(fā)團隊對產(chǎn)品業(yè)務目38Page39什么是完整團隊敏捷開發(fā)中,以Story為單位的持續(xù)交付要求系統(tǒng)組、開發(fā)和測試等跨功能團隊進行密切協(xié)同,相互獨立的功能團隊難以應對。完整團隊是跨功能領域(需求分析師、設計師、開發(fā)人員、測試人員、資料人員等)的人員組成一個團隊,坐在一起工作,團隊成員遵循同一份計劃,服從于同一個項目經(jīng)理。完整團隊的好處有助于團隊成員形成共同目標和全局意識,促進各功能領域的拉通和融合;通過面對面溝通提升溝通效率。實現(xiàn)團隊成員的高度協(xié)同,支撐高密度地、持續(xù)地、短周期的交付。完整團隊的關(guān)鍵要點成員來自多功能領域:團隊擁有完成目標所需的各職能成員;坐在一起辦公:團隊成員無障礙地溝通;團隊保持相對穩(wěn)定:臨時組建的團隊生產(chǎn)效率較低,團隊穩(wěn)定非常關(guān)鍵。完整團隊聚焦客戶需求交付,提高協(xié)作效率敏捷團隊實踐:完整團隊Page12什么是完整團隊完整團隊的好處完整團隊的關(guān)鍵要點39Page40產(chǎn)品Backlog關(guān)鍵要點清楚表述列表中每個需求任務對用戶帶來的價值,做為優(yōu)先級排序的重要參考;動態(tài)的需求管理而非“凍結(jié)”方式,PO持續(xù)地管理和及時刷新需求清單,在每輪迭代前,都要重新篩選出高優(yōu)先級需求進入本輪迭代;迭代的需求分析過程,而非一次性分析清楚所有需求(只對近期迭代要做的需求進行詳細分析,其它需求停留在粗粒度)。敏捷工作件:產(chǎn)品Backlog什么是產(chǎn)品Backlog經(jīng)過優(yōu)先級排序的動態(tài)刷新的產(chǎn)品需求清單,用來制定發(fā)布計劃和迭代計劃。產(chǎn)品Backlog的好處通過需求的動態(tài)管理應對變化,避免浪費;易于優(yōu)先交付對用戶價值高的需求。產(chǎn)品Backlog是需求動態(tài)管理的載體Page13產(chǎn)品Backlog關(guān)鍵要點敏捷工作件:產(chǎn)品Ba40Page41什么是迭代Backlog迭代Backlog是團隊在一輪迭代中的“任務”(Task)清單,是團隊的詳細迭代開發(fā)計劃;當團隊接收從產(chǎn)品Backlog挑選出要在本輪迭代實現(xiàn)的需求時,召開團隊迭代計劃會議,將需求轉(zhuǎn)化為具體的“任務”;每項任務信息包括當前剩余工作量和責任人。敏捷工作件:迭代Backlog迭代Backlog的好處將需求分解成更細小的任務,利于對迭代內(nèi)進度進行精確控制;剩余工作量可用來實時跟蹤團隊當前進展。迭代Backlog關(guān)鍵要點“任務”由團隊成員自己分解和定義,而不是上級指派,支撐需求完成的所有工作都可以列為任務;任務要落實到具體的責任人;任務粒度要小,工作量大于兩天的任務要進一步分解;用小時做為任務剩余工作量的估計單位,并每日重估計和刷新。迭代Backlog提供精細的迭代開發(fā)計劃任務責任人狀態(tài)剩余工時日期Page14什么是迭代Backlog敏捷工作件:迭代Bac41Page42敏捷工作件:完成標準(DefinitionofDone)什么是完成標準基于“隨時可向用戶發(fā)布”的目標制定衡量團隊工作是否已完成的標準,由團隊和PO形成共識;完成標準的好處共同協(xié)商的完成標準是團隊的自我承諾,團隊會更認真;用于準確評估團隊工作進展;清晰和明確的完成標準保證了每次迭代是高質(zhì)量的。完成標準的關(guān)鍵要點團隊自協(xié)商:團隊根據(jù)項目實際情況來定義完成標準,并嚴格遵守;有層次:一般分為三個層次:Story級別,迭代級和發(fā)布級,每個級別都有各自的完成標準。Story完成標準樣例迭代完成標準樣例發(fā)布完成標準樣例代碼合入主干代碼符合規(guī)范代碼100%檢視通過驗收測試通過迭代驗收系統(tǒng)測試用例100%通過通過性能測試所有Story完成通過回歸測試所有缺陷解決更新配套資料完成標準的樣例代碼100%通過單元測試持續(xù)集成無錯誤完成標準確保團隊每一步前進都奠定在堅實的質(zhì)量基礎之上Page15敏捷工作件:完成標準(Definitiono42Page43敏捷管理實踐:迭代計劃會議什么是迭代計劃會議每輪迭代啟動前,團隊共同討論本輪迭代詳細開發(fā)計劃的過程,輸入是產(chǎn)品Backlog,輸出是團隊迭代Backlog;多團隊迭代計劃會議要分層召開版本迭代計劃會議:將產(chǎn)品Backlog(需求)分配給團隊;團隊迭代計劃會議:將選取的產(chǎn)品Backlog需求轉(zhuǎn)換成迭代Backlog(任務),分配給團隊成員;迭代計劃會議內(nèi)容:澄清需求、對“完成標準”達成一致工作量估計、根據(jù)團隊能力確定本輪迭代交付內(nèi)容;細化、分配迭代任務和初始工作計劃。迭代計劃會議的好處通過充分討論,使團隊成員對任務和完成標準理解一致;團隊共同參與,促進團隊成員更認真對待自己的承偌。迭代計劃會議的關(guān)鍵要點充分參與:ScrumMaster確保PO和Team充分參與討論,達成理解一致;相互承諾:Team承諾完成迭代Backlog中的需求并達到”完成標準“,PO承諾在短迭代周期不增加需求(2-4周);確定內(nèi)部任務:Team和PO協(xié)商把一些內(nèi)部任務放入迭代中(例如重構(gòu)、持續(xù)集成環(huán)境搭建等),由PO考慮并與其他外部需求一起排序。迭代計劃會議由團隊共同確定迭代交付內(nèi)容和完成標準Page16敏捷管理實踐:迭代計劃會議什么是迭代計劃會議迭43Page44敏捷管理實踐:每日站立會議什么是每日站立會議每日工作前,團隊成員的例行溝通機制,由ScrumMaster組織,Team成員全體站立參加聚焦在下面的三個主題:我昨天為本項目做了什么?我計劃今天為本項目做什么?我需要什么幫助以更高效的工作?每日站立會議的關(guān)鍵要點準時開始:按計劃會議制定的時間地點開會,形成團隊成員的自然習慣;高效會議:會議限時15分鐘,每個人都保持站立,依次發(fā)言,不討論與會議三個主題無關(guān)的事情(如技術(shù)解決方案等);問題跟蹤:ScrumMaster應該記錄下所有的問題并跟蹤解決;每日站立會議的好處增加團隊凝聚力,產(chǎn)生積極的工作氛圍及時暴露風險和問題;促進團隊內(nèi)成員的溝通和協(xié)調(diào)。每日站立會議促進團隊溝通協(xié)調(diào),及時暴露問題Page17敏捷管理實踐:每日站立會議什么是每日站立會議每44Page45敏捷管理實踐:可視化管理可視化管理的好處簡單,一目了然,降低管理成本;實時狀態(tài)顯示,及時暴露問題;信息同源使團隊理解一致,提升團隊凝聚力;激勵先進,鞭策后進,增強團隊進取心。什么是可視化管理將項目狀態(tài)(進度、質(zhì)量等)通過物理實體(如白板,大屏幕)實時展示,讓團隊所有成員直觀地獲取當前項目進展信息??梢暬芾淼年P(guān)鍵要點物理實體:可視化一定要做到物理上的實體化,大家在公開場所都容易看到,觸摸到,(存在電腦中的文件不是可視化的);內(nèi)容精簡,易懂:信息展示一目了然,切實對團隊有幫助,切忌貪多求全,難以分辨;實時刷新:延遲的信息拖延問題暴露,降低運作效率??梢暬芾砑皶r暴露問題,激勵團隊Story墻(展示Story進度)缺陷走勢圖(展示缺陷解決進展)Anatomy視圖(展示系統(tǒng)集成進展)Page18敏捷管理實踐:可視化管理可視化管理的好處什么是45Page46敏捷管理實踐:迭代驗收什么是迭代驗收每次迭代開發(fā)結(jié)束時舉行,通過演示可工作的軟件檢查需求是否滿足客戶要求;由Scrum
Master組織,PO和用戶代表(外部或內(nèi)部利益相關(guān)人)負責驗收、Team負責演示可工作軟件。迭代驗收的好處通過演示可工作的軟件來確認項目的進度,具有真實性;能盡早的獲得用戶對產(chǎn)品的反饋,使產(chǎn)品更加貼近客戶需求。迭代驗收的關(guān)鍵要點展示“真實”的產(chǎn)品:Team應在真實環(huán)境中展示可運行的軟件,判斷是否達到“完成”標準;收集反饋:PO根據(jù)驗收情況及客戶反饋意見,及時調(diào)整產(chǎn)品Backlog。迭代驗收盡早演示可工作的軟件,收集反饋意見Page19敏捷管理實踐:迭代驗收什么是迭代驗收迭代驗收的46Page47敏捷管理實踐:迭代回顧會議迭代回顧會議的好處激勵團隊成員;幫助團隊挖掘優(yōu)秀經(jīng)驗并繼承;避免團隊犯重復的錯誤;營造團隊自主改進的氛圍。什么是迭代回顧會議在每輪迭代結(jié)束后舉行的會議,目的是分享好的經(jīng)驗和發(fā)現(xiàn)改進點,促進團隊不斷進步;圍繞如下三個問題:本次迭代有哪些做得好本次迭代我們在哪些方面還能做得更好我們在下次迭代準備在哪些方面改進?迭代回顧會議的關(guān)鍵要點會議氣氛:Team全員參加,氣氛寬松自由,暢所欲言,頭腦風暴發(fā)現(xiàn)問題,共同分析根因;關(guān)注重點:Team共同討論優(yōu)先級,將精力放在最需要的地方(關(guān)注幾個改進就夠了);會議結(jié)論要跟蹤閉環(huán):可以放入迭代backlog中。迭代回顧會議是促進團隊持續(xù)改進的最有效手段好的能做得更好的將來改進的Page20敏捷管理實踐:迭代回顧會議迭代回顧會議的好處什47Page48敏捷工程實踐:用戶故事(userstory)什么是用戶故事用戶故事是站在用戶角度描述需求的一種方式;每個用戶故事須有對應的驗收測試用例;用戶故事是分層分級的,在使用過程中逐步分解細化;典型的描述句式為:作為一個XXX客戶角色,我需要XXX功能,帶來XXX好處。用戶故事的好處用戶故事站在用戶視角便于和客戶交流,準確描述客戶需求;用戶故事可獨立交付單元、規(guī)模小,適于迭代開發(fā),以獲得用戶快速反饋;用戶故事強調(diào)編寫驗收測試用例作為驗收標準,能促使需求分析人員準確把握需求,牽引開發(fā)人員避免過度設計。用戶故事的關(guān)鍵要點I–Independent,可獨立交付給客戶N–Negotiable,便于與客戶交流V-Valuable,對客戶有價值E-Estimable,能估計出工作量S-Small,分解到最底層的用戶故事粒度盡量小,至少在一個迭代中能完成T-Testable,可測試初始需求:1.作為網(wǎng)絡規(guī)劃人員,我想要配置一個媒體網(wǎng)關(guān),因為想要增加網(wǎng)絡容量和服務初次分解:1.1作為網(wǎng)絡規(guī)劃人員,我想把媒體網(wǎng)關(guān)參數(shù)上傳到管理系統(tǒng)
1.2作為網(wǎng)絡規(guī)劃人員,我想從管理系統(tǒng)下載媒體網(wǎng)關(guān)參數(shù)再次分解:1.2.1作為網(wǎng)絡規(guī)劃人員,我想用文件方式從管理系統(tǒng)下載媒體網(wǎng)關(guān)參數(shù)
用例:用戶在管理系統(tǒng)上選擇以文件方式下載媒體網(wǎng)關(guān)參數(shù),執(zhí)行成功后,檢查文件是否正確下載到本地且內(nèi)容正確
1.2.2作為網(wǎng)絡規(guī)劃人員,我想用MML結(jié)構(gòu)方式從管理系統(tǒng)下載媒體網(wǎng)關(guān)的參數(shù)
用例:…………故事樣例用戶故事便于團隊站在用戶角度分解細化需求并制定驗收標準Page21敏捷工程實踐:用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于機器學習的網(wǎng)絡切片優(yōu)化調(diào)度-深度研究
- 2025至2031年中國果蔬棚化設備行業(yè)投資前景及策略咨詢研究報告
- 家庭護理智能化平臺構(gòu)建-深度研究
- 市場風險防范機制-深度研究
- 2025至2030年中國紫蕓豆數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國彩色條紋板數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國雙階式擠出機組數(shù)據(jù)監(jiān)測研究報告
- 二零二五年度文化產(chǎn)業(yè)園區(qū)場地運營管理合作協(xié)議3篇
- 二零二五年度車輛借人使用期間交通事故處理協(xié)議
- 二零二五年度輔導班家長參與式課程管理協(xié)議
- 2025年山西國際能源集團限公司所屬企業(yè)招聘43人高頻重點提升(共500題)附帶答案詳解
- 二零二五年倉儲配送中心物業(yè)管理與優(yōu)化升級合同3篇
- 2025屆廈門高三1月質(zhì)檢期末聯(lián)考數(shù)學答案
- 音樂作品錄制許可
- 江蘇省無錫市2023-2024學年高三上學期期終教學質(zhì)量調(diào)研測試語文試題(解析版)
- 拉薩市2025屆高三第一次聯(lián)考(一模)英語試卷(含答案解析)
- 開題報告:AIGC背景下大學英語教學設計重構(gòu)研究
- 師德標兵先進事跡材料師德標兵個人主要事跡
- 連鎖商務酒店述職報告
- 2024年山東省煙臺市初中學業(yè)水平考試地理試卷含答案
- 《實踐論》(原文)毛澤東
評論
0/150
提交評論