敏捷開發(fā)流程與方法講義課件_第1頁
敏捷開發(fā)流程與方法講義課件_第2頁
敏捷開發(fā)流程與方法講義課件_第3頁
敏捷開發(fā)流程與方法講義課件_第4頁
敏捷開發(fā)流程與方法講義課件_第5頁
已閱讀5頁,還剩111頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

敏捷開發(fā)流程與方法StrictlyPrivateandConfidentialBGCN交付管理部敏捷開發(fā)流程與方法StrictlyPrivateand目錄1.1敏捷的起源2敏捷系列1.2敏捷方法體系1敏捷開發(fā)簡介3敏捷開發(fā)的誤區(qū)1.3敏捷宣言1.4為什么要敏捷?目錄1.1敏捷的起源2敏捷系列1.2敏捷方法體系1敏捷開發(fā)簡敏捷開發(fā)的起源上個世紀(jì)90年代2001年2004年以后萌芽--產(chǎn)生敏捷方法敏捷方法是從上個世紀(jì)90年代開始發(fā)展起來的一組方法學(xué)的總稱,包括極限編程等等。這些方法學(xué)之間有一些差異,但是差異不是特別大正規(guī)—成立敏捷聯(lián)盟每種方法學(xué)的領(lǐng)導(dǎo)人共同起草了敏捷軟件開發(fā)宣言,總結(jié)出方法之間的共同點,最終就是價值,并且用敏捷這個詞給這種方法學(xué)一個統(tǒng)稱發(fā)展—開始廣為流行500強公司中眾多公司應(yīng)用敏捷;如HP,Microsoft,IBM等敏捷開發(fā)的起源上個世紀(jì)90年代2001年2004年以什么是敏捷開發(fā)?敏捷開發(fā)(AgileDevelopment)是一種以人為核心、迭代、循序漸進的開發(fā)方法。子項目特征-

各個子項目的成果都經(jīng)過測試-

具備集成和可運行的特征-

小項目相互聯(lián)系什么是敏捷開發(fā)?敏捷開發(fā)(AgileDevelop目錄1.1敏捷的起源1.2敏捷方法體系1敏捷開發(fā)簡介1.3敏捷宣言1.4為什么要敏捷?2敏捷系列3敏捷開發(fā)的誤區(qū)目錄1.1敏捷的起源1.2敏捷方法體系1敏捷開發(fā)簡介1敏捷方法XP-eXtremePrograming極限編程:思想源自KentBeck和WardCunningham在軟件項目中的合作經(jīng)歷。SCRUM:是一種迭代的增量化過程,用于產(chǎn)品開發(fā)或工作管理。水晶方法Crystal:由AlistairCockburn在1990年代末提出。把不同類型的項目采用不同的方法。FDD-特性驅(qū)動FeatureDrivenDevelopment,由PeterCoad、JeffdeLuca、EricLefebvre共同開發(fā),是一套針對中小型軟件開發(fā)項目的開發(fā)模式。它強調(diào)的是簡化、實用、易于被開發(fā)團隊接受,適用于需求經(jīng)常變動的項目。DSDM-DynamicSystemDevelopmentMethodology,它倡導(dǎo)以業(yè)務(wù)為核心,快速而有效地進行系統(tǒng)開發(fā),在英國等歐洲國家比較流行。ASD-AdaptiveSoftwareDevelopment,由JimHighsmith在1999年正式提出。ASD強調(diào)開發(fā)方法的適應(yīng)性(Adaptive)敏捷方法XP-eXtremePrograming敏捷開發(fā)特點

敏捷開發(fā)包括很多方法,例如XP和FDD,同重量級的文檔驅(qū)動的開發(fā)過程相比較,敏捷方法在靈活性等方面更有吸引力。這個方法的創(chuàng)始人強調(diào)了在軟件實踐過程中的變更而不是孤立的進行一些實踐。

很多方法很難獨立的使用。如:測試驅(qū)動的開發(fā),結(jié)對開發(fā),計劃調(diào)整周期以及持續(xù)改進,不過,后來的結(jié)果證實,這些方法都取得了成功。

使用這些方法并不能保證一定成功。開發(fā)者的經(jīng)驗和技術(shù)仍舊是影響開發(fā)結(jié)果的最主要因素。對于合適的人,基于敏捷原則的開發(fā)方法可以產(chǎn)生更好的結(jié)果,同時形成一個愉快地、有激情的工作環(huán)境敏捷開發(fā)特點

敏捷開發(fā)包括很多方法,例目錄1.1敏捷的起源1.2敏捷方法體系1敏捷開發(fā)簡介1.3敏捷宣言1.4為什么要敏捷?2敏捷系列3敏捷開發(fā)的誤區(qū)目錄1.1敏捷的起源1.2敏捷方法體系1敏捷開發(fā)簡介1.3敏敏捷宣言核心理念:適應(yīng)和以人為本客戶合作勝過合同談判響應(yīng)變化勝過遵循計劃可以工作的軟件勝過面面俱到的文檔個體和交互勝過過程和工具敏捷宣言核心理念:客戶合作勝過合同談判響應(yīng)變化勝過遵敏捷規(guī)則最高目標(biāo)是能持續(xù)地、及早地向客戶交付軟件;擁抱變化;頻繁地發(fā)布可運行的軟件;客戶和開發(fā)人員在一起工作;以人為本;最重要的衡量開發(fā)過程的手段,是可工作的軟件;穩(wěn)定的開發(fā)速度;敏捷高效的設(shè)計;簡單有效;重視Teamwork;積極的調(diào)整。敏捷規(guī)則最高目標(biāo)是能持續(xù)地、及早地向客戶交付軟件;目錄1.1敏捷的起源1.2敏捷方法體系1敏捷開發(fā)簡介1.3敏捷宣言1.4為什么要敏捷?2敏捷系列3敏捷開發(fā)的誤區(qū)目錄1.1敏捷的起源1.2敏捷方法體系1敏捷開發(fā)簡介1.我們?yōu)槭裁葱枰艚蓓椖繛槭裁词??軟件工程試圖解決這些問題:對用戶需求理解得不清楚,甚至有錯誤;用戶需求變化;軟件很難維護或擴展;在項目后期階段發(fā)現(xiàn)很嚴(yán)重的設(shè)計缺陷;軟件質(zhì)量或性能不合格;Test-Build-Release過程的可操作性、可維護性很差;人員流動;

……為了規(guī)范化開發(fā)過程,引進傳統(tǒng)工程的概念(瀑布型);為了理解需求,提出原型法;為了提高設(shè)計開發(fā)的效率和擴展性,提出重用和面向?qū)ο蟮人枷?;為了讓開發(fā)過程更靈活,提出了開發(fā)框架的概念;為了降低風(fēng)險,提出了風(fēng)險評估、成本控制和增量開發(fā)等思想;我們?yōu)槭裁葱枰艚蓓椖繛槭裁词。寇浖こ淘噲D解決這我們?yōu)槭裁葱枰艚莶块T:

1)培養(yǎng)團隊合作精神,穩(wěn)定開發(fā)隊伍;

2)提高開發(fā)人員的水平;

3)提高項目成功率,降低開發(fā)成本,提升軟件開發(fā)效率項目經(jīng)理:

1)更好地和用戶溝通,更清晰地理解用戶需求;

2)更充分地使用資源,更科學(xué)地調(diào)配資源,更精確地掌握開發(fā)進度。系統(tǒng)分析設(shè)計:

1)設(shè)計更加完善;

2)更有效地更新知識,得到其他成員更多的尊重。程序員:

1)學(xué)習(xí)系統(tǒng)設(shè)計和項目管理;

2)提高學(xué)習(xí)和工作效率,受到重視,減少加班時間,工作更高效我們?yōu)槭裁葱枰艚莶块T:誰在用敏捷Fortune500公司中成功應(yīng)用XP的公司包括Ford,Daimler-Chrysler,F(xiàn)irstUnionNationalBank,IBM,HP等等。通信業(yè)NS,Ericsson,Alcatel等都號稱在轉(zhuǎn)向敏捷更多是小規(guī)模開發(fā)隊伍(小規(guī)模開發(fā)隊伍小規(guī)模項目)越來越多的公司開始使用敏捷開發(fā)過程誰在用敏捷Fortune500公司中成功應(yīng)用XP敏捷開發(fā)成功的因素知識和技能文化和氛圍自組織團隊開放的心態(tài)敏捷開發(fā)成功的因素知識和技能文化和氛圍自組織團隊開放的心態(tài)目錄2.1XP-eXtremePrograming2敏捷系列2.2SCRUM1敏捷開發(fā)簡介3敏捷開發(fā)的誤區(qū)目錄2.1XP-eXtremeProgramin敏捷實踐在敏捷的兩個門派:XP、Scrum中,整理歸納了很多可以用于協(xié)助軟件開發(fā)的實踐,后面統(tǒng)稱為敏捷實踐。敏捷實踐在敏捷的兩個門派:XP、Scrum中,整理歸納什么是XPXPisalightweightmethodologyforsmalltomediumsizedteamsdevelopingsoftwareinthefaceofvagueorrapidlychangingrequirements.

--KentBeck.KentBeck,WardCunningham,MartinFowler,RonJeffries于2000年創(chuàng)立XP是軟件開發(fā)過程中的紀(jì)律,它規(guī)定你:必須在編程前些測試,必須兩個人一起編程,必須遵守編程規(guī)范……。XP是把最好的實踐經(jīng)驗提取出來,形成了一個嶄新的開發(fā)方法。ExtremeProgramming什么是XPXPisalightweightm什么是XPExtremeProgramming極限的含義:軟件開發(fā)中的優(yōu)點發(fā)揮到極致(KentBeck).XP:給程序員提供了明確的方法,使得程序員盡管面對需求的改變,卻能夠從容應(yīng)對,即使著重變化發(fā)生在項目的后期,仍然能夠編出代碼。XP核心:溝通、簡明、反饋和勇氣XP重視溝通,客戶、開發(fā)人員、管理者共同組成團隊。XP是一個實踐系統(tǒng)13個實踐XP方法的貢獻以擁抱變化的思想,協(xié)作的團隊,簡單的規(guī)則等為原則的13個具體實踐是知名度最高的敏捷開發(fā)方法什么是XPExtremeProgramming極限XP的計劃/反饋循環(huán)XP的計劃/反饋循環(huán)XP開發(fā)工作流XP開發(fā)工作流XP的關(guān)鍵實踐:編程方法交付和管理小組實踐XP的關(guān)鍵實踐:編程方法交付和管理小組實踐XP的關(guān)鍵實踐結(jié)對編程測試驅(qū)動開發(fā)重構(gòu)簡單設(shè)計代碼集體所有編碼標(biāo)準(zhǔn)穩(wěn)定高速的步伐持續(xù)集成隱喻現(xiàn)場客戶完整的團隊小規(guī)模發(fā)布計劃游戲編程方法小組實踐交付和管理XP的關(guān)鍵實踐結(jié)對編程測試驅(qū)動開發(fā)重構(gòu)簡單設(shè)計代碼集交付和管理交付和管理交付和管理1:完整的團隊(WholeTeam)Product

Manager/Project

managerCoachTeam

leadDevelopersTrackerTester(On-Site)Customers所有的小組成員應(yīng)在同一個工作地點工作。成員中必須有一個用戶代表(On-siteUser),由他/她來提出需求,確定開發(fā)優(yōu)先級,把握開發(fā)的動向。通常還設(shè)一個教練(Coach)角色,來指導(dǎo)XP方法的實施及與外部的溝通協(xié)調(diào)等。小組每個成員都應(yīng)圍繞用戶代表,充分貢獻自己的技能。交付和管理1:完整的團隊(WholeTeam)Prod交付和管理2:計劃游戲(PlanningGame)增加/改變需求產(chǎn)生和評估UserStory發(fā)布計劃迭代計劃1迭代計劃2迭代計劃n…………實施迭代1實施迭代2實施迭代n…………1..N個發(fā)布探索階段計劃階段調(diào)整階段調(diào)整開發(fā)速度/內(nèi)容交付和管理2:計劃游戲(PlanningGame)交付和管理3:現(xiàn)場客戶(On-SiteCustomer)客戶是Team成員,在開發(fā)現(xiàn)場和開發(fā)人員一起工作。傳統(tǒng)的客戶任務(wù)一般是講解需求,運行驗收測試,接收發(fā)布的系統(tǒng)。XP新增加的任務(wù):

(1)寫UserStory(2)評估UserStory的商業(yè)優(yōu)先級

(3)為每個UserStory定義驗收測試

(4)計劃開發(fā)內(nèi)容

(5)調(diào)控開發(fā)過程

(6)建立商業(yè)模型,把隱藏在客戶需求下的原則傳授給開發(fā)人員

(8)程序員分擔(dān)任務(wù)的過程支解了對他們商業(yè)模型的理解

(9)參加設(shè)計過程

(10)和程序員一起找出Metaphor,導(dǎo)引設(shè)計方向

(11)在Metaphor的幫助下,定義更有效更實際的功能測試,給程序員的設(shè)計制定了規(guī)范交付和管理3:現(xiàn)場客戶(On-SiteCustome交付和管理4:小規(guī)模發(fā)布降低開發(fā)風(fēng)險。保證客戶有足夠的依據(jù)調(diào)控開發(fā)過程(增加、刪除或改變UserStory)??蛻羰褂冒l(fā)布的系統(tǒng),可以保證頻繁地反饋和交流。發(fā)布過程應(yīng)該盡可能地自動化、規(guī)范化。不斷地發(fā)布可用的系統(tǒng)可以告訴客戶你在做正確的事情。低風(fēng)險智能化適應(yīng)調(diào)整頻繁交流知會客戶頻繁發(fā)布經(jīng)過驗證隨著開發(fā)的推進,發(fā)布越來越頻繁。所有的發(fā)布都要經(jīng)過功能測試。小規(guī)模發(fā)布交付和管理4:小規(guī)模發(fā)布降低開發(fā)風(fēng)險。保證客戶小組實踐小組實踐小組實踐1:持續(xù)集成(Continuousintegration)持續(xù)集成指不斷地把完成的功能模塊整合在一起。目的在于不斷獲得客戶反饋以及盡早發(fā)現(xiàn)BUG。隨時整合,越頻繁越好;集成及測試過程的自動化程度越高越好?!癆Testaday,takesthebugsaway”---Siemens失敗通過時間功能測試小組實踐1:持續(xù)集成(Continuousinte小組實踐1:持續(xù)集成(Continuousintegration)1自動化編譯質(zhì)量度量23自動化測試持續(xù)反饋小組實踐1:持續(xù)集成(Continuousinteg團隊實踐2:隱喻(SystemMetaphor)“Thesystemmetaphorisastorythateveryone-customers,programmers,andmanagers-

cantellabouthowthesystemworks.”—KentBeckTeam將Domain/Sub-DomainModel,Design/Sub-DesignModel以及一些關(guān)鍵概念等等抽象化為比喻。通過這些比喻,加強客戶和程序員之間的相互理解,消化積累知識,指導(dǎo)設(shè)計開發(fā)的方向。例:Market—發(fā)布/瀏覽,價格洽談,生成和履行合同;String,Tree,Package,Chartroom,Spider,Robot……;電影后期制作—>郵遞—>電影院播放電影。團隊實踐2:隱喻(SystemMetaphor)小組實踐2:隱喻(SystemMetaphor)Metaphor的形成過程,是客戶建立并抽象商業(yè)模型和商業(yè)概念的過程,是程序員建立并抽象設(shè)計模型和設(shè)計概念的過程。Metaphor使客戶和程序員用共通的模型和語言進行交流—“OneTeam,onelanguage”。Metaphor可以幫助減少“知識泄露”和“支解知識”。Metaphor是設(shè)計過程的航標(biāo)——真正靈活有效的設(shè)計是針對商業(yè)原則的設(shè)計,而不是針對商業(yè)原則表現(xiàn)形式的設(shè)計,更不是脫離商業(yè)需求目的的學(xué)術(shù)設(shè)計。隨著開發(fā)的繼續(xù),Team會找到更好的Metaphor。這是知識細化、深化的結(jié)果,是“持續(xù)學(xué)習(xí)”(Continuouslearning)的過程;是對商業(yè)模型和設(shè)計模型的持續(xù)重構(gòu)。小組實踐2:隱喻(SystemMetaphor)M小組實踐3:編碼標(biāo)準(zhǔn)(Codingstandards)編碼標(biāo)準(zhǔn)的目的:

防止團隊被一些無關(guān)緊要的愚蠢爭論搞得不知所措。不要預(yù)先花費太多時間目標(biāo)應(yīng)該是團隊中沒有人辨認(rèn)各自的代碼以團隊為單位對某一標(biāo)準(zhǔn)達成協(xié)議,然后遵守這一標(biāo)準(zhǔn)不是事無巨細的規(guī)則列表,而是確保代碼可交流的指導(dǎo)方針七個原則編碼標(biāo)準(zhǔn)開始時應(yīng)很簡單,然后根據(jù)團隊經(jīng)驗逐步進化創(chuàng)建能夠工作的最簡單標(biāo)準(zhǔn),然后逐步發(fā)展只制訂適合本團隊的小組實踐3:編碼標(biāo)準(zhǔn)(Codingstandards小組實踐4:集體擁有代碼“我們”的代碼,而不是“我”的代碼。任何人可以改動任何一段代碼,但改動后的代碼必須通過所有相關(guān)的測試。簡單設(shè)計,編碼標(biāo)準(zhǔn)和結(jié)對編程,使閱讀和修改Team內(nèi)其他人的代碼變得實際可行。思考:同公司信息安全可能有沖突?在一定范圍內(nèi)進行集體擁有代碼還是可行的小組實踐4:集體擁有代碼“我們”的代碼,而不是“我”小組實踐5:穩(wěn)定高速的步伐(40-HourWeek)“每天早晨都感到有活力有激情,每天晚上都感到疲憊而滿足。”

---KentBeck8:00AMStandupMeetingPairUpTester自我測試編碼重構(gòu)集成并納入CI驗證5:30PM結(jié)束測試用例小組實踐5:穩(wěn)定高速的步伐(40-HourWeek編程方法編程方法編程方法1:測試驅(qū)動開發(fā)(TDD)失敗通過時間單元測試100%

通過設(shè)計先寫單元測試重構(gòu)運行單元測試編程發(fā)現(xiàn)BUG集成先寫功能測試UserStory運行功能測試編程方法1:測試驅(qū)動開發(fā)(TDD)失敗通過時間單元測試編程方法2:重構(gòu)(Refactoring)減少重復(fù)設(shè)計,優(yōu)化設(shè)計結(jié)構(gòu),提高技術(shù)上的重用性和可擴展性。重構(gòu)和編程前的計劃型設(shè)計(PlannedDesign)結(jié)合,使XP的簡單設(shè)計可行有效。XP提倡毫不留情的重構(gòu)(Refactormercilessly)。任何人可以重構(gòu)任何代碼,前提是重構(gòu)后的代碼一定要通過100%測試單元測試后才能被Check-in??梢愿鶕?jù)需要,將一個迭代的全部目標(biāo)定為重構(gòu)。不要太在意什么是最簡單的設(shè)計——愿意在最后重構(gòu),比知道如何做簡單的設(shè)計重要得多。在Metaphor指引下的重構(gòu),是為商業(yè)模型服務(wù)的。不要把重構(gòu)變成不斷的盲目精簡代碼。編程方法2:重構(gòu)(Refactoring)減少重復(fù)編程方法3:簡單設(shè)計簡單設(shè)計Dothesimplestthingthatcouldpossiblywork;Youaren’tgoingtoneedit如果沒有它和眾多慣例規(guī)則之間的耦合,XP的演化設(shè)計就蛻化成CODE-FIX。XP的演化設(shè)計是在Up-frontdesign和Refactoring之間找到新的平衡。需求分析設(shè)計編碼測試集成使用和維護PlannedDesignXPDesign變化導(dǎo)致的成本增加軟件研發(fā)異動曲線編程方法3:簡單設(shè)計簡單設(shè)計Dothesi編程方法3:簡單設(shè)計標(biāo)準(zhǔn)(依重要性):通過所有測試,可讀性高的代碼,避免重復(fù),最少數(shù)量的類別或方法。SystemMetaphor給設(shè)計提供了指引,加強Team對設(shè)計的理解;第一個迭代搭建了基本的系統(tǒng)框架。以后的迭代過程,是在反饋和編程的基礎(chǔ)上做交互式設(shè)計,減少了設(shè)計的投機性。迭代過程中的CRC卡幫助Team交流設(shè)計思想,簡化了設(shè)計文檔。構(gòu)對設(shè)計進行優(yōu)化。XP認(rèn)為設(shè)計非常重要,因此應(yīng)該是一個持續(xù)的事務(wù)。我們總是先嘗試使用能夠工作的最簡單的設(shè)計,然后隨著現(xiàn)實的不斷顯現(xiàn)來更改它。

對簡單設(shè)計的需求并不是說所有設(shè)計都很小,也不表示它們是無足輕重的。它們只不過需要盡可能簡單,但是仍能工作。編程方法3:簡單設(shè)計標(biāo)準(zhǔn)(依重要性):通編程方法4:結(jié)對編程(PairProgramming)所有設(shè)計決策都牽涉到至少兩個人。至少有兩個人熟悉系統(tǒng)的每一部分。幾乎不可能出現(xiàn)兩個人同時疏忽測試或其它任務(wù)。改變各對的組合在可以在團隊范圍內(nèi)傳播知識。代碼總是由至少一人復(fù)查。結(jié)對的編程比單獨編程更有效。XP中最有爭議的實踐之一編程方法4:結(jié)對編程(PairProgrammi目錄2.1XP-eXtremePrograming2敏捷系列2.2SCRUM1敏捷開發(fā)簡介3敏捷與CMM4敏捷開發(fā)的誤區(qū)目錄2.1XP-eXtremePrograminSCRUMSCRUM來源于橄欖球運動,指:“在橄欖球比賽中,雙方前鋒站在一起緊密相連,當(dāng)球在他們之間投擲時他們奮力爭球?!盨crum提供了一種經(jīng)驗方法,它使得團隊成員能夠獨立地,集中地在創(chuàng)造性的環(huán)境下工作。它發(fā)現(xiàn)了軟件工程的社會意義。這一過程是迅速,有適應(yīng)性,自組織的,它代表了從順序開發(fā)過程以來的重大變化。(KenSchwaber)Scrum是一種靈活的軟件管理過程,它可以幫助駕馭迭代、遞增的軟件開發(fā)過程。Scrum于1995年提出,并在2001年同其他方法論一起組成“敏捷聯(lián)盟(AgileAlliance)”。Scrum這個輕量的過程可以作為包裝器,也就是說你可以把Scrum與其它靈活的過程框架組合起來。SCRUMSCRUM來源于橄欖球運動,指:“在橄欖球SCRUM的過程圖SCRUM的過程圖SCRUM實踐1.Scrum團隊:5-7個人的小項目團隊,團隊的負責(zé)人可能擔(dān)負起ScrumMaster的角色。

2.Backlog:急待完成的一系列任務(wù),包括:未細化的產(chǎn)品功能要求、Bugs、缺陷、用戶提出的改進、具競爭力的功能及技術(shù)升級等,按優(yōu)先級定義出來,這些任務(wù)可能不是完整的,甚至可能隨時會更改或添加。

3.Sprint(沖刺):通常為30天的迭代時間,把Backlog中的每一項安排在Sprint中,由團隊估算出所需要的時間(按小時記)。每一次Sprint之后,一定要有可以交付使用的功能。

4.Scrum會議:這是與傳統(tǒng)方式最大的區(qū)別,每天15-20分鐘的Scrum會議,通常在每天的同一時間和同一個房間內(nèi)舉行。Scrum團隊所有人都參加,也可以有旁聽者(但不允許旁聽者指手劃腳)。在這個15分鐘的會議上,ScrumMaster會詢問每個成員三個問題:

a)自上次Scrum會議后的1天里你做了什么?

b)從現(xiàn)在到下次Scrum會議的1天時間里你準(zhǔn)備做什么?

c)你在工作中遇到了哪些困難?

每個成員在Backlog條目上所花費的時間會被記錄到Springbacklog中。ScrumMaster在會上對存在的問題提出即時的解決方案或指導(dǎo),使團隊不斷向著目標(biāo)前進。Scrum會議不同于項目會議,對團隊來說,它起到了快速簡報的作用。

5.通過SprintBacklog的分析,可以了解Backlog的進度,盡早的了解所發(fā)生的問題

6.管理者不在是項目或者團隊的``老板",而是幫助團隊解決問題的``協(xié)調(diào)者"或是``助手"。

7.每一次Sprint之后要review,團隊按照既定的SprintBacklog目標(biāo)來演示完成的內(nèi)容。SCRUM實踐1.Scrum團隊:5-7Scrum中的3、3、3三種工件三種會議三種角色待開發(fā)任務(wù)列表(TheSprintBacklog)待修復(fù)缺陷列表(Thedefectbacklog)進度圖、燃盡圖(BrunDownChart)ProductOwnerScrumMaster團隊成員(ScrumTeam)迭代計劃會議(SprintPlanningMeeting)每日晨會(DailyScrumMeeting)迭代回顧會議(SprintReviewMeeting)Scrum中的3、3、3三種工件三種會議三種角色待開ProductBacklogProductBacklogSPRINT劃分示意SPRINT劃分示意Sprint會議根據(jù)Backlog,制定每次Sprint的計劃Sprint會議根據(jù)Backlog,制定每次Spri目錄2敏捷系列1敏捷開發(fā)簡介3敏捷開發(fā)的誤區(qū)目錄2敏捷系列1敏捷開發(fā)簡介3敏捷開發(fā)的誤區(qū)討論誤區(qū)一:敏捷是"一個”過程誤區(qū)二:敏捷僅是個軟件過程誤區(qū)三:敏捷是反文檔的誤區(qū)四:為了敏捷而敏捷誤區(qū)五:重做就是重構(gòu)討論誤區(qū)一:敏捷是"一個”過程誤區(qū)二:敏捷僅是個軟件過程誤區(qū)誤區(qū)一:敏捷是"一個”過程敏捷不是一個過程,是一類過程的統(tǒng)稱,它們有一個共性,就是符合敏捷價值觀,遵循敏捷的原則。誤區(qū)一:敏捷是"一個”過程敏捷不是一個過程,是一類過程的誤區(qū)二:敏捷僅是個軟件過程

敏捷相對以前的軟件工程最大的革新之處在于把人的作用提高到了過程至上,正如敏捷宣言的第一條“個體和交互勝過過程和工具”所說的。涉及到人的問題,就已經(jīng)不再是過程所能覆蓋的了,就到了企業(yè)管理的層面上了,包括企業(yè)的價值觀和文化。這也是敏捷在國內(nèi)實施的最大障礙:把客戶當(dāng)作合作伙伴而不是對手,從客戶角度出發(fā)去想問題,充分的跟客戶溝通,而不是出了問題推諉責(zé)任。目標(biāo)是讓軟件實現(xiàn)客戶的價值,而不是收錢就完事兒。把人的能動性調(diào)動起來,給動力而不是給壓力。要實用而不是要規(guī)范。讓開發(fā)人員理解并實施,體驗到敏捷的好處,而不是盲目機械地實施規(guī)范。沒有絕對的權(quán)威,每個人都有可取之處。誤區(qū)二:敏捷僅是個軟件過程敏捷相對以前的軟件工程最大的革文檔只是為了達成目標(biāo)的一種手段,如果這種手段是低效的,那就換一種手段??墒峭耆珤仐壛宋臋n,怎樣解決溝通的問題?難道你想每次溝通都完全用手比劃,用嘴說,跟不同的人重復(fù)表述同樣的想法,那樣更是低效的。應(yīng)該清楚文檔的本質(zhì)是把知識顯性化。在一個項目中存在很多需要溝通的知識,知識具備兩種形態(tài),顯性的和隱性的,傳統(tǒng)的觀念是盡量把隱性知識顯性化,即文檔化,而忽略了這其中的代價(特別是更新同步文檔的代價)。因此,在實施敏捷的時候,需要在團隊內(nèi)明確哪些知識是必須顯性的,這些知識可以通過文檔交流。哪些知識是可以隱性的,這些知識則完全可以通過口頭的方式進行交流,以達到溝通的最佳效率。文檔不是目的,有效溝通才是目的。誤區(qū)三:敏捷是反文檔的文檔只是為了達成目標(biāo)的一種手段,如果這種手段是低效的,那“嗯,敏捷這么好,我們也敏捷吧”,可能很多人會有這種想法。忘了以前是在哪兒看的大師采訪錄:

Q:“我們現(xiàn)有的過程很好,不知道怎么用敏捷改進?”

A:“既然很好,那就不要用敏捷”。做什么事情都要有明確目標(biāo)的,敏捷雖好,得看你需不需要,能不能解決你現(xiàn)在頭疼的問題,如果不是,那就不要給自己找麻煩了。誤區(qū)四:為了敏捷而敏捷“嗯,敏捷這么好,我們也敏捷吧”,可能很多人會有這種想法

重做不等于重構(gòu),很多場合這兩個概念是混淆的。但是在敏捷中,重構(gòu)的一個特征是必須可控的。當(dāng)對系統(tǒng)結(jié)構(gòu)進行大的調(diào)整時,如果沒有測試驅(qū)動輔助的話,那么可控性就會很差,這不能叫做重構(gòu)。誤區(qū)五:重做就是重構(gòu)重做不等于重構(gòu),很多場合這兩個概念是混淆的。但是在敏捷中提升你的潛力提升你的潛力敏捷開發(fā)流程與方法StrictlyPrivateandConfidentialBGCN交付管理部敏捷開發(fā)流程與方法StrictlyPrivateand目錄1.1敏捷的起源2敏捷系列1.2敏捷方法體系1敏捷開發(fā)簡介3敏捷開發(fā)的誤區(qū)1.3敏捷宣言1.4為什么要敏捷?目錄1.1敏捷的起源2敏捷系列1.2敏捷方法體系1敏捷開發(fā)簡敏捷開發(fā)的起源上個世紀(jì)90年代2001年2004年以后萌芽--產(chǎn)生敏捷方法敏捷方法是從上個世紀(jì)90年代開始發(fā)展起來的一組方法學(xué)的總稱,包括極限編程等等。這些方法學(xué)之間有一些差異,但是差異不是特別大正規(guī)—成立敏捷聯(lián)盟每種方法學(xué)的領(lǐng)導(dǎo)人共同起草了敏捷軟件開發(fā)宣言,總結(jié)出方法之間的共同點,最終就是價值,并且用敏捷這個詞給這種方法學(xué)一個統(tǒng)稱發(fā)展—開始廣為流行500強公司中眾多公司應(yīng)用敏捷;如HP,Microsoft,IBM等敏捷開發(fā)的起源上個世紀(jì)90年代2001年2004年以什么是敏捷開發(fā)?敏捷開發(fā)(AgileDevelopment)是一種以人為核心、迭代、循序漸進的開發(fā)方法。子項目特征-

各個子項目的成果都經(jīng)過測試-

具備集成和可運行的特征-

小項目相互聯(lián)系什么是敏捷開發(fā)?敏捷開發(fā)(AgileDevelop目錄1.1敏捷的起源1.2敏捷方法體系1敏捷開發(fā)簡介1.3敏捷宣言1.4為什么要敏捷?2敏捷系列3敏捷開發(fā)的誤區(qū)目錄1.1敏捷的起源1.2敏捷方法體系1敏捷開發(fā)簡介1敏捷方法XP-eXtremePrograming極限編程:思想源自KentBeck和WardCunningham在軟件項目中的合作經(jīng)歷。SCRUM:是一種迭代的增量化過程,用于產(chǎn)品開發(fā)或工作管理。水晶方法Crystal:由AlistairCockburn在1990年代末提出。把不同類型的項目采用不同的方法。FDD-特性驅(qū)動FeatureDrivenDevelopment,由PeterCoad、JeffdeLuca、EricLefebvre共同開發(fā),是一套針對中小型軟件開發(fā)項目的開發(fā)模式。它強調(diào)的是簡化、實用、易于被開發(fā)團隊接受,適用于需求經(jīng)常變動的項目。DSDM-DynamicSystemDevelopmentMethodology,它倡導(dǎo)以業(yè)務(wù)為核心,快速而有效地進行系統(tǒng)開發(fā),在英國等歐洲國家比較流行。ASD-AdaptiveSoftwareDevelopment,由JimHighsmith在1999年正式提出。ASD強調(diào)開發(fā)方法的適應(yīng)性(Adaptive)敏捷方法XP-eXtremePrograming敏捷開發(fā)特點

敏捷開發(fā)包括很多方法,例如XP和FDD,同重量級的文檔驅(qū)動的開發(fā)過程相比較,敏捷方法在靈活性等方面更有吸引力。這個方法的創(chuàng)始人強調(diào)了在軟件實踐過程中的變更而不是孤立的進行一些實踐。

很多方法很難獨立的使用。如:測試驅(qū)動的開發(fā),結(jié)對開發(fā),計劃調(diào)整周期以及持續(xù)改進,不過,后來的結(jié)果證實,這些方法都取得了成功。

使用這些方法并不能保證一定成功。開發(fā)者的經(jīng)驗和技術(shù)仍舊是影響開發(fā)結(jié)果的最主要因素。對于合適的人,基于敏捷原則的開發(fā)方法可以產(chǎn)生更好的結(jié)果,同時形成一個愉快地、有激情的工作環(huán)境敏捷開發(fā)特點

敏捷開發(fā)包括很多方法,例目錄1.1敏捷的起源1.2敏捷方法體系1敏捷開發(fā)簡介1.3敏捷宣言1.4為什么要敏捷?2敏捷系列3敏捷開發(fā)的誤區(qū)目錄1.1敏捷的起源1.2敏捷方法體系1敏捷開發(fā)簡介1.3敏敏捷宣言核心理念:適應(yīng)和以人為本客戶合作勝過合同談判響應(yīng)變化勝過遵循計劃可以工作的軟件勝過面面俱到的文檔個體和交互勝過過程和工具敏捷宣言核心理念:客戶合作勝過合同談判響應(yīng)變化勝過遵敏捷規(guī)則最高目標(biāo)是能持續(xù)地、及早地向客戶交付軟件;擁抱變化;頻繁地發(fā)布可運行的軟件;客戶和開發(fā)人員在一起工作;以人為本;最重要的衡量開發(fā)過程的手段,是可工作的軟件;穩(wěn)定的開發(fā)速度;敏捷高效的設(shè)計;簡單有效;重視Teamwork;積極的調(diào)整。敏捷規(guī)則最高目標(biāo)是能持續(xù)地、及早地向客戶交付軟件;目錄1.1敏捷的起源1.2敏捷方法體系1敏捷開發(fā)簡介1.3敏捷宣言1.4為什么要敏捷?2敏捷系列3敏捷開發(fā)的誤區(qū)目錄1.1敏捷的起源1.2敏捷方法體系1敏捷開發(fā)簡介1.我們?yōu)槭裁葱枰艚蓓椖繛槭裁词??軟件工程試圖解決這些問題:對用戶需求理解得不清楚,甚至有錯誤;用戶需求變化;軟件很難維護或擴展;在項目后期階段發(fā)現(xiàn)很嚴(yán)重的設(shè)計缺陷;軟件質(zhì)量或性能不合格;Test-Build-Release過程的可操作性、可維護性很差;人員流動;

……為了規(guī)范化開發(fā)過程,引進傳統(tǒng)工程的概念(瀑布型);為了理解需求,提出原型法;為了提高設(shè)計開發(fā)的效率和擴展性,提出重用和面向?qū)ο蟮人枷?;為了讓開發(fā)過程更靈活,提出了開發(fā)框架的概念;為了降低風(fēng)險,提出了風(fēng)險評估、成本控制和增量開發(fā)等思想;我們?yōu)槭裁葱枰艚蓓椖繛槭裁词。寇浖こ淘噲D解決這我們?yōu)槭裁葱枰艚莶块T:

1)培養(yǎng)團隊合作精神,穩(wěn)定開發(fā)隊伍;

2)提高開發(fā)人員的水平;

3)提高項目成功率,降低開發(fā)成本,提升軟件開發(fā)效率項目經(jīng)理:

1)更好地和用戶溝通,更清晰地理解用戶需求;

2)更充分地使用資源,更科學(xué)地調(diào)配資源,更精確地掌握開發(fā)進度。系統(tǒng)分析設(shè)計:

1)設(shè)計更加完善;

2)更有效地更新知識,得到其他成員更多的尊重。程序員:

1)學(xué)習(xí)系統(tǒng)設(shè)計和項目管理;

2)提高學(xué)習(xí)和工作效率,受到重視,減少加班時間,工作更高效我們?yōu)槭裁葱枰艚莶块T:誰在用敏捷Fortune500公司中成功應(yīng)用XP的公司包括Ford,Daimler-Chrysler,F(xiàn)irstUnionNationalBank,IBM,HP等等。通信業(yè)NS,Ericsson,Alcatel等都號稱在轉(zhuǎn)向敏捷更多是小規(guī)模開發(fā)隊伍(小規(guī)模開發(fā)隊伍小規(guī)模項目)越來越多的公司開始使用敏捷開發(fā)過程誰在用敏捷Fortune500公司中成功應(yīng)用XP敏捷開發(fā)成功的因素知識和技能文化和氛圍自組織團隊開放的心態(tài)敏捷開發(fā)成功的因素知識和技能文化和氛圍自組織團隊開放的心態(tài)目錄2.1XP-eXtremePrograming2敏捷系列2.2SCRUM1敏捷開發(fā)簡介3敏捷開發(fā)的誤區(qū)目錄2.1XP-eXtremeProgramin敏捷實踐在敏捷的兩個門派:XP、Scrum中,整理歸納了很多可以用于協(xié)助軟件開發(fā)的實踐,后面統(tǒng)稱為敏捷實踐。敏捷實踐在敏捷的兩個門派:XP、Scrum中,整理歸納什么是XPXPisalightweightmethodologyforsmalltomediumsizedteamsdevelopingsoftwareinthefaceofvagueorrapidlychangingrequirements.

--KentBeck.KentBeck,WardCunningham,MartinFowler,RonJeffries于2000年創(chuàng)立XP是軟件開發(fā)過程中的紀(jì)律,它規(guī)定你:必須在編程前些測試,必須兩個人一起編程,必須遵守編程規(guī)范……。XP是把最好的實踐經(jīng)驗提取出來,形成了一個嶄新的開發(fā)方法。ExtremeProgramming什么是XPXPisalightweightm什么是XPExtremeProgramming極限的含義:軟件開發(fā)中的優(yōu)點發(fā)揮到極致(KentBeck).XP:給程序員提供了明確的方法,使得程序員盡管面對需求的改變,卻能夠從容應(yīng)對,即使著重變化發(fā)生在項目的后期,仍然能夠編出代碼。XP核心:溝通、簡明、反饋和勇氣XP重視溝通,客戶、開發(fā)人員、管理者共同組成團隊。XP是一個實踐系統(tǒng)13個實踐XP方法的貢獻以擁抱變化的思想,協(xié)作的團隊,簡單的規(guī)則等為原則的13個具體實踐是知名度最高的敏捷開發(fā)方法什么是XPExtremeProgramming極限XP的計劃/反饋循環(huán)XP的計劃/反饋循環(huán)XP開發(fā)工作流XP開發(fā)工作流XP的關(guān)鍵實踐:編程方法交付和管理小組實踐XP的關(guān)鍵實踐:編程方法交付和管理小組實踐XP的關(guān)鍵實踐結(jié)對編程測試驅(qū)動開發(fā)重構(gòu)簡單設(shè)計代碼集體所有編碼標(biāo)準(zhǔn)穩(wěn)定高速的步伐持續(xù)集成隱喻現(xiàn)場客戶完整的團隊小規(guī)模發(fā)布計劃游戲編程方法小組實踐交付和管理XP的關(guān)鍵實踐結(jié)對編程測試驅(qū)動開發(fā)重構(gòu)簡單設(shè)計代碼集交付和管理交付和管理交付和管理1:完整的團隊(WholeTeam)Product

Manager/Project

managerCoachTeam

leadDevelopersTrackerTester(On-Site)Customers所有的小組成員應(yīng)在同一個工作地點工作。成員中必須有一個用戶代表(On-siteUser),由他/她來提出需求,確定開發(fā)優(yōu)先級,把握開發(fā)的動向。通常還設(shè)一個教練(Coach)角色,來指導(dǎo)XP方法的實施及與外部的溝通協(xié)調(diào)等。小組每個成員都應(yīng)圍繞用戶代表,充分貢獻自己的技能。交付和管理1:完整的團隊(WholeTeam)Prod交付和管理2:計劃游戲(PlanningGame)增加/改變需求產(chǎn)生和評估UserStory發(fā)布計劃迭代計劃1迭代計劃2迭代計劃n…………實施迭代1實施迭代2實施迭代n…………1..N個發(fā)布探索階段計劃階段調(diào)整階段調(diào)整開發(fā)速度/內(nèi)容交付和管理2:計劃游戲(PlanningGame)交付和管理3:現(xiàn)場客戶(On-SiteCustomer)客戶是Team成員,在開發(fā)現(xiàn)場和開發(fā)人員一起工作。傳統(tǒng)的客戶任務(wù)一般是講解需求,運行驗收測試,接收發(fā)布的系統(tǒng)。XP新增加的任務(wù):

(1)寫UserStory(2)評估UserStory的商業(yè)優(yōu)先級

(3)為每個UserStory定義驗收測試

(4)計劃開發(fā)內(nèi)容

(5)調(diào)控開發(fā)過程

(6)建立商業(yè)模型,把隱藏在客戶需求下的原則傳授給開發(fā)人員

(8)程序員分擔(dān)任務(wù)的過程支解了對他們商業(yè)模型的理解

(9)參加設(shè)計過程

(10)和程序員一起找出Metaphor,導(dǎo)引設(shè)計方向

(11)在Metaphor的幫助下,定義更有效更實際的功能測試,給程序員的設(shè)計制定了規(guī)范交付和管理3:現(xiàn)場客戶(On-SiteCustome交付和管理4:小規(guī)模發(fā)布降低開發(fā)風(fēng)險。保證客戶有足夠的依據(jù)調(diào)控開發(fā)過程(增加、刪除或改變UserStory)??蛻羰褂冒l(fā)布的系統(tǒng),可以保證頻繁地反饋和交流。發(fā)布過程應(yīng)該盡可能地自動化、規(guī)范化。不斷地發(fā)布可用的系統(tǒng)可以告訴客戶你在做正確的事情。低風(fēng)險智能化適應(yīng)調(diào)整頻繁交流知會客戶頻繁發(fā)布經(jīng)過驗證隨著開發(fā)的推進,發(fā)布越來越頻繁。所有的發(fā)布都要經(jīng)過功能測試。小規(guī)模發(fā)布交付和管理4:小規(guī)模發(fā)布降低開發(fā)風(fēng)險。保證客戶小組實踐小組實踐小組實踐1:持續(xù)集成(Continuousintegration)持續(xù)集成指不斷地把完成的功能模塊整合在一起。目的在于不斷獲得客戶反饋以及盡早發(fā)現(xiàn)BUG。隨時整合,越頻繁越好;集成及測試過程的自動化程度越高越好?!癆Testaday,takesthebugsaway”---Siemens失敗通過時間功能測試小組實踐1:持續(xù)集成(Continuousinte小組實踐1:持續(xù)集成(Continuousintegration)1自動化編譯質(zhì)量度量23自動化測試持續(xù)反饋小組實踐1:持續(xù)集成(Continuousinteg團隊實踐2:隱喻(SystemMetaphor)“Thesystemmetaphorisastorythateveryone-customers,programmers,andmanagers-

cantellabouthowthesystemworks.”—KentBeckTeam將Domain/Sub-DomainModel,Design/Sub-DesignModel以及一些關(guān)鍵概念等等抽象化為比喻。通過這些比喻,加強客戶和程序員之間的相互理解,消化積累知識,指導(dǎo)設(shè)計開發(fā)的方向。例:Market—發(fā)布/瀏覽,價格洽談,生成和履行合同;String,Tree,Package,Chartroom,Spider,Robot……;電影后期制作—>郵遞—>電影院播放電影。團隊實踐2:隱喻(SystemMetaphor)小組實踐2:隱喻(SystemMetaphor)Metaphor的形成過程,是客戶建立并抽象商業(yè)模型和商業(yè)概念的過程,是程序員建立并抽象設(shè)計模型和設(shè)計概念的過程。Metaphor使客戶和程序員用共通的模型和語言進行交流—“OneTeam,onelanguage”。Metaphor可以幫助減少“知識泄露”和“支解知識”。Metaphor是設(shè)計過程的航標(biāo)——真正靈活有效的設(shè)計是針對商業(yè)原則的設(shè)計,而不是針對商業(yè)原則表現(xiàn)形式的設(shè)計,更不是脫離商業(yè)需求目的的學(xué)術(shù)設(shè)計。隨著開發(fā)的繼續(xù),Team會找到更好的Metaphor。這是知識細化、深化的結(jié)果,是“持續(xù)學(xué)習(xí)”(Continuouslearning)的過程;是對商業(yè)模型和設(shè)計模型的持續(xù)重構(gòu)。小組實踐2:隱喻(SystemMetaphor)M小組實踐3:編碼標(biāo)準(zhǔn)(Codingstandards)編碼標(biāo)準(zhǔn)的目的:

防止團隊被一些無關(guān)緊要的愚蠢爭論搞得不知所措。不要預(yù)先花費太多時間目標(biāo)應(yīng)該是團隊中沒有人辨認(rèn)各自的代碼以團隊為單位對某一標(biāo)準(zhǔn)達成協(xié)議,然后遵守這一標(biāo)準(zhǔn)不是事無巨細的規(guī)則列表,而是確保代碼可交流的指導(dǎo)方針七個原則編碼標(biāo)準(zhǔn)開始時應(yīng)很簡單,然后根據(jù)團隊經(jīng)驗逐步進化創(chuàng)建能夠工作的最簡單標(biāo)準(zhǔn),然后逐步發(fā)展只制訂適合本團隊的小組實踐3:編碼標(biāo)準(zhǔn)(Codingstandards小組實踐4:集體擁有代碼“我們”的代碼,而不是“我”的代碼。任何人可以改動任何一段代碼,但改動后的代碼必須通過所有相關(guān)的測試。簡單設(shè)計,編碼標(biāo)準(zhǔn)和結(jié)對編程,使閱讀和修改Team內(nèi)其他人的代碼變得實際可行。思考:同公司信息安全可能有沖突?在一定范圍內(nèi)進行集體擁有代碼還是可行的小組實踐4:集體擁有代碼“我們”的代碼,而不是“我”小組實踐5:穩(wěn)定高速的步伐(40-HourWeek)“每天早晨都感到有活力有激情,每天晚上都感到疲憊而滿足?!?/p>

---KentBeck8:00AMStandupMeetingPairUpTester自我測試編碼重構(gòu)集成并納入CI驗證5:30PM結(jié)束測試用例小組實踐5:穩(wěn)定高速的步伐(40-HourWeek編程方法編程方法編程方法1:測試驅(qū)動開發(fā)(TDD)失敗通過時間單元測試100%

通過設(shè)計先寫單元測試重構(gòu)運行單元測試編程發(fā)現(xiàn)BUG集成先寫功能測試UserStory運行功能測試編程方法1:測試驅(qū)動開發(fā)(TDD)失敗通過時間單元測試編程方法2:重構(gòu)(Refactoring)減少重復(fù)設(shè)計,優(yōu)化設(shè)計結(jié)構(gòu),提高技術(shù)上的重用性和可擴展性。重構(gòu)和編程前的計劃型設(shè)計(PlannedDesign)結(jié)合,使XP的簡單設(shè)計可行有效。XP提倡毫不留情的重構(gòu)(Refactormercilessly)。任何人可以重構(gòu)任何代碼,前提是重構(gòu)后的代碼一定要通過100%測試單元測試后才能被Check-in??梢愿鶕?jù)需要,將一個迭代的全部目標(biāo)定為重構(gòu)。不要太在意什么是最簡單的設(shè)計——愿意在最后重構(gòu),比知道如何做簡單的設(shè)計重要得多。在Metaphor指引下的重構(gòu),是為商業(yè)模型服務(wù)的。不要把重構(gòu)變成不斷的盲目精簡代碼。編程方法2:重構(gòu)(Refactoring)減少重復(fù)編程方法3:簡單設(shè)計簡單設(shè)計Dothesimplestthingthatcouldpossiblywork;Youaren’tgoingtoneedit如果沒有它和眾多慣例規(guī)則之間的耦合,XP的演化設(shè)計就蛻化成CODE-FIX。XP的演化設(shè)計是在Up-frontdesign和Refactoring之間找到新的平衡。需求分析設(shè)計編碼測試集成使用和維護PlannedDesignXPDesign變化導(dǎo)致的成本增加軟件研發(fā)異動曲線編程方法3:簡單設(shè)計簡單設(shè)計Dothesi編程方法3:簡單設(shè)計標(biāo)準(zhǔn)(依重要性):通過所有測試,可讀性高的代碼,避免重復(fù),最少數(shù)量的類別或方法。SystemMetaphor給設(shè)計提供了指引,加強Team對設(shè)計的理解;第一個迭代搭建了基本的系統(tǒng)框架。以后的迭代過程,是在反饋和編程的基礎(chǔ)上做交互式設(shè)計,減少了設(shè)計的投機性。迭代過程中的CRC卡幫助Team交流設(shè)計思想,簡化了設(shè)計文檔。構(gòu)對設(shè)計進行優(yōu)化。XP認(rèn)為設(shè)計非常重要,因此應(yīng)該是一個持續(xù)的事務(wù)。我們總是先嘗試使用能夠工作的最簡單的設(shè)計,然后隨著現(xiàn)實的不斷顯現(xiàn)來更改它。

對簡單設(shè)計的需求并不是說所有設(shè)計都很小,也不表示它們是無足輕重的。它們只不過需要盡可能簡單,但是仍能工作。編程方法3:簡單設(shè)計標(biāo)準(zhǔn)(依重要性):通編程方法4:結(jié)對編程(PairProgramming)所有設(shè)計決策都牽涉到至少兩個人。至少有兩個人熟悉系統(tǒng)的每一部分。幾乎不可能出現(xiàn)兩個人同時疏忽測試或其它任務(wù)。改變各對的組合在可以在團隊范圍內(nèi)傳播知識。代碼總是由至少一人復(fù)查。結(jié)對的編程比單獨編程更有效。XP中最有爭議的實踐之一編程方法4:結(jié)對編程(PairProgrammi目錄2.1XP-eXtremePrograming2敏捷系列2.2SCRUM1敏捷開發(fā)簡介3敏捷與CMM4敏捷開發(fā)的誤區(qū)目錄2.1XP-eXtremePrograminSCRUMSCRUM來源于橄欖球運動,指:“在橄欖球比賽中,雙方前鋒站在一起緊密相連,當(dāng)球在他們之間投擲時他們奮力爭球?!盨crum提供了一種經(jīng)驗方法,它使得團隊成員能夠獨立地,集中地在創(chuàng)造性的環(huán)境下工作。它發(fā)現(xiàn)了軟件工程的社會意義。這一過程是迅速,有適應(yīng)性,自組織的,它代表了從順序開發(fā)過程以來的重大變化。(KenSchwaber)Scrum是一種靈活的軟件管理過程,它可以幫助駕馭迭代、遞增的軟件開發(fā)過程。Scrum于1995年提出,并在2001年同其他方法論一起組成“敏捷聯(lián)盟(AgileAlliance)”。Scrum這個輕量的過程可以作為包裝器,也就是說你可以把Scrum與其它靈活的過程框架組合起來。SCRUMSCRUM來源于橄欖球運動,指:“在橄欖球SCRUM的過程圖SCRUM的過程圖SCRUM實踐1.Scrum團隊:5-7個人的小項目團隊,團隊的負責(zé)人可能擔(dān)負起ScrumMaster的角色。

2.Backlog:急待完成的一系列任務(wù),包括:未細化的產(chǎn)品功能要求、Bugs、缺陷、用戶提出的改進、具競爭力的功能及技術(shù)升級等,按優(yōu)先級定義出來,這些任務(wù)可能不是完整的,甚至可能隨時會更改或添加。

3.Sprint(沖刺):通常為30天的迭代時間,把Backlog中的每一項安排在Sprint中,由團隊估算出所需要的時間(按小時記)。每一次Sprint之后,一定要有可以交付使用的功能。

4.Scrum會

溫馨提示

  • 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

提交評論