软件集成的7重境界
?
第1重,手工打開(kāi)n個(gè)工程,復(fù)制m個(gè)文件,按照腦袋里的次序一個(gè)一個(gè)編譯,花費(fèi)了不少時(shí)
間,總算編譯完成了。換個(gè)工程師來(lái)編譯就出了好多錯(cuò),問(wèn)了很多問(wèn)題,最后歷經(jīng)千難萬(wàn)險(xiǎn)
總算編譯成了,但是跑起來(lái)一看,發(fā)現(xiàn)漏了點(diǎn)什么,如是反復(fù)幾次,最后總算編出了個(gè)勉強(qiáng)
可用的版本。
第2重,書(shū)寫(xiě)了編譯說(shuō)明書(shū),照著說(shuō)明,手工打開(kāi)n個(gè)工程,復(fù)制m個(gè)文件,按照次序一個(gè)一
個(gè)編譯。就算換個(gè)人來(lái),也能照著編出來(lái)。
第3重,書(shū)寫(xiě)了編譯腳本,能夠做到一鍵編譯
第4重,階段編譯, 每隔1周或幾周,進(jìn)行一次自動(dòng)的大集成編譯,并且配套進(jìn)行測(cè)試,
第5重,每日集成,一天就執(zhí)行一次,一般是在晚上做,也有nightly build的說(shuō)法,整個(gè)過(guò)
程的時(shí)間可以長(zhǎng)達(dá)12小時(shí)以上,所以可以安排界面自動(dòng)化測(cè)試、代碼檢查等比較耗時(shí)的任務(wù),可以有全面的每日測(cè)試集,運(yùn)行時(shí)間可以達(dá)到1小時(shí)以上
第6重,持續(xù)集成,配套進(jìn)行快速測(cè)試。每逢checkin做,或者每隔一定時(shí)間(比如半小時(shí))檢查有無(wú)代碼checkin,如果有,就做。 一般的,當(dāng)天的后續(xù)工作對(duì)持續(xù)集成的結(jié)果有依賴,所以對(duì)開(kāi)發(fā)人員而言,需要等待持續(xù)集成的結(jié)果,這樣持續(xù)集成全過(guò)程的時(shí)間就被大大限制了,其測(cè)試集是一個(gè)快速測(cè)試集,一般而言全過(guò)程時(shí)間控制在15分鐘以內(nèi)。
第7重,每日集成+持續(xù)集成,有全面的每日測(cè)試集,運(yùn)行時(shí)間可以達(dá)到1小時(shí)以上。由于每日集成和持續(xù)集成解決的問(wèn)題是有差異的,有少數(shù)組織兩個(gè)都做。
對(duì)以上7重境界的評(píng)論如下。
CMMI組織起碼達(dá)到第2重,敏捷團(tuán)隊(duì)起碼達(dá)到第4重。
CMMI沒(méi)有對(duì)持續(xù)集成和每日集成有具體要求,對(duì)集成提出了要求,要求并不高。持續(xù)集成和每日集成能夠符合CMMI中配置管理和項(xiàng)目集成過(guò)程域的多個(gè)實(shí)踐。
如何最大程度的避免因?yàn)槿斯に鶐?lái)的錯(cuò)誤,那就是把人完成的工作盡量讓機(jī)器完成,第2重就是通過(guò)少量的自動(dòng)化腳本來(lái)減少這種重復(fù)性工作中人為犯錯(cuò)的可能性。
持續(xù)集成應(yīng)該也會(huì)受到所采用的語(yǔ)言和相關(guān)技術(shù)及所開(kāi)發(fā)產(chǎn)品類(lèi)型的影響,可能會(huì)做不到最后那幾重, 而且不是所有的地方都有必要來(lái)追求最高境界的。
總結(jié)
- 上一篇: 透明水晶方法简介
- 下一篇: 敏捷的项目启动-尽早启动!