[轉]敏捷開發之Scrum掃盲,及敏捷開發中XP與SCRUM的區別

?

敏捷開發之Scrum掃盲篇

現在敏捷開發是越來越火了,人人都在談敏捷,人人都在學習Scrum和XP…

為了不落后他人,于是我也開始學習Scrum,今天主要是對我最近閱讀的相關資料,根據自己的理解,用自己的話來講述Scrum中的各個環節,主要目的有兩個,一個是進行知識的總結,另外一個是覺得網上很多學習資料的講述方式讓初學者不太容易理解;所以我決定寫一篇掃盲性的博文,同時試著也與園內的朋友一起分享交流一下,希望對初學者有幫助。

什么是敏捷開發?

敏捷開發(Agile Development)是一種以人為核心、迭代、循序漸進的開發方法。

怎么理解呢?首先,我們要理解它不是一門技術,它是一種開發方法,也就是一種軟件開發的流程,它會指導我們用規定的環節去一步一步完成項目的開發;而這種開發方式的主要驅動核心是人;它采用的是迭代式開發;

為什么說是以人為核心?

我們大部分人都學過瀑布開發模型,它是以文檔為驅動的,為什么呢?因為在瀑布的整個開發過程中,要寫大量的文檔,把需求文檔寫出來后,開發人員都是根據文檔進行開發的,一切以文檔為依據;而敏捷開發它只寫有必要的文檔,或盡量少寫文檔,敏捷開發注重的是人與人之間,面對面的交流,所以它強調以人為核心。

什么是迭代?

迭代是指把一個復雜且開發周期很長的開發任務,分解為很多小周期可完成的任務,這樣的一個周期就是一次迭代的過程;同時每一次迭代都可以生產或開發出一個可以交付的軟件產品。

關于Scrum和XP

前面說了敏捷它是一種指導思想或開發方式,但是它沒有明確告訴我們到底采用什么樣的流程進行開發,而Scrum和XP就是敏捷開發的具體方式了,你可以采用Scrum方式也可以采用XP方式;Scrum和XP的區別是,Scrum偏重于過程,XP則偏重于實踐,但是實際中,兩者是結合一起應用的,這里我主要講Scrum。

什么是Scrum?

Scrum的英文意思是橄欖球運動的一個專業術語,表示“爭球”的動作;把一個開發流程的名字取名為Scrum,我想你一定能想象出你的開發團隊在開發一個項目時,大家像打橄欖球一樣迅速、富有戰斗激情、人人你爭我搶地完成它,你一定會感到非常興奮的。

而Scrum就是這樣的一個開發流程,運用該流程,你就能看到你團隊高效的工作。

【Scrum開發流程中的三大角色】

產品負責人(Product Owner)

主要負責確定產品的功能和達到要求的標準,指定軟件的發布日期和交付的內容,同時有權力接受或拒絕開發團隊的工作成果。

流程管理員(Scrum Master)

主要負責整個Scrum流程在項目中的順利實施和進行,以及清除擋在客戶和開發工作之間的溝通障礙,使得客戶可以直接驅動開發。

開發團隊(Scrum Team)

主要負責軟件產品在Scrum規定流程下進行開發工作,人數控制在5~10人左右,每個成員可能負責不同的技術方面,但要求每成員必須要有很強的自我管理能力,同時具有一定的表達能力;成員可以采用任何工作方式,只要能達到Sprint的目標。

這里寫圖片描述

下面,我們開始講具體實施流程,但是在講之前,我還要對一個英文單詞進行講解。

什么是Sprint?

Sprint是短距離賽跑的意思,這里面指的是一次迭代,而一次迭代的周期是1個月時間(即4個星期),也就是我們要把一次迭代的開發內容以最快的速度完成它,這個過程我們稱它為Sprint。

如何進行Scrum開發?

1、我們首先需要確定一個Product Backlog(按優先順序排列的一個產品需求列表),這個是由Product Owner 負責的;

2、Scrum Team根據Product Backlog列表,做工作量的預估和安排;

3、有了Product Backlog列表,我們需要通過 Sprint Planning Meeting(Sprint計劃會議) 來從中挑選出一個Story作為本次迭代完成的目標,這個目標的時間周期是1~4個星期,然后把這個Story進行細化,形成一個Sprint Backlog;

4、Sprint Backlog是由Scrum Team去完成的,每個成員根據Sprint Backlog再細化成更小的任務(細到每個任務的工作量在2天內能完成);

5、在Scrum Team完成計劃會議上選出的Sprint Backlog過程中,需要進行 Daily Scrum Meeting(每日站立會議),每次會議控制在15分鐘左右,每個人都必須發言,并且要向所有成員當面匯報你昨天完成了什么,并且向所有成員承諾你今天要完成什么,同時遇到不能解決的問題也可以提出,每個人回答完成后,要走到黑板前更新自己的 Sprint burn down(Sprint燃盡圖);

6、做到每日集成,也就是每天都要有一個可以成功編譯、并且可以演示的版本;很多人可能還沒有用過自動化的每日集成,其實TFS就有這個功能,它可以支持每次有成員進行簽入操作的時候,在服務器上自動獲取最新版本,然后在服務器中編譯,如果通過則馬上再執行單元測試代碼,如果也全部通過,則將該版本發布,這時一次正式的簽入操作才保存到TFS中,中間有任何失敗,都會用郵件通知項目管理人員;

7、當一個Story完成,也就是Sprint Backlog被完成,也就表示一次Sprint完成,這時,我們要進行 Srpint Review Meeting(演示會議),也稱為評審會議,產品負責人和客戶都要參加(最好本公司老板也參加),每一個Scrum Team的成員都要向他們演示自己完成的軟件產品(這個會議非常重要,一定不能取消);

8、最后就是 Sprint Retrospective Meeting(回顧會議),也稱為總結會議,以輪流發言方式進行,每個人都要發言,總結并討論改進的地方,放入下一輪Sprint的產品需求中;

下面是運用Scrum開發流程中的一些場景圖:
這里寫圖片描述
上圖是一個 Product Backlog 的示例。
這里寫圖片描述
上圖就是每日的站立會議了,參會人員可以隨意姿勢站立,任務看板要保證讓每個人看到,當每個人發言完后,要走到任務版前更新自己的燃盡圖。
這里寫圖片描述
任務看版包含 未完成、正在做、已完成 的工作狀態,假設你今天把一個未完成的工作已經完成,那么你要把小卡片從未完成區域貼到已完成區域。
這里寫圖片描述
每個人的工作進度和完成情況都是公開的,如果有一個人的工作任務在某一個位置放了好幾天,大家都能發現他的工作進度出現了什么問題(成員人數最好是5~7個,這樣每人可以使用一種專用顏色的標簽紙,一眼就可以從任務版看出誰的工作進度快,誰的工作進度慢)
這里寫圖片描述
上圖可不是撲克牌,它是計劃紙牌,它的作用是防止項目在開發過程中,被某些人所領導。

怎么用的呢?比如A程序員開發一個功能,需要5個小時,B程序員認為只需要半小時,那他們各自取相應的牌,藏在手中,最后攤牌,如果時間差距很大,那么A和B就可以討論A為什么要5個小時…

敏捷開發中XP與SCRUM的區別

區別之一: 迭代長度的不同

XP的一個Sprint的迭代長度大致為1~2周, 而Scrum的迭代長度一般為 2~ 4周.

區別之二: 在迭代中, 是否允許修改需求

XP在一個迭代中,如果一個User Story(用戶素材, 也就是一個需求)還沒有實現, 則可以考慮用另外的需求將其替換,替換的原則是需求實現的時間量是相等的。 而Scrum是不允許這樣做的,一旦迭代開工會完畢, 任何需求都不允許添加進來,并有Scrum Master嚴格把關,不允許開發團隊受到干擾

區別之三: 在迭代中,User Story是否嚴格按照優先級別來實現

XP是務必要遵守優先級別的。 但Scrum在這點做得很靈活, 可以不按照優先級別來做,Scrum這樣處理的理由是:如果優先問題的解決者,由于其它事情耽擱,不能認領任務,那么整個進度就耽誤了。 另外一個原因是,如果按優先級排序的User Story #6和#10,雖然#6優先級高,但是如果#6的實現要依賴于#10,則不得不優先做#10.

區別之四:軟件的實施過程中,是否采用嚴格的工程方法,保證進度或者質量

Scrum沒有對軟件的整個實施過程開出工程實踐的處方。要求開發者自覺保證,但XP對整個流程方法定義非常嚴格,規定需要采用TDD, 自動測試, 結對編程,簡單設計,重構等約束團隊的行為。因此,原作者認為,這點上,XP的做法值得認同的,但是卻把敏捷帶入了一個讓人困惑的矛盾, 因為xp的理念,結合敏捷模式,表達給團隊的信息是“你是一個完全自我管理的組織, 但你必須要實現TDD, 結對編程, …等等”

不難發現,這四個區別顯見的是: Scrum非常突出Self-Orgnization, XP注重強有力的工程實踐約束

作者建議, 在管理模式上啟用Scrum, 而在實踐中,創造一個適合自己項目組的XP

筆者加
另外推薦大家研究一下scrum的guide,有簡體中文版,在官網可以下到
附上scrum官網:https://www.scrum.org/


---------------------
作者:Storm啊
來源:CSDN
原文:https://blog.csdn.net/duzilonglove/article/details/79742239
版權聲明:本文為作者原創文章,轉載請附上博文鏈接!
內容解析By:CSDN,CNBLOG博客文章一鍵轉載插件

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/285045.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/285045.shtml
英文地址,請注明出處:http://en.pswp.cn/news/285045.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C語言試題175之實現選擇排序算法

??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ??推薦一款刷算法、筆試、面經、拿大公司offer神器?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 題目:實現選擇…

最流行的 .NET 反編譯工具合集

編譯和反編譯 .NET 中的編譯是把開發人員寫的 C# 代碼轉化為計算機可理解的代碼的過程,也就是中間語言代碼(IL代碼)。在這個過程中,C# 源代碼被轉換為可執行文件(exe或者dll 文件)。反編譯則和編譯相反&am…

【ArcGIS Pro微課1000例】0009:ArcGIS Pro地理配準完整教程(建議收藏)

掃描得到的地圖數據通常不包含空間參考信息,航片和衛片的位置精度也往往較低,這就需要通過具有較高位置精度的控制點將這些數據匹配到用戶指定的地理坐標系中,這個過程稱為地理配準。 地理配準即就是通過建立數學函數將柵格數據集(掃描后的圖像)中各點的位置與標準空間參…

Intent跳轉傳list集合

先把List<>改為ArrayList<> ArrayList<Good> listnew ArrayList<Good>(); Intent intent new Intent(MainActivity.this,InfoActivity.class); intent.putExtra("list", list); startActivity(intent); Intent intent get…

Linux中的selinux

#1.selinux內核級加強型防火墻1&#xff09;針對文件&#xff0c;會對系統中每個文件添加安全上下文&#xff08;context&#xff09;2)針對進程&#xff0c;會對系統中的每個進程添加安全上下文&#xff08;context&#xff09;3&#xff09;會在系統服務上設定sebool開關4&am…

C語言試題176之實現歸并排序算法

??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ??推薦一款刷算法、筆試、面經、拿大公司offer神器?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 題目:實現歸并…

三款國產計算機日常辦公體驗對比

近年來&#xff0c;信創事業開展的如火如荼&#xff0c;多款CPU和操作系統均在機關單位和央企批量應用。目前&#xff0c;信創電腦主要應用場景是日常辦公&#xff0c;特別是對機關單位而言&#xff0c;文檔、表格、PPT、PDF、瀏覽器等軟件堪稱辦公必備。下面&#xff0c;我們就…

[轉]Flask --- 框架快速入門

From&#xff1a;http://docs.jinkan.org/docs/flask/quickstart.html Flask 用戶指南&#xff1a;http://docs.jinkan.org/docs/flask/index.html w3cschool.cn 的 Flask 教程&#xff1a;https://www.w3cschool.cn/flask/ 《Flask Web開發&#xff1a;基于Python的Web應用…

【ArcGIS Pro微課1000例】0010:ArcGIS Pro導入ArcMap樣式符號庫——以國土三調樣式為例

樣式是用于存儲符號、顏色、配色方案、標注放置和布局項目的容器。 它們可以提升地圖、場景和布局的一致性和標準化程度。 您創作地圖、場景和布局時所使用的符號庫和顏色選取器由存儲在樣式中的項目填充。 ArcMap、ArcGlobe 或 ArcScene 的桌面樣式不能直接在 ArcGIS Pro 中使…

Windows WMIC命令使用詳解(附實例)

第一次執行WMIC命令時&#xff0c;Windows首先要安裝WMIC&#xff0c;然后顯示出WMIC的命令行提示符。在WMIC命令行提示符上&#xff0c;命令以交互的方式執行執行“wmic”命令啟動WMIC命令行環境。這個命令可以在XP或 .NET Server的標準命令行解釋器&#xff08;cmd.exe&#…

MAC usb啟動盤制作

1.從App Store 下載OS 2.磁盤工具格式化磁盤默認即可 3. 為啥截圖&#xff0c;因為有些是不一樣的&#xff0c;建議使用 Tab建&#xff0c; 未命名則是你移動U盤命名的名稱。 4.完成&#xff1a;所有的命令完成的話&#xff0c; 終端界面中會出現 Erasing Disk: 0%...10%...…

【ArcGIS Pro微課1000例】0011:ArcGIS Pro范圍內匯總工具的巧妙使用——以甘肅省各地區內河流總長度計算為例

文章目錄 問題描述范圍內匯總工具介紹# 案例實現問題描述 統計甘肅省各個地區界內河流的總長度,如下圖所示。 范圍內匯總工具介紹 在ArcMap中可以實現河流總長度的統計,具體操作可以參考:【ArcGIS風暴】ArcGIS獲取一個省各個地區界內的河流的總長度–以甘肅省為例,在ArcG…

C語言試題177之實現二分查找算法,折半查找算法

??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ??推薦一款刷算法、筆試、面經、拿大公司offer神器?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 題目: 本實例…

力扣(leetcode)第20題有效的括號(Python)

20.有效的括號 題目鏈接&#xff1a;20.有效的括號 給定一個只包括 ‘(’&#xff0c;‘)’&#xff0c;‘{’&#xff0c;‘}’&#xff0c;‘[’&#xff0c;‘]’ 的字符串 s &#xff0c;判斷字符串是否有效。 有效字符串需滿足&#xff1a; 左括號必須用相同類型的右括…

30分鐘掌握ES6/ES2015核心內容

2019獨角獸企業重金招聘Python工程師標準>>> ECMAScript 6&#xff08;以下簡稱ES6&#xff09;是JavaScript語言的下一代標準。因為當前版本的ES6是在2015年發布的&#xff0c;所以又稱ECMAScript 2015。 也就是說&#xff0c;ES6就是ES2015。 雖然目前并不是所有瀏…

Windows 11 22H2 22621.290 和 22622.290 推送

面向 Beta 頻道的 Windows 預覽體驗成員&#xff0c;微軟現已推送 Windows 11 預覽版 Build 22621.290 和 22622.290。微軟宣布 Beta 頻道Windows 11 預覽版啟用全新體驗&#xff0c;分為兩組進行測試。通過兩組 Windows 預覽體驗成員的使用數據和反饋&#xff0c;以更好的測試…

js數組中的find、filter、sort

準備測試數據 var data [{name:"Jackie",id: "122"}, {name:"Tony2",id: "121"}, {name:"Tony",id: "121"}]; find 查找 返回第一個符合條件的結果 data.find(user>user.id121)--結果 {name: "Tony2&q…

【ArcGIS Pro微課1000例】0012:ArcGIS Pro屬性表中文亂碼完美解決辦法匯總

如圖所示,安裝完ArcGIS Pro后,由于計算機系統和應用軟件字符編碼的問題,導致加載矢量數據并打開屬性表后,會發現中文字段出現了亂碼。 屬性表中文亂碼: 屬性表中文正常: 事實上,ArcMap中也會出現中文屬性表亂碼的情況。 亂碼的出現會給學習和工作帶來很大不便,因此本…

C語言試題178之實現分塊查找算法,索引順序查找算法

??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ??推薦一款刷算法、筆試、面經、拿大公司offer神器?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 題目: 例如,…

dubbo中的Filter順序是如何確定的

2019獨角獸企業重金招聘Python工程師標準>>> 服務提供方的過濾器被調用順序&#xff1a; EchoFilter->ClassLoaderFilter->GenericFilter->ContextFilter->(這4個是在代碼中指定的) ExceptionFilter-> TimeoutFilter ->MonitorFilter-> TraceF…