敏捷其實(shí)很簡(jiǎn)單(3)--敏捷方法之scrum

通過上圖我們可以看到Scrum作為各種敏捷實(shí)踐方法中最為常用的一種,今天我們也來聊一聊Scrum。

Scrum的歷史可以追溯到1986年《哈佛商業(yè)評(píng)論》中的一篇文章《新型的新產(chǎn)品開發(fā)策略》(The New New Product Development Game,竹內(nèi)弘高、野中郁次郎,1986)。這篇文章描述了像本田、佳能、富士施樂這樣的公司是如何通過可伸縮、基于團(tuán)隊(duì)的并行產(chǎn)品開發(fā)方式開發(fā)出了世界一流的產(chǎn)品。文章同時(shí)強(qiáng)調(diào)了授權(quán)、自組織團(tuán)隊(duì)的重要性,并概要描述了管理在開發(fā)過程中發(fā)揮的作用。

當(dāng)然,SCRUM這個(gè)詞沒有什么標(biāo)準(zhǔn)的中文解釋,它是來源于橄欖球中的一個(gè)爭(zhēng)球的動(dòng)作,如下圖。

竹內(nèi)弘高和野中郁次郎在New New Product Development?Game文章首次提到將Scrum應(yīng)用與產(chǎn)品開發(fā),他們指出:傳統(tǒng)的“接力式”的開發(fā)模式已經(jīng)不能滿足快速靈活的市場(chǎng)需求,而整體或“橄欖球式”的方法——團(tuán)隊(duì)作為一個(gè)整體前進(jìn),在團(tuán)隊(duì)的內(nèi)部傳球并保持前進(jìn),這也許可以更好的滿足當(dāng)前激烈的市場(chǎng)競(jìng)爭(zhēng)。


上圖是SCRUM的一個(gè)典型架構(gòu)圖,我們可以看到里面有很多要素,下面我們一一介紹這些要素。


Scrum的3355


3個(gè)角色


Product Owner:產(chǎn)品負(fù)責(zé)人,清楚的知道產(chǎn)品的愿景,需要對(duì)產(chǎn)品待辦列表的梳理,優(yōu)化,優(yōu)先級(jí)排序等負(fù)責(zé)。決定團(tuán)隊(duì)每個(gè)沖刺要完成哪些任務(wù)。對(duì)于團(tuán)隊(duì)非常重要,決定Why和What。一般可以對(duì)應(yīng)為現(xiàn)有的產(chǎn)品經(jīng)理和BA的角色。


Scrum Master:Scrum MasterScrum教練和團(tuán)隊(duì)帶頭人,確保團(tuán)隊(duì)合理的運(yùn)作Scrum,并幫助團(tuán)隊(duì)掃除實(shí)施中的障礙。


Team:可以認(rèn)為是開發(fā)團(tuán)隊(duì),但是一個(gè)跨職能的團(tuán)隊(duì),能夠交付一個(gè)端到端的真正對(duì)客戶有價(jià)值的產(chǎn)品。


3個(gè)工件


Product Backlog:是指產(chǎn)品待辦事項(xiàng)的集合,其中事務(wù)有優(yōu)先級(jí)判斷,先處理優(yōu)先級(jí)高的事項(xiàng)。產(chǎn)品待辦列表源自于Scrum方法。在Scrum中,產(chǎn)品主管(Product Owner)收集來自于各方的需要、期望、訴求等等到產(chǎn)品待辦列表中,給定優(yōu)先級(jí);當(dāng)沖刺計(jì)劃會(huì)議上,團(tuán)隊(duì)從產(chǎn)品待辦列表中挑選其中事項(xiàng)組成沖刺待辦列表。常見的待辦事項(xiàng)表達(dá)形式是用戶故事


Sprint Backlog:每個(gè)迭代的功能開發(fā)列表,PO會(huì)根據(jù)團(tuán)隊(duì)的能力并按照產(chǎn)品待辦列表中的優(yōu)先級(jí)來選取每個(gè)沖刺要做的事情。團(tuán)隊(duì)可以專注在每個(gè)迭沖刺要走的事情上而不被打斷。


Burndown chart:燃盡圖,在每個(gè)迭代顯示剩余工作時(shí)間和任務(wù)完成情況。


5個(gè)價(jià)值觀


專注:每個(gè)迭代只專注于迭代要完成的事情,團(tuán)隊(duì)和個(gè)人的能力和精力是有限的,在有限的時(shí)間內(nèi)專注于最有價(jià)值的事情,以取得好的結(jié)果。

勇氣:要有勇氣去面對(duì)各種挑戰(zhàn)。

公開:團(tuán)隊(duì)所有的進(jìn)展,問題,阻礙都是對(duì)所有人可視化,透明的。這樣的團(tuán)隊(duì)才是彼此尊重。同時(shí)也能暴露問題。

承諾:作為一個(gè)自組織團(tuán)隊(duì),在迭代開始的時(shí)候做出承諾,并在迭代中全力完成。

尊重:團(tuán)隊(duì)是長(zhǎng)期坐到一起,并且穩(wěn)定的,有助于加深彼此的了解和溝通。


5種工件


Sprint:沖刺,一個(gè)固定的時(shí)間周期(通常為2w-4w),團(tuán)隊(duì)要盡可能在這個(gè)周期內(nèi)交付可以工作的軟件給客戶

sprint planning meeting:沖刺開始的時(shí)候,PO會(huì)和團(tuán)隊(duì)一起從PB中選擇本次要做的任務(wù)/故事,并且會(huì)對(duì)團(tuán)隊(duì)提出的疑問進(jìn)行解釋和澄清。同時(shí)團(tuán)隊(duì)會(huì)估算故事并分解成任務(wù),最后會(huì)形成本次的Sprint Backlog.

daily standupo meeting:每日站會(huì),scrum為了加強(qiáng)團(tuán)隊(duì)溝通,每天團(tuán)隊(duì)都要選擇一個(gè)時(shí)間站在一起,互相交流彼此的進(jìn)展和問題,以便及時(shí)解決出現(xiàn)的問題,同時(shí)也能讓團(tuán)隊(duì)隨時(shí)了解我們離沖刺目標(biāo)還有多遠(yuǎn)。

sprint review:在sprint周期最后,需要進(jìn)行一次評(píng)審會(huì)議,讓團(tuán)隊(duì)向產(chǎn)品負(fù)責(zé)人和利益相關(guān)者展示已完成的功能。sprint審核的大部分實(shí)踐用于團(tuán)隊(duì)成員展示功能、回答利益相關(guān)者對(duì)展示的疑問并記錄所期望的更改。評(píng)審會(huì)議可以吸引相關(guān)利益者的關(guān)注,讓其他人了解團(tuán)隊(duì)在做些什么,并得到重要反饋。做演示也會(huì)迫使開發(fā)團(tuán)隊(duì)真正完成一些工作。

retrospective meeting:回顧會(huì)議,通常在reivew會(huì)議之后開始,有團(tuán)隊(duì)成員在沖刺結(jié)束之后對(duì)上個(gè)迭代進(jìn)行總結(jié),同時(shí)提出一些改進(jìn)方案,這是一個(gè)持續(xù)改進(jìn)的過程。


SCRUM的其他一些要素:

user story:用戶故事,因?yàn)槊艚菀竺總€(gè)特性都是對(duì)客戶有價(jià)值的,所以以用戶故事的方式來設(shè)計(jì)特性,通常是作為客戶,我要實(shí)現(xiàn)A功能,以至于我可以達(dá)到什么目的的結(jié)構(gòu)。

task:每個(gè)迭代中為了開發(fā)一個(gè)user story,將其分解為一些task,比如說我要開發(fā)一個(gè)協(xié)議,其中需要幾個(gè)task,包括搭建服務(wù)器,找一些開源代碼,搭建自動(dòng)化測(cè)試框架,編碼,測(cè)試任務(wù),便于更小粒度的track每個(gè)迭代的進(jìn)展。

release planning:在某些大型組織,可能更關(guān)注release級(jí)別的產(chǎn)品交付,所以每個(gè)release之前要進(jìn)行整個(gè)release的plan,決定這個(gè)release的PB。

points:故事點(diǎn)數(shù),代表用戶故事的大小,要記住,這里的大小不代表開發(fā)時(shí)間,只是一個(gè)相對(duì)的用戶故事的復(fù)雜度,工作量大小。因?yàn)楹茈y理解,所以scrum team要建立一個(gè)基準(zhǔn)的user story,作為一個(gè)points,然后其他的user story和它進(jìn)行相對(duì)比較。這個(gè)points大部分時(shí)間用來作為評(píng)估team的交付能力。


SCRUM開發(fā)流程


Scrum 是一個(gè)用于開發(fā)和維持復(fù)雜產(chǎn)品的框架 ,是一個(gè)增量的、迭代的開發(fā)過程。在這個(gè)框架中,整個(gè)開發(fā)過程由若干個(gè)短的迭代周期組成,一個(gè)短的迭代周期稱為一個(gè)Sprint,每個(gè)Sprint的建議長(zhǎng)度是2到4周(互聯(lián)網(wǎng)產(chǎn)?品研發(fā)可以使用1周的Sprint)。在Scrum中,使用產(chǎn)品Backlog來管理產(chǎn)品的需求,產(chǎn)品backlog是一個(gè)按照商業(yè)價(jià)值排序的需求列表,列表?xiàng)l目的體現(xiàn)形式通常為用戶故事。Scrum團(tuán)隊(duì)總是先開發(fā)對(duì)客戶具有較高價(jià)值的需求?。在Sprint中,Scrum團(tuán)隊(duì)從產(chǎn)品Backlog中挑選最高優(yōu)先級(jí)的需求進(jìn)行開發(fā)。挑選的需求在Sprint計(jì)劃會(huì)議上經(jīng)過討論、分析和估算得到相應(yīng)的任務(wù)列表,我們稱它為Sprint backlog。在每個(gè)迭代結(jié)束時(shí),Scrum團(tuán)隊(duì)將遞交?潛在可交付的產(chǎn)品增量。


SCRUM各個(gè)角色之間的關(guān)系和作用:

PO和team的關(guān)系:一個(gè)人拿到了客戶的一個(gè)項(xiàng)目,開發(fā)一個(gè)產(chǎn)品,他就是PO,他想找一個(gè)團(tuán)隊(duì)開做這個(gè)產(chǎn)品,但是現(xiàn)在有A團(tuán)隊(duì)和B團(tuán)隊(duì),A團(tuán)隊(duì)跟PO說,ok,交給我吧,3個(gè)月后你過來,我們把產(chǎn)品給你.而B團(tuán)隊(duì)說,我們每個(gè)月都可以讓你看一下我們的產(chǎn)品,但是可能一開始功能不完善,但是可以工作的,然后你可以把我們的產(chǎn)品給客戶看,如果運(yùn)氣好的話客戶可能先給你點(diǎn)錢呢。

如果你作為PO,你會(huì)選擇哪個(gè)團(tuán)隊(duì)呢?對(duì)了,A就是傳統(tǒng)的開發(fā)團(tuán)隊(duì),而B則是我們的scrum team.

scrum master和team還有PO的關(guān)系:


個(gè)人給SM有以下幾個(gè)定義:


Team Coach: 不僅在在流程上輔導(dǎo)團(tuán)隊(duì),還要幫助大家接受敏捷開發(fā)理念,推動(dòng)團(tuán)隊(duì)按照敏捷價(jià)值觀和原則所倡導(dǎo)的方法來做出決策。

Servant Leader:Scrum Master服務(wù)于團(tuán)隊(duì),幫助團(tuán)隊(duì)解決工作中的困難,引導(dǎo)團(tuán)隊(duì)自組織的高效完成每日工作,但是并不是團(tuán)隊(duì)的管理者。

Team Protector: 作為團(tuán)隊(duì)保護(hù)者,SM7要敢于說不,盡量保證團(tuán)隊(duì)在每個(gè)沖刺中不被打擾,如果發(fā)現(xiàn)有影響團(tuán)隊(duì)工作的臨時(shí)任務(wù),一定要站出來保護(hù)團(tuán)隊(duì)。


SCRUM大事表:

Jeff Sutherland在 1993年首次在Easel公司定義了用于了軟件開發(fā)行業(yè)的Scrum流程,并開始實(shí)施

1995年Jeff Sutherland和Ken Schwaber規(guī)范化了Scrum框架,并在OOPSLA 95上公開發(fā)布。

2001年 敏捷宣言及原則發(fā)布、敏捷聯(lián)盟成立,Scrum是其中一種敏捷方法。

2001年,Ken Schwaber和Mike Beedle推出第一本Scrum書籍《Scrum敏捷軟件開發(fā)》。

2002年Ken Schwaber 和Mike Cohn共同創(chuàng)辦了Scrum聯(lián)盟。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容