敏捷是一種指導思想、框架和開發(fā)方法,以人為核心,迭代,循序漸進的開發(fā)法
個體交互 > 過程與工具
可以工作的軟件 > 詳盡的文檔
客戶寫作 > 合同談判
相應(yīng)變化 > 遵循計劃
瀑布:以文檔為驅(qū)動
敏捷:必要文檔,面對面交流
迭代:把復雜且開發(fā)周期很長的任務(wù),分解成很多小周期可完成的任務(wù),一個周期就是一次迭代。每次迭代都有一個可交付的軟件產(chǎn)品。
Scrum:偏重過程
XP:偏重實踐
Scrum:橄欖球運動術(shù)語,“爭球”,暗示開發(fā)團隊像打橄欖球一樣迅速,富有激情,人人你爭我搶的完成它。
角色
Product Owner 產(chǎn)品負責人
負責確定產(chǎn)品的功能和達到要求的標準,指定軟件的發(fā)布日期和交付內(nèi)容,有權(quán)利接受或拒絕開發(fā)團隊的工作成果。
Scrum Master 流程管理員
負責整個Scrum流程在項目中的順利實施和進行,清除擋在客戶和開發(fā)工作之間的溝通障礙,使得客戶可以直接驅(qū)動開發(fā)。
Scrum Team 開發(fā)團隊
5-10人,很強的自我管理能力,一定的表達能力。
Scrum 流程圖
Product Backlog ->
sprint backlog ->
sprint ( daily meetings - sprint burn down) -> release (sprint review meeting)
Sprint: 短距離賽跑,此處指一次迭代過程,一次迭代的周期是4周,要把一次迭代的開發(fā)內(nèi)容以最快的速度完成。
- 確定product backlog,按優(yōu)先順序排列的一個產(chǎn)品需求列表——PO
- Scrum Team 根據(jù)Product Backlog做工作量的預估和安排
*計劃紙牌:DEV對某一任務(wù)認為的完成時間,一起攤牌,討論差異原因 - 通過Sprint Planning Meeting,從Product Backlog中挑選出一個User Story 進行細化,形成一個Sprint Backlog
- Backlog由Scrum Team完成,每個成員根據(jù)Sprint Backlog再細化成更小的工作量在2天能能完成的任務(wù)
- Scrum Team需要進行Daily Scrum Meeting 每日站會,時間在15mins左右,每個人都必須發(fā)言,向所有成員當面匯報昨天完成了什么,承諾今天要完成什么,同時提出遇到什么不能解決的問題,發(fā)言后,走到任務(wù)看板前更新自己的Sprint burn down (Sprint 燃盡圖)
*任務(wù)看板:移動任務(wù)卡片到相應(yīng)區(qū)域
not checked out
checked out
Done
Burndown
Uplanned Items
Next - 做到每日集成,每天都要有一個可以成功編譯,可以演示的版本。
*自動化集成,TFS,每次有成員進行簽入操作的時候,在服務(wù)器上自動獲取最新版本,然后再服務(wù)器中編譯,若通過則馬上執(zhí)行單元測試代碼,全部通過,發(fā)布該版本,這時一次正式的簽入才進行保存。任何失敗,都會郵件通知項目管理人員。 - 當一個Story——Sprint Backlog被完成,表示一次Sprint 完成,進行Sprint Review Meeting,評審會議,PO和客戶都要參加,每個Scrum Team 成員要向他們演示自己完成的產(chǎn)品
- 最后就是Sprint Retrospective Meeting 回顧會議,總結(jié)會議,以輪流發(fā)言方式進行,每個人都要發(fā)言,總結(jié)并討論改進的地方,放入下一輪Sprint的產(chǎn)品需求中