Scrum Master: Beauty and Beast
在Scrum敏捷開發(fā)中有三種主要的角色:Product Owner(產(chǎn)品負(fù)責(zé)人,簡(jiǎn)稱"PO"); Scrum Master(敏捷教練); Team(團(tuán)隊(duì))。其中,Scrum Master是其重要的角色之一。那么今天我們就來探討一下如何做一個(gè)合格的Scrum Master。
Scrum Master在許多的項(xiàng)目開發(fā)中被視為項(xiàng)目經(jīng)理,這其實(shí)是個(gè)誤區(qū)。同時(shí)我也經(jīng)常看到有人主張將Scrum Master與項(xiàng)目經(jīng)理完全區(qū)分,對(duì)于此我也不太同意。在我看來Scrum Master雖然并非項(xiàng)目經(jīng)理,但是仍然肩負(fù)著很多項(xiàng)目經(jīng)理的職能。那么Scrum Master的職責(zé)究竟是什么呢?該怎樣做才能成為一名合格的Scrum Master呢?以下六項(xiàng),供您參考。如有不妥之處,歡迎探討;)
管理Scrum流程
這是Scrum Master最核心的職責(zé),也是Scrum Master區(qū)別于項(xiàng)目經(jīng)理的最顯著的特征。Scrum Master需要維護(hù)每個(gè)sprint的流程,確保每個(gè)sprint能夠順利的實(shí)施以及完成。
首先,Scrum Master負(fù)責(zé)主持召開sprint期間的每一個(gè)會(huì)議,包括sprint plan meeting, daily scrum meeting, sprint grooming meeting,sprint review meeting以及sprint retrospective meeting。
另外,Scrum Master還需要幫助PO建立product backlog與sprint backlog,并確立其中每個(gè)story的優(yōu)先級(jí)。
最后,Scrum Master還需要幫助Team清除在開發(fā)的過程中遇到的障礙。Scrum Master應(yīng)該有一個(gè)block list用來記錄Team在開發(fā)中遇到的問題障礙,由Scrum Master自己進(jìn)行管理并最終使得列表中的每一問題得到及時(shí)處理。
保護(hù)團(tuán)隊(duì)
Scrum Master應(yīng)該最大限度的保護(hù)Team,以確保Team不會(huì)被外界,尤其是PO干擾。那么Scrum Master該如何保護(hù)團(tuán)隊(duì)呢?Team在什么情況下需要保護(hù)呢?
在每個(gè)sprint的初期制定計(jì)劃的時(shí)候,Scrum Master應(yīng)合理的根據(jù)Team的工作能力以及過往經(jīng)驗(yàn),承諾工作量。不要盲目樂觀的給PO承諾過量的工作。我就遇到過有的Scrum Master可能是對(duì)于Team的能力估計(jì)不足,也可能是希望通過承諾更過的工作獲取老板的芳心,承諾了太多的工作,結(jié)果導(dǎo)致Team在sprint的后期連續(xù)加班,致使Team的效率嚴(yán)重降低。同時(shí)由于時(shí)間的匆忙,急于交付,導(dǎo)致了項(xiàng)目的質(zhì)量很低,最終形成了惡性循環(huán)。一個(gè)好的Scrum Master在這個(gè)時(shí)候是應(yīng)該要懂得如何與PO“周旋”,獲取合理的工作量。這里的“周旋”并非消極怠工,故意減少Team的工作量,這其實(shí)是通過安排合理的工作量來使團(tuán)隊(duì)達(dá)到最大的工作效率,同時(shí)不會(huì)傷害Team的積極能動(dòng)性。這是一個(gè)良性的循環(huán)。
我們都知道,需求的變更對(duì)于每一個(gè)開發(fā)人員來說都是噩夢(mèng),而敏捷誕生的其中的一個(gè)很重要的原因就是為了解決這一問題,讓開發(fā)者擁抱變化。然而在我們采用敏捷開發(fā)的項(xiàng)目中,經(jīng)常可以遇到Product Owner越過Scrum Master,直接找到Team, 對(duì)他們指手畫腳,發(fā)號(hào)施令。這個(gè)時(shí)候,Scrum Master應(yīng)該像“猛獸”一樣將PO“吼開”,以避免Team受到“傷害”。需求改變可以,但是不應(yīng)該在sprint的過程中干擾Team, 可以在daily scrum meeting或者sprint plan meeting上提出,共商解決方案。我覺得Scrum Master對(duì)Team在很多時(shí)候都應(yīng)該有一種“護(hù)犢子”的精神。確保Team神圣不可侵犯。
有效溝通
很多時(shí)候Scrum Master起到了一種“承上啟下”的作用。一頭面對(duì)的PO以及自己的老板,另一頭面對(duì)的是Team。很容易使人感覺Scrum Master仿佛在夾縫中求生存,容易兩邊都不討好。因此,溝通藝術(shù)的重要性不言而喻。如何說服PO,使得老板滿意,并且讓Team開心,這是一門學(xué)問。對(duì)于此,下面幾點(diǎn)可以作為參考:
1. 面向老板:
應(yīng)定期及時(shí)的通報(bào)項(xiàng)目的狀態(tài)與進(jìn)展,不要等到老板親自來問,可以通過表格以電子郵件的方式發(fā)送。主要匯報(bào)進(jìn)展?fàn)顟B(tài),避免過于細(xì)節(jié)的內(nèi)容;
遇到問題,應(yīng)及時(shí)上報(bào),使得問題在出現(xiàn)時(shí)就能得到重視,并被及時(shí)解決。如果等到截止時(shí)間才發(fā)布?jí)南ⅲ敲淳徒o了你的老板對(duì)你進(jìn)行微觀管理的機(jī)會(huì)。
2. 面向Team:
最重要的一點(diǎn),應(yīng)以身作則,態(tài)度端正;
充分了解Team中每個(gè)成員的能力狀況,防止出現(xiàn)工作量盲目承諾的問題;
通過daily scrum meeting讓Team中每個(gè)人都能明確了解最新的進(jìn)展與形勢(shì);
遇到問題,應(yīng)對(duì)事不對(duì)人。
把關(guān)質(zhì)量
此刻開始,Scrum Master更像是一個(gè)項(xiàng)目經(jīng)理。無論是質(zhì)量,進(jìn)度還是團(tuán)隊(duì)建設(shè)都更像是項(xiàng)目經(jīng)理的職責(zé)。對(duì)于Team來講,這時(shí)的Scrum Master不再是那個(gè)“保護(hù)”我們的人,而變成了那個(gè)“收保護(hù)費(fèi)”的大佬。然而,在實(shí)際項(xiàng)目中,Scrum Master確實(shí)要承擔(dān)這些職責(zé),只不過有些已經(jīng)融入到日常的scrum流程中去了。
關(guān)于質(zhì)量的管理,我想其重要性不言而喻。質(zhì)量是決定了產(chǎn)品的命運(yùn)。那么如何把關(guān)質(zhì)量了。在敏捷實(shí)踐中,如下的經(jīng)驗(yàn)可供參考:
1)欲速則不達(dá)。不應(yīng)過于強(qiáng)調(diào)速度,應(yīng)保持合理的開發(fā)節(jié)奏,才會(huì)使得產(chǎn)品質(zhì)量具有一定的保障。Scrum流程在每個(gè)sprint應(yīng)統(tǒng)一完整,使得Team形成習(xí)慣,最終達(dá)到良好的開發(fā)節(jié)奏。
2)制定coding style,并堅(jiān)持代碼審查。代碼的規(guī)范非常重要,好的代碼可以提高整體團(tuán)隊(duì)的開發(fā)與溝通的效率。好的代碼會(huì)說話。代碼審查可以結(jié)對(duì)完成,只有審查通過,才可以提交代碼。可以通過創(chuàng)建pull request來進(jìn)行代碼的審查,通過之后,再merge到代碼庫中去。
3)寫單元測(cè)試。單元測(cè)試的重要性我想大家都明白,只是很多人覺得寫起來痛苦,麻煩,占用開發(fā)時(shí)間。有了單元測(cè)試,你的代碼才是經(jīng)得起考驗(yàn)的代碼。
4)冒煙測(cè)試。在每天下班之前,停止push代碼,然后進(jìn)行冒煙測(cè)試。冒煙測(cè)試成功之后,才會(huì)下班回家。這是一種很好的方法,它保證了每天功能都是可用的,從而確保了質(zhì)量。
5)自動(dòng)化測(cè)試。它的好處,不用多說,誰用誰知道:)
6)提早集成,以便頻繁獲取反饋。這樣的好處在于我們可以及時(shí)的得到用戶的需求反饋,進(jìn)而能夠及早修正。
7)最后,我要強(qiáng)調(diào)一句:不要加班,不要加班,不要加班。
跟蹤進(jìn)度
進(jìn)度管理是Scrum Master的又一項(xiàng)項(xiàng)目經(jīng)理職責(zé)。對(duì)于scrum中進(jìn)度的監(jiān)控,我們有很多的方法,也非常有效。
先說工具,敏捷開發(fā)中,比較傳統(tǒng)的跟蹤進(jìn)度,同時(shí)使用也非常廣泛的一種方式是Story Board(故事版)。這種方式簡(jiǎn)單直觀,非常有效。即使現(xiàn)在已經(jīng)涌現(xiàn)了很多非常優(yōu)秀的電子管理工具,許多團(tuán)隊(duì)仍然對(duì)它情有獨(dú)鐘。近些年一些電子的跟蹤進(jìn)度的srcum工具出現(xiàn)了很多。比較有名的像是jira. 它的使用也非常的簡(jiǎn)單直觀,而且功能非常豐富強(qiáng)大,強(qiáng)烈推薦大家使用。
另外,我們可以通過daily scrum meeting獲取到Team每天的工作進(jìn)展。此時(shí)我們可以根據(jù)進(jìn)展進(jìn)行一些必要的調(diào)整。
團(tuán)隊(duì)建設(shè)
團(tuán)隊(duì)建設(shè)是項(xiàng)目開發(fā)中絕對(duì)不容忽視的一環(huán)。團(tuán)隊(duì)凝聚力如何,直接影響了整個(gè)團(tuán)隊(duì)的戰(zhàn)斗力。因此,建設(shè)好團(tuán)隊(duì),是每個(gè)Scrum Master的重要使命。
那么如何有效的進(jìn)行團(tuán)隊(duì)建設(shè)呢?
1)放權(quán)。敏捷開發(fā)的其中的一個(gè)重要的特征就是團(tuán)隊(duì)自組織。團(tuán)隊(duì)自組織的優(yōu)勢(shì)就在于,通過放權(quán)給團(tuán)隊(duì),讓它們自主的思考,設(shè)計(jì)開發(fā),不對(duì)其干預(yù),從而使得團(tuán)隊(duì)中每個(gè)人具有成就感,進(jìn)而提高整個(gè)團(tuán)隊(duì)的積極能動(dòng)性。
2)打造學(xué)習(xí)型團(tuán)隊(duì)。一個(gè)方法就是通過團(tuán)隊(duì)內(nèi)部知識(shí)定期分享的方式,使得每個(gè)人都能可以學(xué)到新的知識(shí),從而逐步使得團(tuán)隊(duì)成長(zhǎng)。比如每周五的下午4點(diǎn),可以利用一小時(shí)的時(shí)間,讓團(tuán)隊(duì)的成員舉辦知識(shí)講座。通過這種形式,大家的積極性會(huì)變的很高。可以約定分享的內(nèi)容并非一定是技術(shù)方面的,也可以是生活?yuàn)蕵返龋灰蠹腋信d趣就好。這樣做的好處在于不僅提高了團(tuán)隊(duì)的技術(shù)能力,也使得團(tuán)隊(duì)之間能夠更輕松愉快的交流,從而提升團(tuán)隊(duì)的凝聚力,戰(zhàn)斗力。
3)最后,提高團(tuán)隊(duì)最有效的一個(gè)方法,那就是一個(gè)字:吃;)這是拉攏吃貨們的大好時(shí)機(jī)。當(dāng)然這個(gè)需要經(jīng)費(fèi),不過方法總會(huì)有的,你懂的;)