項(xiàng)目管理:軟件配置管理實(shí)踐

字號(hào):

現(xiàn)在大家都已經(jīng)認(rèn)識(shí)到了有效的軟件配置管理工作對(duì)于提高團(tuán)隊(duì)開(kāi)發(fā)效率、保障軟件產(chǎn)品質(zhì)量的重要意義,很多朋友也開(kāi)始了在配置管理實(shí)施方面的一些研究,市場(chǎng)上我們也可以看到一些軟件配置管理工具廠(chǎng)商針對(duì)具體配置管理工具提供的實(shí)施服務(wù);但是,實(shí)施軟件配置管理到底應(yīng)該做哪些東西?團(tuán)隊(duì)的配置管理現(xiàn)狀怎么評(píng)估?在哪些方面還可以進(jìn)行改進(jìn)?我們相信,這些問(wèn)題可能正困擾著大多數(shù)研發(fā)主管和項(xiàng)目經(jīng)理。
    國(guó)外軟件產(chǎn)業(yè)界在軟件配置管理這個(gè)專(zhuān)題上已經(jīng)進(jìn)行了多年的理論和實(shí)踐上的研究。在多年經(jīng)驗(yàn)積累的基礎(chǔ)上,產(chǎn)業(yè)界總結(jié)出來(lái)一系列“實(shí)踐”(Best Practices),我們可以使用這些“實(shí)踐”來(lái)作為評(píng)估一個(gè)組織軟件配置管理能力的標(biāo)尺,也可以作為我們實(shí)施軟件配置管理的指南。這些“實(shí)踐”包括:
    1、 標(biāo)識(shí)需要進(jìn)行存儲(chǔ)的工件(Artifact)并保障安全存儲(chǔ);
    2、 控制并且審計(jì)(Audit)對(duì)于工件的修改;
    3、 設(shè)立并管理基線(xiàn)(Baseline);
    4、 記錄并跟蹤變更請(qǐng)求;
    5、 維護(hù)穩(wěn)定、一致的工作空間;
    6、 支持對(duì)于工件和控件的并發(fā)修改;
    7、 盡早集成、持續(xù)集成;
    8、 保證軟件構(gòu)建的重現(xiàn)能力;
    9、 以控件(Component)為單位實(shí)施版本控制;
    10、 使用“活動(dòng)”(Activity)來(lái)組織和整合版本集。
    下文將介紹前5條實(shí)踐。
    1、標(biāo)識(shí)需要進(jìn)行存儲(chǔ)的工件(Artifact)并保障安全存儲(chǔ)
    在軟件開(kāi)發(fā)過(guò)程中,我們會(huì)得到各種各樣的產(chǎn)出,比如各種文檔、模型、源代碼以及測(cè)試腳本等,我們把這些大家勞動(dòng)的成果統(tǒng)稱(chēng)為工件(Artifact)。對(duì)于一個(gè)軟件開(kāi)發(fā)組織來(lái)說(shuō),這些工件就構(gòu)成了組織的核心資產(chǎn)。對(duì)于如現(xiàn)金、有價(jià)證券之類(lèi)的資產(chǎn),我們都會(huì)準(zhǔn)備一個(gè)保險(xiǎn)箱,好好地保存;對(duì)于軟件資產(chǎn),我們也需要相似的措施。所以,軟件配置管理工作的第一步就是建立一個(gè)安全、可靠的存儲(chǔ)庫(kù)(Repository),用于保存組織的核心軟件資產(chǎn)。
    這個(gè)庫(kù)對(duì)于開(kāi)發(fā)團(tuán)隊(duì)來(lái)說(shuō),就像是財(cái)務(wù)室里的保險(xiǎn)箱。因此,容錯(cuò)能力和高可靠性是這個(gè)庫(kù)最重要的屬性。除此之外,隨著組織的增長(zhǎng),置于庫(kù)中的數(shù)據(jù)會(huì)越來(lái)越多,為保證運(yùn)行效率,庫(kù)的可擴(kuò)展性也是非常重要的一個(gè)屬性。
    對(duì)于存儲(chǔ)庫(kù)來(lái)說(shuō),良好規(guī)劃的備份和災(zāi)難恢復(fù)過(guò)程是必不可少的。令人驚訝的是,很多軟件組織在這方面都沒(méi)有給予必要的重視,因而也給組織的發(fā)展留下了嚴(yán)重的隱患,一旦災(zāi)難發(fā)生,后果不堪設(shè)想。
    在建立好存儲(chǔ)庫(kù)以后,需要做的工作就是確定將哪些工件置于庫(kù)中。根據(jù)實(shí)際需要,組織可能會(huì)決定只將正式文檔、模型文件、源代碼、發(fā)布版本等文件放入庫(kù)中,而對(duì)于臨時(shí)文檔、編譯時(shí)產(chǎn)生的中間文件等,則不將它們放入庫(kù)中。我們把放入庫(kù)中的文件稱(chēng)之為配置項(xiàng)(Configuration Item)。
    2、控制并且審計(jì)(Audit)對(duì)于工件的修改
    在標(biāo)識(shí)相關(guān)的工件并將它們置于存儲(chǔ)庫(kù)中以后,我們需要建立對(duì)于這些工件的修改控制機(jī)制以及審計(jì)機(jī)制。
    庫(kù)里的工件不是誰(shuí)想修改就可以修改的。控制機(jī)制必須保證只有拿到授權(quán)的人員才能對(duì)相關(guān)工件進(jìn)行修改,而審計(jì)機(jī)制則保證修改的動(dòng)作被完整地記錄,也就是說(shuō),誰(shuí)修改了這個(gè)工件,什么時(shí)候做的修改,為什么原因做出這個(gè)改動(dòng),以及修改了哪些地方(Who、When、Why、What)。
    審計(jì)機(jī)制通常通過(guò)“檢出/檢入”(Check out/Check in)模式得到實(shí)現(xiàn)。在這種模式下,工件一旦入庫(kù),讀寫(xiě)權(quán)限就變成只讀(read only),如果要對(duì)該工件進(jìn)行修改,則需要通過(guò)“檢出”這個(gè)步驟;在修改結(jié)束以后,如果希望將修改的成果入庫(kù),則需要通過(guò)“檢入”這個(gè)步驟。在經(jīng)過(guò)一次“檢出/檢入”步驟以后,會(huì)形成該工件新的版本,因此也有人把上邊的過(guò)程稱(chēng)之為“版本控制”(Version Control)。在版本控制過(guò)程中,如果利用一些配置管理工具(或者版本控制工具)的支持,則可以自動(dòng)地記錄審計(jì)工作所需的四個(gè)“W”(Who、When、Why、What)。