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