如果團(tuán)隊(duì)同時(shí)在實(shí)現(xiàn)多個(gè)故事該怎么辦?
如果團(tuán)隊(duì)每次實(shí)現(xiàn)一個(gè)故事,將代碼發(fā)布到主干中并不算什么大不了的事情。只要這個(gè)故事相關(guān)的代碼在工作分支上完成實(shí)現(xiàn)并通過測試,我們把所有的相關(guān)內(nèi)容從工作分支上復(fù)制到主干上就可以了。搞定!
先等一下。如果團(tuán)隊(duì)中同時(shí)開發(fā)多個(gè)故事呢?如果“開戶”故事完成了,而“存款”還在進(jìn)行中呢?
如果我們在這個(gè)點(diǎn)上向主干進(jìn)行同步,就會(huì)將尚未完成的“存款”故事同步進(jìn)去,這時(shí)它還不能發(fā)布呢!而且違反了主干的版本控制方針!
當(dāng)然,我們可以等到“存款”故事完成。
(等待……)
好了,現(xiàn)在“存款”故事完成了!太棒了!等一下……現(xiàn)在有人開始開發(fā)“取款”用戶故事了!沒錯(cuò)!同樣的問題又發(fā)生了!

如果 “存款”故事的一個(gè)測試失敗了,就很難知道是因?yàn)椤按婵睢惫适孪嚓P(guān)代碼造成的,還是由于檢入同一分支中并且部分完成的“取款”故事相關(guān)代碼的原因。
等待無法起到任何幫助作用。這樣實(shí)際上是在滾雪球,期望在未來某個(gè)假設(shè)的時(shí)間點(diǎn)上所有的故事都可以完成(如果這樣的情況真的能夠發(fā)生的話),而且可以進(jìn)行一次大規(guī)模的發(fā)布。
上述是一個(gè)非常普遍的問題。我們該怎么做呢?
下面是一些應(yīng)對之策:
不要做過多的并行開發(fā)。要力圖將團(tuán)隊(duì)的注意力每次都只放在一個(gè)故事之上。 如果在“開戶”完成之前就有人準(zhǔn)備開始“存款”相關(guān)的工作,要等到“開戶”徹底完成之后再檢入“存款”相關(guān)代碼;蛘呖梢詫ⅰ按婵睢毕嚓P(guān)的代碼檢入到一個(gè)臨時(shí)的分支之中,如果你喜歡操作多個(gè)分支的話。 如果在“開戶”完成之前就有人準(zhǔn)備開始“存款”相關(guān)的工作,可以讓他先從一些相對安全和不可見的UI元素等部分開始,這些東西的變化不會(huì)影響到整個(gè)分支的可發(fā)布性。比如,“存款”需要開發(fā)一些新的代碼以及對一些舊有代碼的修改,可以先實(shí)現(xiàn)新的代碼(新的方法、新的類、新的測試等等),而不是先去修改已有代碼。如果“存款”需要新的GUI元素,那就讓它們先不可見。等到“開戶”故事完成而且發(fā)布到主干上之后,我們就可以開始實(shí)現(xiàn)“存款”的剩余代碼了。
此文章共有2頁 1 2 下一頁
文章來源:中國項(xiàng)目管理資源網(wǎng)
|