jasmine214--love

          只有當你的內心總是充滿快樂、美好的愿望和寧靜時,你才能擁有強壯的體魄和明朗、快樂或者寧靜的面容。
          posts - 731, comments - 60, trackbacks - 0, articles - 0

          Scrum敏捷開發掃盲篇

          Posted on 2011-04-01 16:16 幻海藍夢 閱讀(958) 評論(0)  編輯  收藏 所屬分類: 項目管理配置管理

          現在敏捷開發是越來越火了,人人都在談敏捷,人人都在學習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的目標。

           

           

          Scrum流程圖

           

          //------------------------

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

          什么是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開發流程中的一些場景圖:



           

          原文:http://www.congci.com/item/scrumarticle

          主站蜘蛛池模板: 溧水县| 桓台县| 夏津县| 随州市| 孟州市| 永嘉县| 古交市| 广汉市| 宜兰市| 吉林省| 海安县| 丰县| 定南县| 炎陵县| 千阳县| 惠东县| 会同县| 黄山市| 于田县| 阿瓦提县| 察哈| 广水市| 孟村| 新丰县| 五寨县| 旺苍县| 海伦市| 个旧市| 巨鹿县| 赣州市| 无极县| 池州市| 南部县| 杂多县| 霍林郭勒市| 修武县| 吉木乃县| 尼勒克县| 岢岚县| 馆陶县| 镇巴县|