怎樣保證每個(gè)團(tuán)隊(duì)成員高效地工作,使組織產(chǎn)生最大的效益,是每一個(gè)經(jīng)理最大的挑戰(zhàn)。為了能夠幫助項(xiàng)目團(tuán)隊(duì)成員在軟件開發(fā)中實(shí)現(xiàn)團(tuán)隊(duì)的自我管理,讓團(tuán)隊(duì)找到自身的問題,實(shí)時(shí)地反映項(xiàng)目的進(jìn)度,讓團(tuán)隊(duì)成員知道每天應(yīng)該做什么......為了解決這些問題,我們的日常開發(fā)以Scrum為基本框架,并特別強(qiáng)調(diào)團(tuán)隊(duì)的自我管理。具體做法是:
短迭代
每兩個(gè)星期一個(gè)Sprint。每個(gè)Sprint給幾個(gè)客戶做演示。產(chǎn)品負(fù)責(zé)人會(huì)根據(jù)演示的反饋以及原先的發(fā)布計(jì)劃重新整理Product Backlog,并由此產(chǎn)生下一個(gè)Sprint的計(jì)劃。因此團(tuán)隊(duì)的每個(gè)Sprint的任務(wù)是由業(yè)務(wù)驅(qū)動(dòng)的。
用戶故事
產(chǎn)品負(fù)責(zé)人會(huì)在計(jì)劃會(huì)議開始之前整理成用戶故事。產(chǎn)品負(fù)責(zé)人在整理用戶故事過程中會(huì)注意收集真正客戶想要的東西,理解客 戶的意愿,而不是業(yè)務(wù)以及技術(shù)上怎樣實(shí)現(xiàn)。在計(jì)劃會(huì)議會(huì)議中,給團(tuán)隊(duì)成員解釋需求,團(tuán)隊(duì)成員會(huì)根據(jù)對(duì)需求的理解提出可能的方案(當(dāng)然也有可能是多個(gè)方案),分出任務(wù),對(duì)任務(wù)做出估計(jì)。
但是這些估計(jì)也是比較粗略的,很多時(shí)候需求還是不能很明確,但是一般達(dá)到大家能夠?qū)τ脩艄适掠幸粋€(gè)基本的理解,能夠開始 著手,能夠做出大體的估計(jì)的程度就可以。
在Sprint過程中,還會(huì)不斷發(fā)現(xiàn)新的需求,或者采用或者否決一些方案。這些都是每個(gè)Scrum團(tuán)隊(duì)在 Sprint中動(dòng)態(tài)調(diào)整的。
迭代開始時(shí),避免任務(wù)分配到個(gè)人
在計(jì)劃會(huì)議會(huì)議中,用計(jì)劃游戲,每個(gè)人都參與估計(jì),每個(gè)人都要求理解用戶故事。在Sprint中,每個(gè)成員根據(jù)一些簡單的原則來認(rèn)領(lǐng)任務(wù)(比如從上到下優(yōu)先級(jí),不超過最大并發(fā)任務(wù)數(shù))。通過結(jié)對(duì)編程、Wiki等一些知識(shí)共享的手段,多數(shù)人很快就能勝任各種任務(wù)。
周期性的例會(huì)
在例會(huì)中團(tuán)隊(duì)成員匯報(bào)進(jìn)度(做了什么),承諾(根據(jù)當(dāng)前情況,下一步要做什么),需求(有哪些困難,需要其他成員或者組織的幫助)。團(tuán)隊(duì)會(huì)重新估計(jì)剩下的任務(wù),如果需要,項(xiàng)目成員和產(chǎn)品負(fù)責(zé)人一起調(diào)整Sprint Backlog。
其次,合理使用信息輻射器(Information Radiator,另見The Ideal Agile Workspace),我們目前使用的信息輻射器包括:Sprint Backlog,這是整個(gè)項(xiàng)目團(tuán)隊(duì)自我管理的核心,實(shí)時(shí)反映項(xiàng)目的狀況。通過Sprint Backlog可以了解到任務(wù)分配,項(xiàng)目進(jìn)展(燃盡圖),缺陷,困難等等。Sprint Backlog上的不同類任務(wù)用不同顏色區(qū)分,一目了然。很容易就可以了解任務(wù)分配,Sprint的瓶頸以及困難在哪里。