对于持续交付的考虑
from:?http://qing.weibo.com/1407988324/53ec3264330007e6.html
無(wú)論發(fā)布按照小時(shí)、天還是周計(jì)數(shù),只要每個(gè)sprint產(chǎn)出都有release也是持續(xù)交付。mainline里面的代碼隨時(shí)可發(fā)布,是指隨時(shí)可以進(jìn)入發(fā)布流程,這個(gè)流程包含自動(dòng)化測(cè)試(單元測(cè)試、模塊測(cè)試、繼承測(cè)試)和手動(dòng)測(cè)試以及部署。
追求mainline里面的代碼可隨時(shí)發(fā)布,要求有充分的自動(dòng)話測(cè)試流程。根據(jù)項(xiàng)目大小、復(fù)雜程度以及自動(dòng)化測(cè)試的情況,這一發(fā)布流程耗時(shí)可能是小時(shí)、天或者周計(jì)。
基于branch的開(kāi)發(fā)是一種正常的開(kāi)發(fā)活動(dòng),無(wú)論是feature branch還是hot fix。只是要注意merge的評(píng)率,避免等待merge的代碼過(guò)多。因此要注意任務(wù)、user story的拆分。?
縮短發(fā)布時(shí)間要求縮短開(kāi)發(fā)測(cè)試時(shí)間。小的項(xiàng)目或者已經(jīng)比較成熟的項(xiàng)目(比如只是維護(hù)小升級(jí)),可以縮短sprint。有些項(xiàng)目則不能縮短sprint,畢竟sprint里面包含了分析設(shè)計(jì)和測(cè)試的時(shí)間。這里拆分user story是關(guān)鍵。在具體到一個(gè)sprint的時(shí)候要拆分任務(wù),小幅修改或者先設(shè)計(jì)框框再逐漸填內(nèi)容以實(shí)現(xiàn)小步release。
總之,兩次發(fā)布之間的間隔越短,changes對(duì)系統(tǒng)的影響就越小,測(cè)試的壓力就越小。拆分user story可以縮短sprint,拆分任務(wù)和好的設(shè)計(jì)可以縮短release時(shí)間,減少測(cè)試壓力。自動(dòng)化測(cè)試很重要。
對(duì)于refactor,也可以采用拆分任務(wù)的方法,refactor也是有步驟的,可逐步實(shí)現(xiàn)。每次refator一部分。
最后,持續(xù)交付的目的是能夠快速更新,響應(yīng)用戶(hù),并不是將發(fā)布權(quán)交給business決定,那只是看上去的效果,代碼如果有問(wèn)題,business再怎么樣也發(fā)布不出去。
?
轉(zhuǎn)載于:https://www.cnblogs.com/franklin/archive/2011/12/08/2280750.html
總結(jié)
- 上一篇: 行为型模式:迭代器模式
- 下一篇: 汇编语言:编写代码实现字符串的复制