6.1 交付過程
我們先來介紹軟件交付的全過程。根據第5章介紹的一個典型的軟件交付過程,我們對軟件交付過程的全貌有了基本的了解。我們大體可以把軟件交付過程劃分為三個層級,它們有不同的變更顆粒度和不同的生命周期。
? 第一個層級:代碼改動累積并最終提交。從在一行代碼上做了一點改動開始,改動不斷累積,同時不斷進行質量驗證,直到把累積起來的改動提交到服務器端的代碼庫。
? 第二個層級:特性改動累積并最終提交。從特性分支收到代碼改動的提交開始,特性代碼改動的提交不斷累積,同時不斷進行質量驗證,直到完整實現的特性提交集成。
? 第三個層級:集成并最終發布。從集成分支收到特性改動的提交開始,特性改動的提交不斷累積,同時不斷進行質量驗證,直到這些特性發布上線。
上面的第二個層級可能被省略,而在某些大型系統或大型項目中也可能有更多的層級。我們還是針對典型情況進行分析。
這三個層級有不同的顆粒度和執行的頻繁程度。一次特性改動提交通常包含了一兩個開發人員的若干次代碼改動提交,而一次發布則通常包含了多個開發人員完成的多個特性。
這三個層級有一個共同的特點:每個層級都可以分為先后兩個部分,先是在不斷累積代碼改動的同時持續地驗證質量;后是等改動都完成后進行最后的質量驗證,驗證通過就意味著這個層級完成了。具體來說:
? 在第一個層級,先是開發人員在本地IDE中進行開發工作,不斷累積代碼改動,并隨時進行構建、代碼掃描、單元測試、自測試等活動,持續地驗證質量;后是等改動完成,且構建等活動也沒有問題后,把累積起來的改動提交到服務器端的代碼庫。
? 在第二個層級,先是特性分支不斷收到代碼改動的提交,不斷累積代碼改動,同時不斷進行質量驗證;后是這個特性分支上的改動完成,使用合并請求管理特性改動的提交過程,直到這個特性分支上的改動都合并到集成發布分支。
? 在第三個層級,先是集成發布分支不斷收到特性分支的合入,不斷累積代碼改動,同時不斷進行質量驗證;后是在集成了本次計劃發布的所有特性之后,進行發布前的一系列質量驗證工作,直到最終發布上線。
在考查軟件交付的全過程時,我們將按這三個層級中每個層級的先后兩個部分分別考查,即一共考查6個細分領域。