主流敏捷開發(fā)方法:Scrum 基礎(chǔ)知識(shí)解釋

1 評(píng)論 19384 瀏覽 82 收藏 11 分鐘

人們?cè)谧约旱墓ぷ髦泻吞幚韱栴}時(shí),應(yīng)該像一個(gè)成熟的成年人一樣,因此它并不涉及具體的軟件開發(fā)技術(shù)和人員溝通、期望管理、問題沖突等管理技能,這些都需要其他相關(guān)理論和技能來補(bǔ)充。

Scrum概述

Scrum

來自英式橄欖球運(yùn)動(dòng),本質(zhì)含義就是一群人你推我搡地去搶球和控球。用球賽來類比確實(shí)是一個(gè)形象又合適的比喻,在賽場(chǎng)上盡管隊(duì)員們努力按照既定計(jì)劃推進(jìn),但是場(chǎng)上瞬息萬變,不可能實(shí)時(shí)按照教練或者隊(duì)長的指令亦步亦趨的去行事,只能靠平時(shí)訓(xùn)練中形成的素養(yǎng)見機(jī)行事,達(dá)成目標(biāo)。

Scrum的核心思路

Scrum的核心思路,是首先承認(rèn)我們的客戶(或者我們的產(chǎn)品服務(wù)的用戶)并不清楚自己的需求,并且人類的需求會(huì)不斷變化(“requirements churn”:就是需求本身在不斷地倒騰),所以我們默認(rèn)需求是變化的需求,并且制定出一套策略能讓整個(gè)組按照小功能快速開發(fā),并且后續(xù)不斷迭代。回歸 Scrum 的英文含義:把開發(fā)就搞成一堆人在合力拼搶,把功能分成小塊,快速開發(fā)和迭代。

實(shí)踐框架

Scrum為軟件開發(fā)管理只定義了一個(gè)高層次的、易于操作與遵循的非常小的實(shí)踐集,Scrum避免了說軟件團(tuán)隊(duì)?wèi)?yīng)該如何開發(fā)軟件,它堅(jiān)持認(rèn)為:人們?cè)谧约旱墓ぷ髦泻吞幚韱栴}時(shí),應(yīng)該像一個(gè)成熟的成年人一樣,因此它并不涉及具體的軟件開發(fā)技術(shù)和人員溝通、期望管理、問題沖突等管理技能,這些都需要其他相關(guān)理論和技能來補(bǔ)充。另外,如同其他項(xiàng)目一樣,需要軟件團(tuán)隊(duì)在其業(yè)務(wù)領(lǐng)域的專業(yè)能力來確保軟件項(xiàng)目的成功。

Scrum價(jià)值觀

  1. 承諾- 愿意對(duì)目標(biāo)做出承諾
  2. 專注– 把你的心思和能力都用到你承諾的工作上去
  3. 開放– Scrum 把項(xiàng)目中的一切開放給每個(gè)人看
  4. 尊重– 每個(gè)人都有他獨(dú)特的背景和經(jīng)驗(yàn)
  5. 勇氣– 有勇氣做出承諾,履行承諾,接受別人的尊重

以上價(jià)值觀和敏捷宣言相互呼應(yīng),很多人都會(huì)忽略這些核心價(jià)值和核心思想,而是追求Scrum的一套開發(fā)流程或者開發(fā)框架。但流程框架這些都只是一個(gè)規(guī)范,不是每個(gè)團(tuán)隊(duì)都能直接硬套上去使用。需要有一定的調(diào)整,甚至結(jié)合其他開發(fā)方法一起使用,沒有領(lǐng)悟敏捷開發(fā)思想是沒有辦法靈活使用Scrum的。

Scrum角色

Product Owner(產(chǎn)品負(fù)責(zé)人):

主要負(fù)責(zé)確定產(chǎn)品的功能和達(dá)到要求的標(biāo)準(zhǔn),指定軟件的發(fā)布日期和交付的內(nèi)容,同時(shí)有權(quán)力接受或拒絕開發(fā)團(tuán)隊(duì)的工作成果。

Scrum Master(流程管理員):

主要負(fù)責(zé)整個(gè)Scrum流程在項(xiàng)目中的順利實(shí)施和進(jìn)行,以及清除擋在客戶和開發(fā)工作之間的溝通障礙,使得客戶可以直接驅(qū)動(dòng)開發(fā)。

Development Team(開發(fā)團(tuán)隊(duì)):

主要負(fù)責(zé)軟件產(chǎn)品在Scrum規(guī)定流程下進(jìn)行開發(fā)工作,人數(shù)控制在5~10人左右,每個(gè)成員可能負(fù)責(zé)不同的技術(shù)方面,但要求每成員必須要有很強(qiáng)的自我管理能力,同時(shí)具有一定的表達(dá)能力;成員可以采用任何工作方式,只要能達(dá)到Sprint的目標(biāo)。

Scrum開發(fā)模型

12B1C4FC-CF9D-4BA4-9D92-2D74905617DD

new_page_1

(點(diǎn)擊圖片放大,按“F”鍵查看原圖)

Scrum相應(yīng)活動(dòng)

產(chǎn)品待辦事項(xiàng)列表梳理

  • 保持產(chǎn)品待辦事項(xiàng)列表有序
  • 把看起來不再重要的事項(xiàng)移除或者降級(jí)
  • 增加或提升涌現(xiàn)出來的或變得更重要的事項(xiàng)
  • 將事項(xiàng)分解成更小的事項(xiàng)
  • 將事項(xiàng)歸并為更大的事項(xiàng)
  • 對(duì)事項(xiàng)進(jìn)行估算(按團(tuán)隊(duì)平均水平計(jì)算人時(shí))

Sprint計(jì)劃會(huì)議

在這個(gè)會(huì)議中,Scrum團(tuán)隊(duì)共同選擇和理解在即將到來的Sprint中要完成的工作。

Sprint中需要完成的產(chǎn)品待辦事項(xiàng)數(shù)目完全由開發(fā)團(tuán)隊(duì)決定。為了決定做多少,開發(fā)團(tuán)隊(duì)需要考慮當(dāng)前產(chǎn)品增量的狀態(tài),團(tuán)隊(duì)過去的工作情況,團(tuán)隊(duì)當(dāng)前的生產(chǎn)能力,以及排好序的產(chǎn)品待辦事項(xiàng)列表。做多少工作只能由開發(fā)團(tuán)隊(duì)決定。產(chǎn)品負(fù)責(zé)人或任何其它人,都不能給開發(fā) 團(tuán)隊(duì)強(qiáng)加更多的工作量。

決定如何完成工作是開發(fā)團(tuán)隊(duì)的職責(zé),決定做什么則是產(chǎn)品負(fù)責(zé)人的職責(zé)。

總而?言之:在Sprint計(jì)劃會(huì)議中,開發(fā)團(tuán)隊(duì)和產(chǎn)品負(fù)責(zé)人一起考慮并討論產(chǎn)品待辦事項(xiàng),確保他們對(duì)這些事項(xiàng)的理解,選擇一些他們預(yù)測(cè)能完成的事項(xiàng),創(chuàng)建足夠詳細(xì)的計(jì)劃來確保他們能夠完成這些事項(xiàng)。

每日Scrum會(huì)議

每日Scrum既不是向管理層匯報(bào),也不是向產(chǎn)品負(fù)責(zé)?人或者ScrumMaster匯報(bào)。它是一個(gè)開發(fā) 團(tuán)隊(duì)內(nèi)部的溝通會(huì)議,來保證他們對(duì)現(xiàn)狀有一致的了解。

每次會(huì)議控制在15分鐘左右,每個(gè)人都必須發(fā)言,并且要向所有成員當(dāng)面匯報(bào)你昨天完成了什么,并且向所有成員承諾你今天要完成什么,同時(shí)遇到不能解決的問題也可以提出,每個(gè)人回答完成后,要走到黑板前更新自己的 Sprint burn down(Sprint燃盡圖)

Sprint評(píng)審會(huì)議

所有Scrum會(huì)議都是限定時(shí)?長 的,Sprint評(píng)審會(huì)議的推薦時(shí)?長是Sprint中的每一周對(duì)應(yīng)一個(gè)小時(shí)(譯者注:?比如,一個(gè)Sprint 包含2個(gè)星期,則Sprint評(píng)審會(huì)議時(shí)?長為2個(gè)小時(shí))。

團(tuán)隊(duì)會(huì)找到他們自己的方式來開Sprint評(píng)審會(huì)議。通常會(huì)演?示產(chǎn)品增量,整個(gè)小組也會(huì)經(jīng)常討論他們?cè)赟print中觀察到了什么、有哪些新的產(chǎn)品想法出現(xiàn)。他們還會(huì)討論產(chǎn)品待辦事項(xiàng)列表 的狀態(tài)、可能的完成日期以及在這些日期前能完成什么。

Sprint回顧會(huì)議

在每個(gè)Sprint結(jié)束后,Scrum團(tuán)隊(duì)會(huì)聚在一起開Sprint回顧會(huì)議,目的是回顧一下團(tuán)隊(duì)在流程人際關(guān)系以及工具方面做得如何。團(tuán)隊(duì)識(shí)別出哪些做得好,哪些做得不好,并找出潛在 的改進(jìn)事項(xiàng),為將來的改進(jìn)制定計(jì)劃。

Scrum團(tuán)隊(duì)總是在Scrum的框架內(nèi),改進(jìn)他們自己的流程。這句話很重要。

滿足條件

Scrum雖然十分熱門,但是要成功,正確的實(shí)現(xiàn)它,并達(dá)到一定的效果,不是簡(jiǎn)簡(jiǎn)單單的一個(gè)命令就可以做到。特別是國內(nèi)的一些傳統(tǒng)企業(yè),或者一些組織架構(gòu)死板的公司,內(nèi)部改造并不容易。當(dāng)然也不是扁平化管理的初創(chuàng)公司就能很好的實(shí)現(xiàn)Scrum,人員素質(zhì),管理者經(jīng)驗(yàn)的都是初創(chuàng)公司的短板。所以個(gè)人總結(jié)了要實(shí)現(xiàn)Scrum先要滿足的幾大條件。

理解思想

對(duì)Scrum的核心思想和理念真正深入的了解,而不是看中Scrum其管理流程的實(shí)現(xiàn),需要結(jié)合敏捷方法的理論,從本質(zhì)上了解為何Scrum要如此管理開發(fā)流程。

適配模型

熟悉Scrum提出的模型,遵循其規(guī)范的流程,但又不能被條條框框限定死,需要相關(guān)人員結(jié)合公司或者團(tuán)隊(duì)本身情況進(jìn)行適當(dāng)?shù)恼{(diào)整,只要符合核心思想即可。這需要有一定智慧,知識(shí)和經(jīng)驗(yàn)的人去了解公司業(yè)務(wù),人員素質(zhì),再思考總結(jié),才能制定出一套規(guī)范的開發(fā)流程,并將這套流程嚴(yán)格執(zhí)行,這個(gè)過程甚至可能會(huì)改變公司架構(gòu)。

人員素質(zhì)

團(tuán)隊(duì)人員的素質(zhì)是一個(gè)非常重要的,決定Scrum能否有效實(shí)施的條件,它包括自我管理,技術(shù)能力,知識(shí)積累,做事原則,思想智慧等,是一個(gè)綜合素質(zhì)的考量。關(guān)于人員開發(fā)素質(zhì)的要求,可以參考極限開發(fā)XP的一些標(biāo)準(zhǔn),來判斷或者培養(yǎng)高素質(zhì)開發(fā)人員。

有效協(xié)定

協(xié)定統(tǒng)一溝通的溝通方式,提高溝通效率。協(xié)定統(tǒng)一的版本控制方式,代碼管理方式。引入統(tǒng)一的協(xié)助工具幫助流程流暢的執(zhí)行和提高處理的效率。必要時(shí)可引入其他敏捷開發(fā)方法,相互配合使用。

參考資料

「創(chuàng)業(yè)技術(shù)之道」談?wù)劽艚蓍_發(fā)和Scrum

Scrum中文網(wǎng)(很好的一個(gè)網(wǎng)站,有比較規(guī)范和詳細(xì)的文檔)

 

作者:Frayne,個(gè)人網(wǎng)站:https://frayne.github.io/Agile/scrum.html

本文由 @Frayne 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 您好,看了您的文章深受影響,我們公司也在做敏捷開發(fā),想和您聊一些商務(wù)合作,希望您看到能回復(fù)下,謝謝

    來自北京 回復(fù)