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