□趙山山 張來武
在軟件開發中,軟件文件(文檔)常常用來表示對活動、需求、過程或結果進行描述、定義、規定、報告或論證的任何書面或圖示的信息,是軟件產品的一部分。伴隨著軟件的開發與生產,大量的軟件文件產生,這些文件中有保存價值的文件最終將轉為軟件檔案被存儲、保管、開發利用。由于軟件開發的特性,軟件文檔運作過程中主要以電子文件狀態出現。因此在軟件檔案的管理中,建立在“大文件”基礎上的文檔一體化的管理理念和加強軟件檔案的前端控制的文檔一體化管理模式被很多軟件企業廣泛認同。
隨著軟件生產的日益復雜,規模也越來越大,為了提高軟件產品的質量,在軟件工程化中人們的注意力開始集中在軟件生產過程上。為此,國際標準化組織特別為軟件工業制定了ISO9000-3標準,美國卡內基·梅隆大學的軟件工程研究所提出的CMM(用于軟件開發過程和軟件開發能力的改進與評估的模型)也在一些軟件開發企業得到重視和應用。在這些軟件工程化管理方法中,都強調了軟件管理和工程文檔化、標準化,強調基于軟件生存周期加強對軟件文件的生成過程的嚴格控制,以建立規范的文檔,保證軟件開發的質量。其中文件控制工作主要包括:預先建立組織級的軟件文件管理規范標準并在具體軟件項目啟動前進行文件管理的事先策劃,以規范軟件開發中的文件的生成和處理過程,建立并控制基于文件生成過程的文件審批流程,保證軟件文件的質量;加強文件版本控制和變更控制,通過對軟件開發過程中形成的各類軟件文件的不同版本進行標識和跟蹤,保證項目文件的可追溯性及有效性,并通過變更申請、變更評審、變更批準、變更實施等文件變更控制手段,解決軟件文件出現問題時私自更改的狀況,提高軟件技術狀態更改的有效性和嚴肅性,等等。這些對軟件文件生成過程的動態管理,雖最初目的是為了通過過程控制,提高軟件文件質量,保證其現行效用的高效發揮,從而提高軟件項目管理水平。但從軟件文檔一體化管理(全程管理)的角度來看,這也可看作是軟件檔案前端控制的一種表現。因為現代電子檔案管理的前端控制思想就是主張在電子文件生成初采取行動,以保證其歸檔質量,將傳統理論上對檔案實體保管對象的關注,轉變成對文件形成過程的關注,重視文件內容、文件形成者及其過程的有機聯系。從這點來看,軟件工程化中對軟件文件的生成過程的嚴格控制要求與現代檔案管理的前端控制思想有一定的契合。不可否認,軟件工程化中加強軟件文件生成過程控制的做法,將在相當大的程度上影響著檔案后續管理的水平,也將會有助于軟件文檔一體化管理的實現。但畢竟二者在出發點上、控制要求上還是有所區別的,軟件企業在軟件檔案管理中有必要在認清二者異同的基礎上,抓住契機,使兩者相輔相成,相互促進,發揮出檔案前端控制的沖擊力,達到文檔一體化管理的真正目的。
在對一些軟件企業軟件文檔管理工作進行了解的基礎上,筆者認為,要想將軟件工程化中軟件文件控制工作與現代檔案管理的前端控制思想有效結合,推動軟件文檔的一體化管理,有必要加強以下幾個方面的工作。
目前軟件工程化管理水平達到較高水準的軟件企業,為了對本組織內的軟件項目進行規范性管理,組織都會預先建立起一套完整的軟件規范標準(一般由軟件管理標準和軟件技術標準組成),并針對具體軟件項目的特點和研制進度要求在項目初對各項管理工作進行事先的策劃。這些預先制定的規范及項目開始前的策劃都包括了軟件文件的管理規范與要求。如軟件管理標準會明確規定項目在使用各種軟件生存周期時軟件技術文檔的剪裁依據和剪裁指南,同時給出軟件評審和軟件配置管理方面的管理要求。軟件技術標準中軟件文件標準則盡可能給出軟件研制過程中所能產生的軟件各類文件的最大合集,如軟件任務書、軟件需求規格說明書、軟件概要設計文檔、軟件詳細設計文檔等等。同時,給出各類軟件文件的編寫規范和編寫實施指南,有助于軟件技術人員進行軟件文件的編寫工作。而具體項目策劃工作則會根據軟件規范標準和選擇的軟件生存周期模型,對該項目中應產生文件種類、數量、內容等進行早期策劃,規范指導具體項目中將產生文件的編寫與處理。應該說這些規范、標準及前期的策劃,在文件形成初即從內容與形式、處理程序等方面規定軟件開發中產生什么文件,怎樣產生,如何規范。這種文件產生前的規范要求將會保證后期軟件項目中產生文件的規范一致,提高文件質量,這也意味著將有效保障歸檔的軟件檔案的質量。從這點上來看是符合檔案管理中前端控制的思想的?!扒岸丝刂剖菍φ麄€管理過程的目標、要求和規則進行系統分析、科學融合,把需要和可能在文件生成階段實現或部分實現的管理功能盡量在這一階段實現。”①因此,檔案管理的前端控制表現之一,就是在文件形成初即對文件的生成制定一些規范或具體的管理要求,以指導并規范文件的生成過程,從而保證后期歸檔文件的質量符合檔案管理要求。
但我們應該意識到,在軟件工程化中有關文件控制的規范制定與前期策劃工作主要是從軟件開發業務管理的需求出發的,主要側重于從軟件文件的種類、內容與形式、生成環節等方面保證軟件工程中文件的規范一致,提高文件的質量,使其能有效發揮各類軟件文件的現行作用,推動軟件開發工作。因此,它與檔案管理前端控制思想中對文件質量控制的要求是有一定的區別的,不能充分體現軟件檔案前端控制的目的。所以,要想在提高軟件項目管理水平的同時,充分發揮前端控制對檔案管理的作用,更好地推動軟件文檔一體化工作,就應該在規范標準制定和具體軟件項目策劃中不僅考慮軟件開發業務管理的需求,同時要從后期軟件檔案管理的需求出發進行考慮。如,后期檔案管理對歸檔電子文件的質量要求除了從內容的完整規范性來保證它的信息參考價值外,還強調從內容信息、背景信息、結構信息幾方面來保證它的憑證價值。因此在文件生成前,要對文件的背景信息和元數據的著錄等作出規范要求,而不僅僅是文件內容與形式的規范要求。也就是說軟件檔案管理的前端控制應側重于圍繞如何保障后期檔案的真實完整性、安全性與長期有效性的要求進行規范制定與預先策劃工作。因此,制定《軟件研制過程中的文檔管理規范》、《軟件定型后的文檔管理規范》、《軟件技術文件編制要求》、《軟件技術文件編制指南》等軟件規范、標準時以及針對具體軟件項目策劃時,應考慮將后期軟件檔案管理要求考慮編寫進去或作為策劃內容。如,預先確定歸檔范圍(歸檔內容和歸檔版本)、保存價值、采集時間和采集方式、元數據的著錄、要求歸檔文件預先加上標識、建立電子文件登記制度以全面記錄電子文件的文件特征等等。這樣才能充分發揮規范標準的制定及前期策劃工作在軟件檔案前端控制中的作用與優勢,從而全方位規范指導文件生成過程,不僅保證現行文件的質量,還可以保障歸檔文件的真實完整與安全有效。同時也避免文件、檔案控制管理標準、規范及要求的前后不統一,不銜接,導致前后工作的斷層,前者控制成果不能為后者充分利用。
軟件工程化一大要素是工具,即為工程方法提供自動或半自動的開發環境。因此軟件開發過程中常運用很多開發管理工具,包括具有文件生成過程控制功能的工具。如,協助項目開發的建模工具;具有軟件文件審批流程控制功能的辦公自動化管理工具;協助文件管理人員進行文檔版本控制與變更控制的軟件配置管理工具(如Rational ClearCase、Synergy、HanSky)等。這些工具生成、存儲、控制軟件項目中不同階段產生的軟件文件,具有不同的控制管理功能,保證文件制作的質量、文件的可追溯性及有效性,避免軟件開發過程的混亂。而對于軟件檔案管理,采用一個高效的電子文件保存系統,保證軟件檔案以電子方式有效保存、利用、檢索與處置也是企業的最佳選擇。應該說,從某些方面來看,軟件開發中文件控制工具的一些功能與電子文件保存系統強調對文件整個生命過程進行監控和記錄等要求是有一致性的。如,軟件文件的版本控制工具是要對文件生成中不同的版本進行標識和跟蹤,以確保軟件技術狀態的一致性,避免軟件文件的丟失、修改的丟失和相互覆蓋,保證在需要時可以追溯到以前的版本,追蹤到在軟件開發的什么階段、該階段的哪一個環節出現了什么問題,該環節的技術復審負責人是誰。而變更控制工具通過變更申請、變更評審、變更批準、變更實施等程序控制,解決軟件文件出現問題時私自更改的狀況,提高了軟件技術狀態更改的有效性和嚴肅性。而電子文件保存系統為了避免電子文件生成中的易失易變性,保證歸檔文件的真實完整等,也強調對電子文件生成過程中每一環節(如修改變更)進行監控,并留存相應記錄,以嚴密追蹤電子文件的現時狀況及來龍去脈,從而確保電子文件歸檔后的真實與完整。因此,二者具有一定的共通之處,所以企業在選用或開發相應的管理工具時應考慮相互功能的協調,注意彼此的銜接,避免重復與斷層。
但當前有些軟件企業存在的問題是,分別開發或選用不同的軟件文件生成控制工具與軟件檔案管理工具。軟件文件生成控制工具設計初主要出發點是為了工程業務管理的需要,因而在功能設計中經常只考慮實現軟件業務管理需要的文件控制要求,而有意無意會忽略檔案管理業務中文件全程控制的要求。加上這些管理工具往往來自不同的開發公司,因此,工具之間常存在功能重復,控制記錄的做法相異,彼此信息數據不能有效共享的問題,從而造成不同工具系統間不能有效銜接,前一階段的工作成果不能為后一階段有效利用,造成一種浪費,無法有效實現文檔一體化的管理目的。因為文檔一體化管理的要求,或檔案前端控制最大的優勢就是在于減少文件與檔案管理各環節的重復,提高管理效率和質量。
所以,從有效實現軟件文檔一體化管理需求出發,也為了節省資源,避免浪費,企業有必要考慮軟件開發中各種實現文件控制功能的工具之間以及和檔案管理工具間實現無縫鏈接的問題??梢钥紤]結合自己公司業務和文件檔案管理的特點和狀況對工具進行二次開發和重新定制,實現各種工具間的相互銜接和照應,以及適當歸并和簡化,避免功能重復?;驈奈臋n一體化的全程管理需求和軟件項目管理業務需求出發開發集軟件項目管理與文件控制管理和檔案存儲管理為一體的電子信息系統,在滿足各種軟件開發業務管理的要求的同時,有效地連接檔案管理的前端控制和后續管理,防止兩者之間斷層的出現,最大限度地優化資源,發揮出前端控制應有的作用。
文檔一體化管理與以往檔案工作不同之處在于:檔案部門將從希望與文件形成機構合作的“懇求”機構,轉變成一個監督形成者及維護檔案文件活動的審計機構。也就是要有效實現文檔一體化管理,檔案工作者需要更多地參與、指導、監督文件的形成階段,同時也需要得到文件形成者的更多的幫助與支持。但是在目前一些軟件企業中,由于軟件開發過程的專業性,檔案部門還未能全面參與到軟件工程化中的文件控制工作。文件過程控制工作的開展多以質量部門、軟件開發相關技術部門為主負責推動完成。一般情況下,文件控制規范標準的制定由質量部門的人員負責,項目初期文件控制工作的策劃由項目責任人負責,軟件電子文件版本和變更等控制工作一般由項目級的軟件配置管理人員負責管理,配置管理人員往往由熟悉軟件項目開發過程的軟件技術人員兼任。而檔案部門主要還是處于接收軟件檔案,進行后期管理工作。由于,檔案部門不參與軟件文檔控制規范的制定,不參與前期軟件文件控制工具的設計和選擇,不參與前期文件控制工作的監管,而參與文件相關控制工作的人又不了解文檔一體化管理的要求,也不明白檔案前端控制思想內涵與重要性,也就使得檔案管理前端控制思想無法真正在軟件文件控制工作中得以貫徹。軟件工程化中的文件控制工作也就無法真正實現檔案管理中的前端控制的要求,更無法有效推動軟件文檔一體化的實現。因此,企業應從人員配備、制度保證等多方面支持檔案部門參與軟件工程化中文件的控制工作,強化它對文檔管理的監督與監查功能,從而使軟件工程中的文件控制工作真正發揮出檔案前端控制的沖擊力,達到文檔一體化管理的真正目的。當然檔案部門要想發揮這一作用,一方面要加強檔案工作人員對軟件開發業務的熟悉與了解,另一方面應加強對參與文控工作的非檔案人員的檔案管理專業知識的培訓。
①特里·庫克:《1898年荷蘭手冊出版以來檔案理論與實踐的相互影響》,《第十三屆國際檔案大會報告集》,北京:中國檔案出版社,1997年