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