嚴格的說,我對于傳統測試沒有太多經驗。從06年進入游戲測試行業開始,我所在的團隊就在嘗試向敏捷方式的轉變,成功敏捷后至今,已一年有余。而這近一年半的經歷給了我很大的沖擊,讓我每天都對我的工作有新的認識和體會,這和以前在學院里獲得的對于軟件開發和軟件測試的理解有很大的不同。
敏捷背景敏捷宣言敏捷方法VS瀑布模型什么是scrum Scrum框架Scrum儀式Scrum物件精益平臺的敏捷實踐Scrum擴展話題軟件開發的趨勢全球化(Globalize)快速交付(FastDelivery)高度客制化(Customize)高質量(HighQuality)目錄敏捷背景敏捷宣言敏捷方法VS瀑布模型什么是scrumScrum框架Scrum儀式Scrum物件精益平臺的敏捷實踐Scrum擴展話題敏捷價值觀之敏捷宣言重于個體與交互過程和工具重于可用的軟件完備的文檔重于客戶協作合同談判重于響應變化遵循計劃敏捷開發的核心思想是:以人為本,適應變化敏捷開發的12個原則-1我們最優先要做的是通過盡早的、持續的交付有價值的軟件來使客戶滿意。
什么是敏捷開發?敏捷開發(Agile Development)是一種以人為核心、迭代、循序漸進的開發方法。怎么理解呢?首先,我們要理解它不是一門技術,它是一種開發方法,也就是一種軟件開發的流程,它會指導我們用規定的環節去一步一步完成項目的開發;而這種開發方式的主要驅動核心是人;它采用的是迭代式開發;為什么說是以人為核心?我們大部分人都學過瀑布開發模型,它是以文檔為驅動的,為什么呢?因為在瀑布的整個開發過程中,要寫大量的文檔,把需求文檔寫出來后,開發人員都是根據文檔進行開發的,一切以文檔為依據;而敏捷開發它只寫有必要的文檔,或盡量少寫文檔,敏捷開發注重的是人與人之間,面對面的交流,所以它強調以人為核心。
軟件開發過程——Scrum Scrum是一種迭代式增量軟件開發過程,通常用于敏捷軟件開發。Scrum在英語的意思是橄欖球里的爭球。雖然Scrum是為管理軟件開發項目而開發的,它同樣可以用于運行軟件維護團隊,或者作為計劃管理方法:ScrumofScrums。Scrum定義了許多角色,根據豬和雞的笑話分為兩組,豬和雞一天,一頭豬和一只雞在路上散步,雞看了一下豬說,“嗨,我們合伙開一家餐館怎么樣?”。
什么是Scrum?Scrum是一種迭代式增量軟件開發過程,通常用于敏捷軟件開發。Scrum在英語的意思是橄欖球里的爭球。雖然Scrum是為管理軟件開發項目而開發的,它同樣可以用于運行軟件維護團隊,或者作為計劃管理方法:Scrum of Scrums。
Introduction to Agile Scrum
Agile簡介Agile(即:敏捷方法)是一套與傳統軟件工程顯著不同的價值觀和原則,是包括Scrum和XP(Extreme Programming,極限編程)在內的所有敏捷過程或方法所共同具有的某些性質和特征,而不是某一個具體的過程、方法論或做法。Agile橫空出世傳統計劃驅動的開發方法不僅沒有獲得良好的效果,并且由于強調過分過程控制,所以在開發過程中要產生大量的文檔,以跟蹤,檢查設計各階段的進度,設計狀態,因此給程序員,管理者帶來很多額外的工作量,這也是計劃驅動方法一直為人詬病的地方,因此被稱為重量級方法。
在Visual Studio Team Foundation Server 2012進行敏捷項目管理
Scrum 是一個用于運行項目的框架,現已被數十家公司數百個項目開發中應用,適用于需求難以預測的復雜商務應用產品的開發。它定義一組活動,這些活動可幫助您的團隊更快地向客戶交付更多價值。利用這些活動,客戶有機會在您的團隊開展工作時檢查、指導和影響團隊的工作。<br> 此方法不會嘗試在項目開始時定義所有內容。相反,您的團隊以短小迭代(也稱為“沖刺 (sprint)”)為單位進行工作,并隨團隊工作的進展不斷改進計劃。
我們希望客戶、管理者和開發人員緊密地工作在一起,以便彼此知曉對方所面臨的問題,并共同去解決這些問題。XP團隊中的客戶是指定義產品的特性并排列這些特性優先級的人或者團體。最好的情況是客戶和開發人員在同一個房間中工作,次一點的情況是客戶和開發人員之間的距離在100米內。如果確實無法和客戶在一起工作,那么就去尋找能夠在一起工作、愿意并能夠代替真正客戶的人。
Scrum屬于敏捷開發范疇的一種開發流程,以英式橄欖球爭球隊形(Scrum)為名,Scrum將軟件開發團隊比作橄欖球隊,有明確的更高目標,具有高度自主權。緊密地溝通合作,以高度彈性解決各種挑戰,確保每天、每個階段都朝向目標有明確的推進。
主要內容第一節 敏捷方法的含義第二節 軟件開發過程的比較第三節 極限編程(eXtreme Programming,XP)簡介準則法則活動實踐討論應用實例常見問題第一節 敏捷方法的含義敏捷:輕巧、機敏、迅捷、靈活、活力、高效……敏捷開發是一種面臨迅速變化的需求快速開發軟件的能力敏捷過程很容易適應變化并迅速做出自我調整,在保證質 量的前提下,做到文檔、度量適度適用于各類軟件企業敏捷方法產生的背景現代軟件的特點。
在《第一次把事情做對》中講到的三種做事的方式:明明只是應付變化,是事后挽救型的:出了問題才去滅火;聰聰想到了變化,但只是為變化而變化,是一邊滅火一邊想著防火;慧慧則是使自己處于應變的狀態之中,隨時準備變化,是一邊認真地防火,一邊隨時準備著滅火。最終慧慧以最小的代價達到了目標。
回顧這幾年的從業歷程,我發現:迭代開發與軟件重構已成為軟件開發的一種常態。很多時候在有一些模糊的想法時,可能就開始了開發工作。這種做法顯然與傳統的結構化方法有很大區別,這里面也許有分析設計上的不完善,然而更多時候是為了盡快做出原型,以與用戶盡早進行溝通交流。迭代開發就很適用于這種需求。
簡單的說,敏捷開發是一種以人為核心、迭代、循序漸進的開發方法。在敏捷開發中,軟件項目的構建被切分成多個子項目,各個子項目的成果都經過測試,具備集成和可運行的特征。換言之,就是把一個大項目分為多個相互聯系,但也可獨立運行的小項目,并分別完成,在此過程中軟件一直處于可使用狀態。 敏捷開發是由一些業界專家針對一些企業現狀提出了一些讓軟件開發團隊具有快速工作、響應變化能力的價值觀和原則,并于2001初成立了敏捷聯盟。他們正在通過親身實踐以及幫助他人實踐,揭示更好的軟件開發方法。
單一主干,結對編程。
1、STORY分解。2、STORY澄清。3、任務分解。4、可視化管理。
1、迭代啟動會議。2、每日例會。3、迭代演示。4迭代回顧會議。
1、敏捷理念。2、敏捷的實踐。
敏捷代表著有效和靈活。我們稱那些輕型的、有效的方法為敏捷方法。在重型方法中,我們在一些不必要、重復的中間環節上浪費了太多的精力,而敏捷則避免了這種浪費。我們的文章將會重點的討論敏捷(Agile)方法論的思想,敏捷這個名字的前身就是輕型。