轉(zhuǎn)自Baiyan Huang同學(xué)应民, 感覺(jué)對(duì)初學(xué)者還是很有幫助的吼拥。
為什么Scrum
對(duì)于我們team來(lái)講倚聚,這其實(shí)是個(gè)被動(dòng)的過(guò)程。
我們部門之前在一些team實(shí)行過(guò)Scrum凿可,可能是感覺(jué)效果還不錯(cuò)惑折,而且覺(jué)得原來(lái)的瀑布模型太過(guò)古老和死板授账,于是決定今年年初開(kāi)始全面實(shí)施Scrum。
由于大家都是新手惨驶,公司采用了兩個(gè)方法:
1. 一是超密集的培訓(xùn)白热。請(qǐng)專門機(jī)構(gòu)來(lái)培訓(xùn);請(qǐng)US的同事來(lái)培訓(xùn)粗卜;請(qǐng)實(shí)施過(guò)Scrum的同事來(lái)培訓(xùn)...
2. 二是實(shí)戰(zhàn)演練屋确。組成幾個(gè)臨時(shí)的team,用兩個(gè)禮拜的時(shí)間跑一個(gè)sprint续扔,使大家對(duì)Scrum的理解從理論拓展到實(shí)際...攻臀,同時(shí)也有利于培養(yǎng)出第一批的Scrum Master...
當(dāng)然,自我學(xué)習(xí)也是一個(gè)很重要的過(guò)程纱昧,在那段時(shí)間刨啸,也參閱了不少這個(gè)領(lǐng)域的好書(shū):Scrum書(shū)籍豆列。
我們是怎么做的
配合Scrum的流程识脆,我們使用了Wiki和Jira來(lái)管理項(xiàng)目设联。
Jira主要是管理整個(gè)項(xiàng)目的User Story和Task,以及相關(guān)的一些材料灼捂,討論等离例。Wiki則用來(lái)管理整個(gè)項(xiàng)目的安排和每個(gè)Sprint的狀況。
大概列一下我們跑的流程:
1. 在項(xiàng)目初始階段悉稠,先整個(gè)team在一起頭腦風(fēng)暴宫蛆,想出所有可能的story,由于問(wèn)題的不確定性偎球,可能需要幾個(gè)session洒扎。
2. PO(Product Owner)回去整理,細(xì)化每個(gè)story衰絮,并做好rank袍冷。
3. Team做完所有story的point估算。 (為了獲得team對(duì)story point猫牡,對(duì)velocity的感覺(jué)胡诗,最好先跑一、兩個(gè)sprint淌友。不然可以先估計(jì)煌恢,然后逐步調(diào)整)
4. 根據(jù)team的velocity和總的story point,做出release plan震庭。并設(shè)定出一些主要的milestone(一般三個(gè)sprint一個(gè)milestone)瑰抵,release plan需要隨著product backlog的不斷更新而更新。
5. 我們的sprint長(zhǎng)度是兩周器联。感覺(jué)剛好二汛,因?yàn)橐恢艿脑捫稣福瑴p去所有會(huì)議時(shí)間,剩下的時(shí)間就不多了肴颊;三周以上的話感覺(jué)對(duì)整個(gè)sprint的掌控度不夠氓栈,而且不易應(yīng)對(duì)impediments。
6. Plan meeting的agenda一般為:設(shè)定sprint的goal婿着;計(jì)算team的availability授瘦;估算上個(gè)sprint中新創(chuàng)建的story的point;選擇這個(gè)sprint的要做的story竟宋;Task breakdown & assignment提完。
7. Review和Retrospective meeting一般放在一起,agenda為:對(duì)過(guò)去一個(gè)sprint的總體回顧袜硫,如planning時(shí)commit的story氯葬,遇到的impediments等挡篓;輪流demo自己所做的task婉陷;確定story的狀態(tài):complete,split或者defer官研;restrospective秽澳。
8. Daily meeting中大家輪流講一下自己的狀態(tài),人少的話還可以討論一些具體的問(wèn)題戏羽。
9. Wiki中包含的信息:項(xiàng)目概況担神;team組成;項(xiàng)目文檔始花;release planning妄讯;team calendar;product backlog酷宵;其中每個(gè)sprint會(huì)有一個(gè)頁(yè)面:sprint goal與commit的point亥贸;該sprint的team availability;會(huì)議時(shí)間與地點(diǎn)浇垦;上個(gè)sprint的retrospective的結(jié)果炕置;本sprint的notes;本sprint的impediments記錄等等男韧。
10. Jira是PO的好朋友朴摊,是SM(Scrum Master)的好幫手。Jira用來(lái)管理所有的story與task此虑,以及關(guān)于story與task的文檔與討論甚纲。具體的,我們可以用Epic來(lái)表示一些項(xiàng)目的大方向并鏈接相關(guān)story朦前;用其他類型的item(如improvement)表示分隔欄介杆,用來(lái)分隔must have讹弯,nice to have等,并且可以使用label來(lái)標(biāo)記相關(guān)story这溅。
11. 對(duì)于不是很明確的story组民,一般分成兩步走:一個(gè)investigation的story,一個(gè)實(shí)際工作的story悲靴。這樣化整為零就能比較好的解決其估算問(wèn)題了臭胜。雖然對(duì)于第一個(gè)investigation的story也不是很清晰,但根據(jù)經(jīng)驗(yàn)癞尚,還是可以給一個(gè)比較靠譜的估計(jì)耸三。
12. 很多bug很難根據(jù)描述判斷其effort,所以我們一般有個(gè)慣例浇揩,就是一個(gè)bug默認(rèn)給3個(gè)小時(shí)仪壮,如果經(jīng)過(guò)3個(gè)小時(shí)的研究后發(fā)現(xiàn)問(wèn)題比較大,可以另外拎出來(lái)放到下個(gè)sprint去完成胳徽。
13. 為了便于更好的估算积锅,一般需要積累一些不同size的story作為baseline。
14. story point不能太大养盗,不然失去其準(zhǔn)確性就沒(méi)有什么意義了缚陷,如20,40等,一般情況下往核,8以上的story是不應(yīng)該出現(xiàn)的sprint中的箫爷。
15. 用excel表統(tǒng)計(jì)team availability,根據(jù)availability以及歷史數(shù)據(jù)算出可commit的story point數(shù)聂儒。利用excel的計(jì)算功能可以自動(dòng)化整個(gè)的計(jì)算過(guò)程虎锚。
哪里需要改進(jìn)
1. 每個(gè)story的COS(Criteria Of Satisfaction)需要明確定義,也就是需要有完整的acceptance test衩婚。
2. Scrum是個(gè)比較流程性的東西窜护,尤其是會(huì)議,所以在開(kāi)會(huì)的時(shí)候谅猾,一定要注重實(shí)效柄慰,不要為了流程而流程從而浪費(fèi)了無(wú)數(shù)時(shí)間。
我對(duì)Scrum的感受
1. Daily meeting有兩個(gè)很重要的作用:一個(gè)是表面上的税娜,讓大家了解team的狀態(tài)坐搔;另一個(gè)是潛在的,催促大家努力工作以便在這個(gè)會(huì)議中能講點(diǎn)什么敬矩。
2. 依賴于product backlog與team velocity的數(shù)據(jù)支持概行,使得team對(duì)自己能做什么比較清晰,加強(qiáng)了項(xiàng)目的可控性弧岳。
3. 充分的交流凳忙,利于及時(shí)發(fā)現(xiàn)問(wèn)題业踏,利于得出最佳的方案