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

1 評論 19305 瀏覽 82 收藏 11 分鐘

人們在自己的工作中和處理問題時,應(yīng)該像一個成熟的成年人一樣,因此它并不涉及具體的軟件開發(fā)技術(shù)和人員溝通、期望管理、問題沖突等管理技能,這些都需要其他相關(guān)理論和技能來補(bǔ)充。

Scrum概述

Scrum

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

Scrum的核心思路

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

實踐框架

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

Scrum價值觀

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

以上價值觀和敏捷宣言相互呼應(yīng),很多人都會忽略這些核心價值和核心思想,而是追求Scrum的一套開發(fā)流程或者開發(fā)框架。但流程框架這些都只是一個規(guī)范,不是每個團(tuán)隊都能直接硬套上去使用。需要有一定的調(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)容,同時有權(quán)力接受或拒絕開發(fā)團(tuán)隊的工作成果。

Scrum Master(流程管理員):

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

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

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

Scrum開發(fā)模型

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

new_page_1

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

Scrum相應(yīng)活動

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

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

Sprint計劃會議

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

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

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

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

每日Scrum會議

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

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

Sprint評審會議

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

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

Sprint回顧會議

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

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

滿足條件

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

理解思想

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

適配模型

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

人員素質(zhì)

團(tuán)隊人員的素質(zhì)是一個非常重要的,決定Scrum能否有效實施的條件,它包括自我管理,技術(shù)能力,知識積累,做事原則,思想智慧等,是一個綜合素質(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í)行和提高處理的效率。必要時可引入其他敏捷開發(fā)方法,相互配合使用。

參考資料

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

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

 

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

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

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

    來自北京 回復(fù)