我將對源代碼控制作最后的解釋。團隊不應(yīng)該僅僅對所寫代碼進行版本控制;還必須對編譯與測試代碼的流程(或腳本)進行版本控制。如果團隊需要先前的代碼,那么就可以回溯到所需的構(gòu)建和測試流程。
構(gòu)建自動化
自動化構(gòu)建是團隊用以評估當前軟件或系統(tǒng)穩(wěn)定性的第一步。而且,自動化的構(gòu)建還可以降低程序花費在不必要任務(wù)上的時間,并且減少了來自開發(fā)流程的瓶頸(也就是,團隊依靠于一個構(gòu)建人員或一個獨立的構(gòu)建團隊),從而實現(xiàn)了對于改變的更迅速的響應(yīng)。
這一實踐的目的是將構(gòu)建流程簡化為一個任何程序員都可以執(zhí)行的點擊一個按鈕的 行為。這一行為應(yīng)該包括相關(guān)系統(tǒng)的全部代碼,不論程序員工作于什么組件或接口上。同時,系統(tǒng)必須能夠快速編譯。更快的工作站、增加的編輯和可選擇的編譯器可以使得編譯時間更加短暫。對于程序員來說,寫新代碼的同時快速構(gòu)建系統(tǒng)的能力具有許多好處。首先,它幫助程序員驗證編碼時設(shè)想的正確性 -- 例如,檢驗一個外部 API 是否如設(shè)想似的工作。其次,規(guī)則化的代碼構(gòu)建可以預(yù)防問題的發(fā)生。最后,它能夠識別未知的很少通過本地構(gòu)建顯現(xiàn)的"遠離"系統(tǒng)部分依賴關(guān)系。
自動化的構(gòu)建將會減少團隊編輯和收集問題的時間。程序員不再需要等待數(shù)小時或者執(zhí)行一組費勁的任務(wù)以確信新寫的代碼能夠編譯。取而代之的是,在程序員編寫代碼后不久,他就能夠知道是否新代碼與舊有代碼集成到了一起。這表示編譯與集成錯誤將會變得顯而易見,且處理起來更迅速更容易。
最后,自動化的構(gòu)建對于更大系統(tǒng)更加重要。 大項目會繼承或連接大量其它平臺的系統(tǒng),尤其是需要考慮有意義的聯(lián)合構(gòu)建流程的實際策略。在這種環(huán)境中要想獲得較短的編譯時間是極具挑戰(zhàn)性的。文章的后面我將會探討一些處理大系統(tǒng)構(gòu)建的方法 -- 就是說,對于一個團隊來說,編譯與測試完整的系統(tǒng)并不是現(xiàn)實的。
自動的移植及部署
這是在自動構(gòu)建之后的步驟。自動化的移植與部署行為的原因是為了精簡與增強來自測試環(huán)境開發(fā)與生產(chǎn)環(huán)境的構(gòu)建提升的可預(yù)見性。大量的問題往往來自首次引入系統(tǒng)測試、用戶驗收測試、在生產(chǎn)環(huán)境摸索的項目。在自動化移植中,團隊可以將代碼轉(zhuǎn)入干凈的"生產(chǎn)級" 環(huán)境,在那里可以執(zhí)行自動化的單元和系統(tǒng)級測試。通過在接近生產(chǎn)環(huán)境下測試,團隊可以在系統(tǒng)測試前識別出環(huán)境、集成和性能方面的問題。這樣可使得團隊更加熟悉實際的產(chǎn)品部署流程。最后,當自動化的實現(xiàn)了主要的產(chǎn)品部署流程時,就可以從公式中去除了人所犯的錯誤。
另一個移植與部署的重點是這些行為由一個專職團隊負責管理。將這些流程集成入項目團對每日的行為中能夠為各個團隊帶來有效及時地平衡。無可否認的是,對于大型企業(yè)來說這是極具挑戰(zhàn)性的,因為他們的規(guī)模、報告結(jié)構(gòu)和多重地理范圍的因素。下面我將會更深入的探討這一問題的解決方案。
此文章共有8頁 上一頁 1 2 3 4 5 6 7 8 下一頁
文章來源:中國項目管理資源網(wǎng)
|