Scrum 學(xué)習(xí)筆記
羅朝輝(http://www.shnenglu.com/kesalin)
敏捷火了很長一段時(shí)間了,但是一直沒有機(jī)會(huì)實(shí)踐,現(xiàn)在開始組隊(duì)實(shí)踐了,哈哈,先好好研習(xí)下規(guī)則~~
什么是 scrum
Scrum是一個(gè)敏捷開發(fā)框架,是一個(gè)增量的、迭代的開發(fā)過程。在這個(gè)框架中,整個(gè)開發(fā)周期包括若干個(gè)小的跌代周期,每個(gè)小的的跌代周期稱為一個(gè) Sprint,每個(gè) Sprint 的建議長度2到4周。在 Scrum 中,使用產(chǎn)品 Backlog 來管理產(chǎn)品或項(xiàng)目的需求,產(chǎn)品 backlog 是一個(gè)按照商業(yè)價(jià)值排序的需求列表,列表?xiàng)l目的體現(xiàn)形式通常為用戶故事。Scrum 的開發(fā)團(tuán)隊(duì)總是先開發(fā)的是對客戶具有較高價(jià)值的需求。在每個(gè) Sprint 中,Scrum 開發(fā)團(tuán)隊(duì)從產(chǎn)品Backlog中挑選最有價(jià)值的需求進(jìn)行開發(fā)。Sprint 中挑選的需求經(jīng)過 Sprint 計(jì)劃會(huì)議上的分析、討論和估算得到一個(gè) Sprint 的任務(wù)列表,我們稱它為 Sprint backlog。在每個(gè)迭代結(jié)束時(shí),Scrum 團(tuán)隊(duì)將交付潛在可交付的產(chǎn)品增量。
敏捷價(jià)值觀之敏捷四宣言
• 個(gè)體與交互重于過程和工具
• 可用的軟件重于完備的文檔
• 客戶協(xié)作重于合同談判
• 響應(yīng)變化重于遵循計(jì)劃
敏捷價(jià)值觀之敏捷十二原則
• 我們的最高目標(biāo)是,通過盡早和持續(xù)地交付有價(jià)值的軟件來滿足客戶。
• 歡迎對需求提出變更——即使是在項(xiàng)目開發(fā)后期。要善于利用需求變更,幫助客戶獲得競爭優(yōu)勢。
• 要不斷交付可用的軟件,周期從幾周到幾個(gè)月不等,且越短越好。
• 項(xiàng)目過程中,業(yè)務(wù)人員與開發(fā)人員必須在一起工作。
• 要善于激勵(lì)項(xiàng)目人員,給他們以所需要的環(huán)境和支持,并相信他們能夠完成任務(wù)。
• 無論是團(tuán)隊(duì)內(nèi)還是團(tuán)隊(duì)間,最有效的溝通方法是面對面的交談。
• 可用的軟件是衡量進(jìn)度的主要指標(biāo)。
• 敏捷過程提倡可持續(xù)的開發(fā)。項(xiàng)目方、開發(fā)人員和用戶應(yīng)該能夠保持恒久穩(wěn)定的進(jìn)展速度。
• 對技術(shù)的精益求精以及對設(shè)計(jì)的不斷完善將提升敏捷性。
• 要做到簡潔,即盡最大可能減少不必要的工作。這是一門藝術(shù)。
• 最佳的架構(gòu)、需求和設(shè)計(jì)出自于自組織的團(tuán)隊(duì)。
• 團(tuán)隊(duì)要定期反省如何能夠做到更有效,并相應(yīng)地調(diào)整團(tuán)隊(duì)的行為。
Scrum 的特點(diǎn)
• Scrum 規(guī)定了一個(gè)非常簡單的開發(fā)流程。
• Scrum 是現(xiàn)有設(shè)計(jì)流程的總結(jié)。
• Scrum 以團(tuán)隊(duì)為基礎(chǔ),是一種在需求迅速變化情況下迭代地、增量地開發(fā)系統(tǒng)和產(chǎn)品的方法。
• Scrum 是一個(gè)控制由利益和需求沖突導(dǎo)致的混亂的流程。
• Scrum 是改善交流并最優(yōu)化合作的方式。
• Scrum 是一種檢測產(chǎn)品開發(fā)和生產(chǎn)過程中障礙并將其去除的方式。
• Scrum 是最大化生產(chǎn)率的一種方法。
• Scrum 適用于單一的項(xiàng)目到整個(gè)企業(yè)。Scrum 可以控制并組織多個(gè)具有相關(guān)性的產(chǎn)品開發(fā)以及擁有超過千名開發(fā)者和執(zhí)行者的項(xiàng)目實(shí)施過程。
• Scrum 能讓每個(gè)參與者都對自己所做的工作以及自己做出的貢獻(xiàn)感到驕傲,并讓他們發(fā)揮到最佳水平。
Sprints
• Scrum的項(xiàng)目過程有一系列的Sprint組成。
• Sprint的長度一般控制在2-4周。
• 通過固定的周期保持良好的節(jié)奏。
• 產(chǎn)品的設(shè)計(jì)、開發(fā)、測試都在Sprint期間完成。
• Sprint結(jié)束時(shí)交付可以工作的軟件。
• 在Sprint過程中不允許發(fā)生變更。
Scrum 框架
三個(gè)角色:產(chǎn)品負(fù)責(zé)人,Scrum Master,團(tuán)隊(duì)
四個(gè)儀式:Sprint 計(jì)劃會(huì)議,每日站會(huì),Sprint 評審會(huì)議,Sprint 回顧會(huì)議
三個(gè)物件:產(chǎn)品 Backlog,Sprint Backlog,燃盡圖
Scrum 角色之產(chǎn)品負(fù)責(zé)人
產(chǎn)品負(fù)責(zé)人(Product Owner)的職責(zé)如下:
• 確定產(chǎn)品的功能。
• 決定發(fā)布的日期和發(fā)布內(nèi)容。
• 為產(chǎn)品的 profitability of the product (ROI)負(fù)責(zé)。
• 根據(jù)市場價(jià)值確定功能優(yōu)先級。
• 每個(gè) Sprint,根據(jù)需要調(diào)整功能和優(yōu)先級(每個(gè) Sprint 開始前調(diào)整)。
• 接受或拒絕接受開發(fā)團(tuán)隊(duì)的工作成果。
Product Owner參與Scrum planning。
Scrum角色之 Scrum Master
作為Team Leader和Product owner緊密地工作在一起,他可以及時(shí)地為團(tuán)隊(duì)成員提供幫助。 他必須:
• 保證團(tuán)隊(duì)資源完全可被利用并且全部是高產(chǎn)出的。
• 保證各個(gè)角色及職責(zé)的良好協(xié)作。
• 解決團(tuán)隊(duì)開發(fā)中的障礙。
• 做為團(tuán)隊(duì)和外部的接口,屏蔽外界對團(tuán)隊(duì)成員的干擾。
• 保證開發(fā)過程按計(jì)劃進(jìn)行,組織 Daily Scrum, Sprint Review and Sprint Planning meetings。
Scrum角色之團(tuán)隊(duì)
• 一般情況人數(shù)在5-9個(gè)左右
• 團(tuán)隊(duì)要跨職能(包括開發(fā)人員、測試人員、用戶界面設(shè)計(jì)師等)
• 團(tuán)隊(duì)成員需要全職。(有些情況例外,比如數(shù)據(jù)庫管理員)
• 在項(xiàng)目向?qū)Х秶鷥?nèi)有權(quán)利做任何事情已確保達(dá)到 Sprint 的目標(biāo)。
• 高度的自我組織能力。
• 向 Product Owner演示產(chǎn)品功能。
• 團(tuán)隊(duì)成員構(gòu)成在 Sprint 內(nèi)不允許變化。
Scrum 儀式之 Sprint 計(jì)劃會(huì)議
> 排列優(yōu)先級:
• 分析和評估產(chǎn)品Backlog
• 確定Sprint目標(biāo)
> Sprint 計(jì)劃:
• 決定如何達(dá)到 Sprint 目標(biāo)(設(shè)計(jì))。
• 根據(jù)產(chǎn)品 Backlog 條目(用戶故事,功能)創(chuàng)建 Sprint Backlog(任務(wù))。
• 為 Sprint Backlog 中的任務(wù)做估算,用小時(shí)來計(jì)算
Scrum 儀式之 Sprint 評審會(huì)議
Sprint評審會(huì)用來演示在這個(gè) Sprint 中開發(fā)的產(chǎn)品功能給 Product Owner。Produc Owner 會(huì)組織這階段的會(huì)議并且邀請相關(guān)的干系人參加。
• 團(tuán)隊(duì)展示 Sprint 中完成的功能
• 一般是通過現(xiàn)場演示的方式展現(xiàn)功能和架構(gòu)
• 不要太正式
• 不需要PPT
• 一般控制在2個(gè)小時(shí)
• 團(tuán)隊(duì)成員都要參加
• 可以邀請所有人參加
Scrum 儀式之 Sprint 回顧會(huì)議
• 團(tuán)隊(duì)的定期自我檢視,發(fā)現(xiàn)什么是好的,什么是不好的。
• 一般控制在 15 - 30 分鐘
• 每個(gè) Sprint 都要做
• 全體參加:Scrum Master,產(chǎn)品負(fù)責(zé)人,團(tuán)隊(duì),可能的客戶或其它干系人
Sprint 回顧會(huì)議上,全體成員討論有哪些好的做法可以啟動(dòng),哪些不好的做法不能再繼續(xù)下去了,哪些好的做法要繼續(xù)發(fā)揚(yáng)。
Scrum 物件之產(chǎn)品 Backlog
• 一個(gè)需求的列表。
• 一般情況使用用戶故事來表示 backlog 條目
• 理想情況每個(gè)需求項(xiàng)都對產(chǎn)品的客戶或用戶有價(jià)值
• Backlog 條目按照商業(yè)價(jià)值排列優(yōu)先級
• 優(yōu)先級由產(chǎn)品負(fù)責(zé)人來排列
• 在每個(gè) Sprint 結(jié)束的時(shí)候要更新優(yōu)先級的排列
Scrum 物件之 Sprint Backlog
Sprint backlog 定義了 Sprint 的目標(biāo),明確了 Sprint 過程中具體需要完成的任務(wù)。
管理 Sprint 的 backlog:
• 團(tuán)隊(duì)成員自己挑選任務(wù),而不是指派任務(wù)
• 對每一個(gè)任務(wù),每天要更新剩余的工作量估算
• 每個(gè)團(tuán)隊(duì)成員都可以修改 Sprint backlog,增加、刪除或者修改任務(wù)
Scrum 物件之燃盡圖(Burn Down Chart)
燃盡圖直觀的反映了Sprint過程中剩余的工作量情況,Y軸表示剩余的工作,X軸表示 Sprint 的時(shí)間。隨著時(shí)間的消耗工作量逐漸減少,在開始的時(shí)候,由于估算上的誤差或者遺漏工作量有可能呈上升態(tài)勢。
擴(kuò)展 Scrum
• 一般情況一個(gè)團(tuán)隊(duì)的人數(shù)控制在5-9人。大型項(xiàng)目可以采用多團(tuán)隊(duì),通過team of teams來擴(kuò)展Scrum。
• 影響擴(kuò)展的因素:團(tuán)隊(duì)規(guī)模,項(xiàng)目類型,項(xiàng)目周期,團(tuán)隊(duì)分布。
• Scrum 曾被用于超過 1000 人團(tuán)隊(duì)規(guī)模的項(xiàng)目。