|
項(xiàng)目的目地是為了創(chuàng)造一項(xiàng)產(chǎn)品或服務(wù),因此,產(chǎn)品本身的生產(chǎn)工藝必然會(huì)成為項(xiàng)目管理過程的核心內(nèi)容。無論在哪一種軟件工程方法中,軟件配置管理都是一項(xiàng)不可或缺的重要管理內(nèi)容,特別是對(duì)于服務(wù)企業(yè)內(nèi)部的信息技術(shù)部門來說,從產(chǎn)品生命周期出發(fā),同時(shí)支持服務(wù)產(chǎn)品和軟件產(chǎn)品,同時(shí)負(fù)責(zé)開發(fā)與運(yùn)行,其管理復(fù)雜度很高,要想理順各項(xiàng)工作的內(nèi)部關(guān)系、理清各項(xiàng)工作之間的配合關(guān)系,都離不開配置管理這個(gè)基本手段,它是許多管理工作的“落地”部分。其實(shí),配置管理并不是一個(gè)時(shí)髦的概念,在許多傳統(tǒng)行業(yè)(例如)中早已有之,軟件行業(yè)只是在軟件工程方法中繼續(xù)延用了這一概念,它是一流軟件開發(fā)企業(yè)所必備的基礎(chǔ)設(shè)施。 在項(xiàng)目管理中,配置管理是一種重要的管理手段。在PMI的PMBOK中對(duì)于配置管理系統(tǒng)是這樣描述的: ConfigurationManagementSystem.Asubsystemoftheoverallprojectmanagementsystem.Itisacollectionofformaldocumentedproceduresusedtoapplytechnicalandadministrativedirectionandsurveillanceto:identifyanddocumentthefunctionalandphysicalcharacteristicsofaproduct,result,service,orcomponent;controlanychangestosuchcharacteristics;recordandreporteachchangeanditsimplementationstatus;andsupporttheauditoftheproducts,results,orcomponentstoverifyconformancetorequirements.Itincludesthedocumentation,trackingsystems,anddefinedapprovallevelsnecessaryforauthorizingandcontrollingchanges.Inmostapplicationareas,theconfigurationmanagementsystemincludesthechangecontrolsystem. 由此可見,配置管理是一個(gè)非常寬泛的概念,項(xiàng)目中只要是需要進(jìn)行管理的任何特性,都可以納入配置管理。配置管理不只是操作層面的問題,更是管理理念、管理方法的問題,是一個(gè)系統(tǒng)。 項(xiàng)目范圍管理需要配置管理來落實(shí) 在項(xiàng)目范圍管理中,需要識(shí)別和控制項(xiàng)目的交付成果,要描述交付物應(yīng)有的各種特性。這些交付物及其特性,就是配置管理中的配置項(xiàng)。從項(xiàng)目管理的角度,WBS只需要分解到可管理(Manageable)的程度,而配置管理則要求分解到最終可操作的程度,管理的粒度更為精細(xì)。因此,良好的配置管理機(jī)制,是項(xiàng)目范圍管理得到最終落實(shí)的保證。 在許多軟件開發(fā)項(xiàng)目中,項(xiàng)目范圍管理涉及三個(gè)方面:業(yè)務(wù)需求、技術(shù)結(jié)構(gòu)、投產(chǎn)服務(wù)。編寫哪些程序模塊,實(shí)現(xiàn)哪些功能,部署到哪些地點(diǎn),這其實(shí)都是項(xiàng)目范圍管理所要關(guān)注的內(nèi)容,在配置管理中對(duì)應(yīng)了產(chǎn)品的物理屬性和功能屬性以及服務(wù)的屬性,都可以通過配置管理來識(shí)別、記錄和跟蹤。只有做好軟件配置管理,才能真正把項(xiàng)目的范圍管理做實(shí)。 業(yè)務(wù)需求決定了軟件產(chǎn)品的功能特性,對(duì)軟件產(chǎn)品的配置管理,首先就是對(duì)業(yè)務(wù)需求的管理。在業(yè)務(wù)需求中,要求軟件產(chǎn)品所提供的各種功能和特性,包括界面風(fēng)格、操作方式、處理流程、業(yè)務(wù)規(guī)則、數(shù)據(jù)邏輯等,也都是軟件產(chǎn)品的配置項(xiàng),這種對(duì)業(yè)務(wù)需求的分解、管理的過程,就是對(duì)業(yè)務(wù)需求中的配置項(xiàng)的管理過程。當(dāng)項(xiàng)目中業(yè)務(wù)需求發(fā)生變更時(shí),其實(shí)就是對(duì)這些配置項(xiàng)的變更管理。因此,在軟件工程過程中,配置管理是需求管理的基本手段,通過科學(xué)、嚴(yán)謹(jǐn)?shù)呐渲霉芾矸椒?,?duì)業(yè)務(wù)需求進(jìn)行識(shí)別、分解、跟蹤、控制,直接決定了對(duì)業(yè)務(wù)需求的管理能力。許多公司目前在需求管理方面還處于粗放型的管理,雖然基本能夠滿足項(xiàng)目管理的需要,但對(duì)于軟件工程過程來說,管理粒度還比較粗,而且缺乏明確的配置項(xiàng)的定義,缺少有效的跟蹤控制手段,還需要更精細(xì)的管理。 技術(shù)結(jié)構(gòu)是軟件產(chǎn)品的物理屬性,軟件產(chǎn)品的配置管理,也是對(duì)軟件內(nèi)部技術(shù)結(jié)構(gòu)的管理。從技術(shù)方案到軟件產(chǎn)品、再到產(chǎn)品內(nèi)部結(jié)構(gòu),這也是項(xiàng)目范圍不斷分解、細(xì)化的過程。為了實(shí)現(xiàn)業(yè)務(wù)需求、滿足產(chǎn)品外部特征的要求,軟件產(chǎn)品應(yīng)如何設(shè)計(jì)其內(nèi)部結(jié)構(gòu),劃分內(nèi)部模塊、定義模塊接口、確定有多少個(gè)程序等等,產(chǎn)品分解到最后,每一個(gè)程序都作為一個(gè)單獨(dú)的配置項(xiàng)進(jìn)行管理,在開發(fā)過程中對(duì)于程序的修改都納入配置管理,跟蹤程序變化過程。這種對(duì)軟件產(chǎn)品從技術(shù)角度的不斷分解和定義,就是基于技術(shù)結(jié)構(gòu)的配置項(xiàng)管理,是與軟件結(jié)構(gòu)設(shè)計(jì)相對(duì)應(yīng)的,配置項(xiàng)的劃分是否合理,使用起來是否靈活、方便,哪些可以成為公共組件(Component),其實(shí)反映的都是軟件設(shè)計(jì)的思想。在有的軟件企業(yè)中,配置管理不只是程序員的操作工具,它已經(jīng)成為工程技術(shù)管理的重要手段,是由公司的總工牽頭負(fù)責(zé)的。因此,配置管理是軟件工程過程中技術(shù)管理的基本手段,起到對(duì)技術(shù)結(jié)構(gòu)進(jìn)行分解、識(shí)別、跟蹤和控制的作用。 投產(chǎn)服務(wù)與軟件產(chǎn)品的部署有關(guān),是對(duì)項(xiàng)目服務(wù)特性的要求。運(yùn)營企業(yè)中可能同時(shí)有多個(gè)應(yīng)用系統(tǒng),相互之間往往具有很高的耦合度,一項(xiàng)新業(yè)務(wù)的推出,往往需要多個(gè)軟件產(chǎn)品配合修改和同步投產(chǎn)。因此,從業(yè)務(wù)角度來說,一個(gè)新的業(yè)務(wù)產(chǎn)品的實(shí)現(xiàn),需要多個(gè)軟件模塊(產(chǎn)品)的支持,不同投產(chǎn)單位中這些軟件模塊(產(chǎn)品)的版本配合關(guān)系不同。那么對(duì)于運(yùn)行中心來說,需要面臨同時(shí)滿足業(yè)務(wù)產(chǎn)品和軟件產(chǎn)品的雙重要求,既要保證業(yè)務(wù)產(chǎn)品的完整性和多樣性,又要保證軟件產(chǎn)品的一致性和兼容性。因此,對(duì)于投產(chǎn)管理來說,也有同樣的配置管理的要求,是必須在企業(yè)級(jí)來考慮的。 配置管理中的版本管理和變更管理 配置管理中要記錄、控制、報(bào)告各種屬性(配置項(xiàng))的變化狀態(tài),這就是配置管理中的版本管理和變更管理,有變更才有不同的版本,版本又成為變更控制的主要對(duì)象,這兩者是緊密關(guān)聯(lián)的。 首先要澄清一下版本的概念。在配置管理中,每個(gè)配置項(xiàng)的每個(gè)狀態(tài)都可以稱為一個(gè)版本,配置項(xiàng)的演變過程就可以體現(xiàn)為一棵版本樹。而我們平時(shí)經(jīng)常說的版本,實(shí)際是指軟件產(chǎn)品的版本,不是具體配置項(xiàng)的版本。一個(gè)軟件產(chǎn)品版本是由眾多配置項(xiàng)組成的,每個(gè)配置項(xiàng)最多只能選取它的一個(gè)版本組成一個(gè)特定的產(chǎn)品版本。因此,在我們平時(shí)談到“版本”時(shí),需要明確是配置項(xiàng)的版本還是軟件產(chǎn)品的版本,否則容易在溝通中帶來混淆。既然版本管理是配置管理中的一項(xiàng)內(nèi)容,那么對(duì)于在軟件產(chǎn)品版本管理中遇到的各種實(shí)際問題,就需要放在配置管理這個(gè)大背景中,基于配置管理的理論、方法和工具來考慮,才能逐步理清。 項(xiàng)目中的變更管理是大家都已經(jīng)很熟悉的工作,從概念上來說,變更管理也屬于配置管理工作的一部分。在軟件開發(fā)項(xiàng)目中,無論是功能需求的變更、技術(shù)需求的變更還是服務(wù)需求的變更,也都可以將變更要求與配置項(xiàng)建立對(duì)應(yīng)關(guān)系,演變成為配置項(xiàng)的變更,配置項(xiàng)在變更前后形成不同的版本,這樣就使得變更管理能夠有的放矢。如果不能將變更要求落實(shí)到具體的配置項(xiàng)上,項(xiàng)目中許多的變更控制就難以具體落實(shí)。 具體來說,在每一項(xiàng)開發(fā)任務(wù)中,都需要首先設(shè)定開發(fā)基線,確定各個(gè)配置項(xiàng)的開發(fā)初始版本,在開發(fā)過程中,開發(fā)人員基于開發(fā)基線的版本,開發(fā)出所需的目標(biāo)版本。當(dāng)發(fā)生需求變更時(shí),通過對(duì)變更的評(píng)估,確定變更的影響范圍,對(duì)被影響的配置項(xiàng)的版本進(jìn)行修改,根據(jù)變更的性質(zhì)使配置項(xiàng)的版本樹繼續(xù)延伸或產(chǎn)生新的分支,形成新的目標(biāo)版本,而對(duì)于不受變更影響的配置項(xiàng)則不應(yīng)發(fā)生變動(dòng)。同時(shí),應(yīng)能夠?qū)⒆兏a(chǎn)生的對(duì)版本的影響進(jìn)行記錄和跟蹤,必要時(shí)還可以回退到以前的版本,例如當(dāng)開發(fā)需求或需求變更被取消時(shí),就需要有能力將版本回退到開發(fā)基線版本。在曾經(jīng)出現(xiàn)過的季度升級(jí)包拆包和重新組包的過程中,其實(shí)就是將部分配置項(xiàng)的版本回退到開發(fā)基線,將對(duì)應(yīng)不同需求的不同分支重新組合歸并,形成新的升級(jí)包版本。 配置審計(jì)是配置管理中的一項(xiàng)重要工作內(nèi)容,有時(shí)被分為物理審計(jì)和功能審計(jì),通過物理審計(jì)按照配置管理計(jì)劃來驗(yàn)證所要求的各配置項(xiàng)的完整性,通過功能審計(jì)來檢查各配置項(xiàng)的內(nèi)容是否完全符合用戶的要求。配置審計(jì)是配置管理工作中的重要一環(huán),也是項(xiàng)目工作中的一項(xiàng)內(nèi)容。
信息發(fā)布:廣州名易軟件有限公司 http://www.jetlc.com
|