您好,登錄后才能下訂單哦!
本文是“松結(jié)對編程”系列的第三篇。
估算是經(jīng)久不衰的管理話題,大致分為兩種流派。
第一種是領(lǐng)導(dǎo)指派,領(lǐng)導(dǎo)說這是10天的活,就必須當(dāng)是10天的活來干,如果干不完,可以用加班、損失質(zhì)量、功能縮水等各種方法曲線救場。另一個(gè)變種是大家自己估算,但是交給領(lǐng)導(dǎo)審批;領(lǐng)導(dǎo)審批其實(shí)就是砍一半的過程,還好大家之前就已經(jīng)加了一倍,所以不怕。
第二種是自我管理派(偏敏捷),就是由具體開發(fā)的人員自己說開發(fā)工作量,領(lǐng)導(dǎo)和他人不干預(yù)。盡管“自組織”了,但是領(lǐng)導(dǎo)深以為這種方法留下了偷懶的種子,而隊(duì)員也覺得某人的估算很不靠譜(太長或太短),到底怎么辦呢?
共同估算吧。
--------------------------------------------
基本概念
假設(shè)現(xiàn)在是一個(gè)計(jì)劃會(huì)上,PO(產(chǎn)品經(jīng)理,策劃組長,項(xiàng)目經(jīng)理,某銷售……)剛剛講完需求,下一步不是交給某人做估算,而是交給某個(gè)潛在的組(師傅+1~3徒弟)。
由師傅帶頭打牌,對,在計(jì)劃會(huì)上玩撲克:
1. 大家各自思考可能要花多久時(shí)間完成任務(wù),扣一張牌出來;
2. 師傅喊開牌,大家亮牌,比較大小;
3. 一般最小和最大的兩個(gè)人PK,說出自己的觀點(diǎn),大家一起討論;
4. 差異無非來自于兩個(gè)方面:做什么,怎么做;PO參與討論回答做什么的問題,師傅和徒弟們討論解決怎么做的問題;
5. 討論過后再來幾輪,直到大家覺得結(jié)果差不多了。
撲克牌估算的匿名性和開放性保證了大家不會(huì)人云亦云,也不會(huì)因?yàn)槿鄙贉贤ǘy以達(dá)成一致。
筆者的經(jīng)驗(yàn)是一局撲克牌估算大約持續(xù)1~5分鐘,還是很快的。偶然有黃莊的,一般都是因?yàn)镻O那里回答不了做成什么樣子,某某附加功能是否也要做……等等問題時(shí)。
幾個(gè)問題
1. 為什么分給組而不是個(gè)人?
不分個(gè)人就打牌使得每個(gè)人都不得不思考,因?yàn)榕鲁鲥e(cuò)了牌又說不出所以然。這樣即使日后他不做這個(gè)功能,也對這個(gè)功能很了解。
2. 為什么不讓最后領(lǐng)任務(wù)的人自己估算?
因?yàn)樗芸赡芤驗(yàn)椴恢滥炒a可用、不知道某軟件不行、不懂template(我們因此扔過1個(gè)人月代碼)……而選擇了錯(cuò)誤的實(shí)現(xiàn)方法。
3. 為什么不讓師傅估算大家采納,他不是最厲害嗎?
師傅的想法常常是徒弟們理解不了的——比如為什么不留在女兒國而偏偏去西天取經(jīng)之類的,呵呵——共同估算就是讓大家在思考中對照自己的實(shí)現(xiàn)方法和師傅差異的過程。
4. PO怎么還參加?不是不讓別人干預(yù)嗎?
很多問題比如在游戲中“顯示武林排行榜”,具體工作量可能不在于怎么做而在于做什么:憑什么排名?排多少名?實(shí)時(shí)排名還是每周排名?怎么顯示排名?……因此PO不能寫出一堆文檔,然后以不便干預(yù)估算為名不參加敏捷計(jì)劃會(huì)議。
PO可以挑戰(zhàn)估算,比如:“這真的要這么久嗎?我記得上次……”但要有理有據(jù)。其實(shí)實(shí)踐中更容易看到的是,團(tuán)隊(duì)往往過于激進(jìn)樂觀,PO反而要讓他們意識到完整的需求和要求,做出更現(xiàn)實(shí)的估算。估算不準(zhǔn)確,PO也有責(zé)。
5. 一直無法達(dá)成一致怎么辦?
其實(shí)估算不是為了最后那個(gè)數(shù)字,而是弄清楚做什么和怎么做的問題,如果這兩件事情清楚了,但結(jié)果卻是偏偏有人說4天有人說6天,隨便取個(gè)數(shù)就可以了(事實(shí)是應(yīng)該按墨菲定理取6天)。有師傅在,一般很少會(huì)就實(shí)現(xiàn)方法爭執(zhí)不下;有PO在,一般很少會(huì)就要實(shí)現(xiàn)什么爭執(zhí)不下。
不排除有特殊情況比如PO發(fā)現(xiàn)自己也沒想過排行榜憑什么排行,那么就應(yīng)該擱置此用戶故事;又比如大家覺得如果數(shù)據(jù)庫給力可能實(shí)時(shí)排名也行但又拿不準(zhǔn),可以暫時(shí)擱置到開發(fā)的時(shí)候再說,但把故事上標(biāo)注一下“若需要每周自動(dòng)排名+1天”。如果經(jīng)常黃莊,Scrum Master要分析總結(jié)避免。
6. 四個(gè)人出牌不同,師傅先說還是徒弟先說?
想起個(gè)腦筋急轉(zhuǎn)彎:科學(xué)家 醫(yī)生 士兵 護(hù)士 ……等等一群人在飛機(jī)上,飛機(jī)結(jié)冰快墜落了需要有人(可能不止一個(gè))跳下去,問誰跳?答案是從體重最重的人開始跳,因?yàn)榭梢陨偬鴰讉€(gè)。
因此我們是出牌數(shù)字最小的先說,和師徒無關(guān)。因?yàn)樗麡O有可能掌握最佳實(shí)現(xiàn)方法。如果后來發(fā)現(xiàn)不是如此,請參考下一條。
7. 都有什么理由可陳述?
按下面的順序,越靠前的越接近真理,感覺自己接近真理的就一定要舉手先說,馬后炮招人嫌:
經(jīng)驗(yàn)事實(shí):我以前做過……咱們有個(gè)類庫……那個(gè)方法我試過不可行……
蛛絲馬跡:誰還記得上次……聽說隔壁……與上回相比……你以前不是……
邏輯推理:理論上說……我覺得……
幾個(gè)注意事項(xiàng)
1. 小組內(nèi)不要有強(qiáng)分工,否則大家會(huì)缺省認(rèn)為肯定是某人的工作。
2. 師傅不要太搶眼,要通過估算鼓勵(lì)徒弟思考,同時(shí)也掌握徒弟的真實(shí)水平。
3. 師傅不要太較真,編程規(guī)范、易用性、易維護(hù)性這些紀(jì)律不能放松,但如果徒弟想嘗試一種不同但工作量也差不多的方法,可以適當(dāng)鼓勵(lì)。
4. Scrum Master監(jiān)控整個(gè)過程,防止太細(xì)/爭執(zhí)……等問題。
5. PO必須參加。
----------------------------------------------------------
共同估算依靠PO的參與解決了做什么的問題,依靠師傅的帶動(dòng)解決了怎么做的問題。
共同估算是“跨職能團(tuán)隊(duì)”的基礎(chǔ)活動(dòng)之一,之后他們之所以能在每日立會(huì)上分享當(dāng)前進(jìn)展與困難,就是因?yàn)楫?dāng)初是他們一起思考這一任務(wù)的,因此對這一任務(wù)后來的實(shí)際情況非常關(guān)心。在發(fā)生問題的時(shí)候,大家也更可以互相幫助,而不是毫不所知。
下一篇將會(huì)涉及日常工作/每日立會(huì)等迭代期內(nèi)的工作。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。