敏捷開(kāi)發(fā)的一些體會(huì)
PS:哥雖然有Scrum Master的證書(shū)但還是反對(duì)什么都往敏捷頭上套。
公司之所以選擇這個(gè)項(xiàng)目進(jìn)行Scrum試點(diǎn)有如下幾個(gè)原因:
1、上一個(gè)版本原計(jì)劃半年結(jié)果做了1年,公司近三分之一的開(kāi)發(fā)和測(cè)試資源砸了上去。
2、需求頻繁變化,產(chǎn)品經(jīng)理和開(kāi)發(fā)測(cè)試人員相互扯皮。
3、產(chǎn)品倉(cāng)促上線,大量功能未經(jīng)充分測(cè)試。
4、新上任的工程總監(jiān)是敏捷開(kāi)發(fā)愛(ài)好者,正好拿此項(xiàng)目開(kāi)刀。
現(xiàn)在Scrum正式開(kāi)始了,但是我在這里要問(wèn)一句我們開(kāi)發(fā)軟件的目的是什么?這個(gè)還要問(wèn)嗎?不就是為了發(fā)行后賺錢嗎!帶著這個(gè)問(wèn)題,我們美國(guó)的項(xiàng)目經(jīng)理 我們準(zhǔn)備什么時(shí)候發(fā)行?哥承認(rèn)被shock了,那位大哥的回答是:我們現(xiàn)在開(kāi)始敏捷了,一個(gè)sprint接一個(gè)sprint做,啥時(shí)干完啥時(shí)發(fā)行。好吧, 幸虧這個(gè)項(xiàng)目的測(cè)試不是哥直接負(fù)責(zé),你愛(ài)咋地咋地。(其實(shí)哥是對(duì)自己手下的兄弟有信心,真要做砸了我們估計(jì)還能成為僅有的亮點(diǎn)。)
帶著 同志們的祝福,項(xiàng)目開(kāi)始了。每個(gè)sprint不管3721只要產(chǎn)品經(jīng)理腦袋一拍,一堆需求就塞進(jìn)來(lái)了。開(kāi)發(fā)看著只有一句話描述的需求面對(duì)的回復(fù)是:現(xiàn)在是 敏捷開(kāi)發(fā)了,要多溝通少文檔。溝你妹啊!一個(gè)在中國(guó),一個(gè)在美國(guó),郵件溝通一來(lái)一去一天就沒(méi)有了。電話?是你熬夜呢還是我黎明即起?3周一個(gè) sprint,光把需求搞明白就一周去掉了,然后做啊做啊,還有2天sprint就要結(jié)束了,可是突然一看任務(wù)列表,50個(gè)只完成了30個(gè),怎么辦?根據(jù) Scrum的教條,sprint是不能延期的,那么做不完的就踢到下一個(gè)sprint去好了,反正沒(méi)有發(fā)行日期,慢慢做好了。嗯,很好,這個(gè)sprint 我們順利完成了35個(gè)任務(wù)!做啊做啊,3個(gè)月過(guò)去了,產(chǎn)品經(jīng)理看看幾個(gè)大功能也有模有樣了,很好,我們宣布某某新版本順利發(fā)行!!!(先開(kāi)槍再畫(huà)圈,很好 很強(qiáng)大!)
顯然這樣的敏捷開(kāi)發(fā)是不能讓高層滿意的,大家坐下來(lái)總結(jié)經(jīng)驗(yàn)教訓(xùn),推出了2.0版,更新如下:
1、大老板希望更快的看到成果匯報(bào),sprint周期由三周縮短為兩周。
2、中美各成立一個(gè)Scrum小組,本地測(cè)試支持本地開(kāi)發(fā),每個(gè)sprint的任務(wù)按比例分配。
3、產(chǎn)品經(jīng)理必須提供更完善的設(shè)計(jì)文檔。
4、加強(qiáng)溝通,每周雙方召開(kāi)例會(huì)。
5、除去在美國(guó)的主產(chǎn)品負(fù)責(zé)人和Scrum master,在上海增設(shè)本地的產(chǎn)品負(fù)責(zé)人和Scrum master,部分決策可以就地做出,不必請(qǐng)示美國(guó)。
6、開(kāi)發(fā)必須寫(xiě)單元測(cè)試。
這些改動(dòng),3456點(diǎn)都是對(duì)項(xiàng)目整體有利的。第1點(diǎn)帶來(lái)的問(wèn)題是如果開(kāi)發(fā)工作稍 有延誤,留給測(cè)試的空間就十分有限了。第2點(diǎn)則喜憂參半,好處是上海團(tuán)隊(duì)有了更大的自主權(quán),壞處是測(cè)試開(kāi)發(fā)比嚴(yán)重不足。因?yàn)樯虾5臏y(cè)試leader要兼任 Scrum master,所以測(cè)試和開(kāi)發(fā)是2.5比7,而美國(guó)的測(cè)試和開(kāi)發(fā)則是4比6。不過(guò)考慮到本地測(cè)試生產(chǎn)率高于美國(guó),而且開(kāi)發(fā)也愿意擠出時(shí)間來(lái)幫助測(cè)試執(zhí)行測(cè)試用例,在2個(gè)sprint之后,上海團(tuán)隊(duì)表現(xiàn)良好,而美國(guó)團(tuán)隊(duì)依然落后于進(jìn)度。
雖然2.0版的Scrum比起1.0版大有進(jìn)步,但是依然存在以下幾個(gè)問(wèn)題:
1、周期太短,開(kāi)發(fā)完成工作后留給測(cè)試的時(shí)間太少。
2、上海的測(cè)試長(zhǎng)期超負(fù)荷工作。
3、因?yàn)橹芷谔蹋詻](méi)有時(shí)間做測(cè)試自動(dòng)化,這樣導(dǎo)致在無(wú)法做自動(dòng)化的回歸測(cè)試,只能依賴手工測(cè)試選取幾個(gè)關(guān)鍵測(cè)試用例保證之前的功能正常工作。
雖然還是有種種問(wèn)題,但好歹是穩(wěn)步前進(jìn)了。周期恢復(fù)到三個(gè)星期,人手不夠開(kāi)始招實(shí)習(xí)生,自動(dòng)化測(cè)試沒(méi)時(shí)間做那么就上線后集中拉一段時(shí)間補(bǔ)課。
通過(guò)近半年的Scrum實(shí)踐,我總結(jié)了一些經(jīng)驗(yàn)和大家分享一下:
1、一定要有一個(gè)release目標(biāo),要根據(jù)這個(gè)目標(biāo)倒過(guò)來(lái)排計(jì)劃。
2、PO和Scrum master必須有豐富的傳統(tǒng)開(kāi)發(fā)模式經(jīng)驗(yàn),不然項(xiàng)目很容易失控。
3、每天的例會(huì)后Scrum master要迅速跟進(jìn),重大問(wèn)題要立刻解決,什么工作生活平衡全是扯淡,執(zhí)行力必須是第一位。
4、雖說(shuō)搞Scrum要求每個(gè)員工都積極主動(dòng),但是開(kāi)發(fā)和測(cè)試leader還是要花很多時(shí)間分配任務(wù),調(diào)整優(yōu)先級(jí)。開(kāi)發(fā)必須為測(cè)試和修復(fù)bug留出足夠時(shí)間。
5、自動(dòng)化測(cè)試非常重要,早做晚做一定要做。
6、員工之間的知識(shí)共享非常重要,誰(shuí)都有個(gè)頭疼腦熱,不能因?yàn)橐粋€(gè)人暫時(shí)離開(kāi)就影響項(xiàng)目進(jìn)度。
7、單元測(cè)試幫助很大,一是避免了很多基礎(chǔ)的業(yè)務(wù)邏輯錯(cuò)誤,二是可以讓開(kāi)發(fā)更清楚業(yè)務(wù)邏輯。
posted on 2013-05-24 10:41 順其自然EVO 閱讀(289) 評(píng)論(0) 編輯 收藏