1. 程式人生 > >閒談專案管理之配置管理篇

閒談專案管理之配置管理篇

  每個專案都少不了配置管理,地球人都知道。 1.配置管理的重要性 配置管理可以保證專案產品的一致性,完整性和可追溯性。(地球人都知道) 很簡單的例子,某個專案組成員的機器蹦了,如果他的程式碼還沒有進入配置庫,嘿嘿 ,他就慘了。再例如,專案如果想回溯到前一個版本(或里程碑),如果沒有配置管理,那麼這將是一件“Mission Impossible”。 2.配置管理的工具 實在太多了。開源的有:CVS和SVN(實際上是一夥人做的),商業的有:微軟的VSS,IBM的ClearCase等等。本人有幸這些工具都有用過,CVS和SVN最大的優勢是免費,但是在版本管理上ClearCase是最強大也是最靈活的,VSS最易用。 3.如何實施配置管理 ·確定配置管理資源
主要是指由誰來負責配置管理,以及配置伺服器和配置工具等軟硬體資源。配置管理人員可以是專職的也可以是兼職的。一般大型專案都需要一名甚至多名專職的配置管理人員。 ·確定配置項 由專案經理和配置管理人員一起確定到底哪些文件或程式碼需要進行配置管理。原則上,專案過程中所有的產出都應該納入配置管理當中,甚至包括一些重要的郵件也需要管理起來。 ·確定配置庫的結構 從邏輯上,可以分成三個部分:開發區,管理區,和存檔區。一個配置項必須在開發區進行修改或新建,這裡的開發區不是指本地機器,而是配置管理的一個快取區,記住所有本地的程式碼必須及時存入開發區中。一旦完成對配置項的修改,就可以放入管理區了。一般一個階段結束時,需要將當前管理區中所有配置項放入存檔區。以ClearCase為例,我們會首先建一個MainLine,在此基礎上根據需要建立不同的專案Branch。如果某個專案成員需要修改某個文件,需要先在專案Branch上建立自己的Branch作為開發區,修改完了以後,就應該Merge到專案Branch上,這時專案Branch就成為管理區;當到了一定階段(某里程碑),配置管理人員就會在專案Branch上打一個Label,這個Label所代表的就是存檔區。 ·確定配置準則
主要包括配置庫的許可權和操作配置庫的一些準則。一般,對管理庫和存檔庫只有管理員才有許可權,開發人員對開發區可以自由操作。配置庫的操作準則可以包括:每天幾點之前必須把程式碼存入開發庫;同時需要修改一個文件時,如何操作;入庫時的Comments怎麼寫;配置項如何命名;Label如何命名;配置項變更需要哪些步驟等等。 ·確定配置項入庫計劃 原則上需要在計劃中明確什麼時候什麼文件或程式碼需要納入配置庫的管理庫中,可以參考進度計劃。 ·基線計劃 基線是一個邏輯上的概念,是配置庫(管理區)中某一穩定狀態下某些配置項的集合。基線計劃需要確定需要建立哪些基線,什麼時候建立基線,每條基線包括哪些配置項等等。一般在某一里程碑時,都需要做一個基線。因此,基線計劃可以根據專案的進度計劃而定。基線的動作可能很簡單,就是打一個Label。 ·配置項審計
其實配置項的審計是配置管理人員的主要工作之一。配置庫需要進行定期的審計,審計的主要方法就是根據配置準則和配置計劃對配置庫的配置項進行審計。審計出來的常見問題包括:配置項是否按計劃入庫,配置項入庫的方式是否遵守了配置準則,配置項的名字是否符合準則,配置項的內容是否正確,配置項的變更是否正常。 ·基線審計 首先需要對基線本省進行審計,看看是否按計劃建立了基線,以及基線對應的配置項是否正確。在基線建立前,需要對納入基線的配置項進行審計,看看是否符合基線計劃的要求。