前 言
隨著企業(yè)信息化的深入,軟件項目需求的日益復雜、變更頻繁, 傳統(tǒng)的個人英雄主義的開發(fā)方式已經越來越不能適應發(fā)展的需要。從軟件企業(yè)的發(fā)展戰(zhàn)略來說,如何在技術日新月異、人員流動頻繁的情況下,建立本公司的知識庫及經驗庫, 把企業(yè)中分散的隱性的財富,即個人的知識及經驗轉變?yōu)槠髽I(yè)的知識和經驗,以便提高工作效率,縮短產品周期, 加強企業(yè)的競爭力,具有至關重要的作用。采用科學的管理思想,輔之以先進的管理工具,已經成為企業(yè)未來發(fā)展必不可少的手段。
如果軟件開發(fā)機構不能有效地控制和使用軟件資源,則在面對風險時可能導致軟件開發(fā)活動出現(xiàn)各種問題。由于不能很好地管理軟件過程,使得一些好的開發(fā)方法和技術沒有起到預期的作用。項目的成功往往是通過工作組的杰出努力,這種僅僅建立在依賴特定高素質開發(fā)人員基礎上的成功,不能保證全組織的持續(xù)穩(wěn)定的軟件生產和質量的長期提高。因此,要降低軟件開發(fā)過程的風險、保證軟件產品質量,必須加強管理,而軟件配置管理是企業(yè)過程改善和能力提升的基礎。
存在的問題
對于一個軟件企業(yè)或者一個軟件開發(fā)團隊來說,可能遇到過或者正在被以下問題所困擾,如:
1、版本難以控制
一個軟件往往由許多的模塊組成,在不同的階段(基礎功能、新增功能),很可能為了適應不同的環(huán)境(如不同的操作系統(tǒng))、根據不同客戶的要求開發(fā)了特點各異的版本,這些版本之間有大量的共享模塊,以及屬于自己的模塊。在后將這些模塊組裝成系統(tǒng)的某個版本時才發(fā)現(xiàn),所需模塊版本無法確定;
圖表、源代碼、文檔等等,經過多人次修改后,發(fā)現(xiàn)實際有用的版本卻不知去向了;
團隊中并行開發(fā)引起的沖突。例如:編程人員 A和B共同修改同一個模塊,兩人經過幾個晝夜的奮戰(zhàn)之后,又都回存到服務器上,但到了程序試運行的時候,才發(fā)現(xiàn)有一個人的修改被沖掉了!
有的模塊沒有經過測試,直接進入了產品之中;
2、資源變化頻繁
某些開發(fā)人員在軟件項目開發(fā)的過程中離去,由于他負責使用或維護的文檔或者資源不完善,使得后續(xù)人員接手他的工作時困難重重,造成開發(fā)過程的停滯。
由于沒有控制好軟件變化過程,消耗了大量人力物力,導致項目嚴重超期、預算超支;
項目經過了幾次大改動,幾乎記不起原來是什么樣子了;或者說,根據用戶提出的多次變更要求更改后的成型軟件,與用戶的需要相距甚遠。
軟件變化未經控制進入開發(fā)或維護活動之中,引入更嚴重的問題。例如:某程序員未經正常的軟件變化申請,自行修改軟件中的某一錯誤,雖然局部錯誤是改正了,但由于沒有考慮到局部改動對全局的影響,使得整個系統(tǒng)不能正常工作。
3、配置審核問題
對軟件生命周期中的變化沒有正常的審核過程:比如在上述示例中導致的問題。
對于客戶所提出的變更要求,缺少必要的審查和確認程序。
物理配置審核問題:比如發(fā)布出去的產品中,缺少文檔,或者文檔與應用不一致。
4、項目開發(fā)中的組織管理問題
項目開始之后,每人每天都在編程序,但卻不知道他們的進展如何。
項目開發(fā)過程中,一部分人晝夜奮戰(zhàn),另一部分人則無事可干。
整個項目的開發(fā)可控性差,無法做到階段控制。
軟件配置管理SCM Software Configuration Management
軟件配置管理SCM (Software Configuration Management),是一套規(guī)范、高效的軟件開發(fā)基礎結構,作為管理軟件開發(fā)過程有效的方法,SCM早已被發(fā)達軟件產業(yè)的發(fā)展和實踐所證明。SCM可以系統(tǒng)地管理軟件系統(tǒng)中的多重版本;全面記載系統(tǒng)開發(fā)的歷史過程;管理和追蹤開發(fā)過程中危害軟件質量以及影響開發(fā)周期的缺陷和變化;SCM對開發(fā)過程進行有效地管理和控制,完整、明確地記載開發(fā)過程中的歷史變更,形成規(guī)范化的文檔,不僅使日后的維護和升級得到保證,而且更重要的是,這還會保護寶貴的代碼資源,積累軟件財富,提高軟件重用率,加快投資回報。
軟件配置管理作為軟件開發(fā)過程的必要環(huán)節(jié)和軟件開發(fā)管理的基礎,支持和控制著整個軟件生命周期,同時對軟件開發(fā)過程的宏觀管理,即項目管理,也有重要的支持作用。良好的配置管理能使軟件開發(fā)過程有更好的可預測性,使軟件過程具有可重復性,使用戶和主管部門對軟件質量和開發(fā)小組有更強的信心。若要有效的實施軟件配置管理,必須要培養(yǎng)軟件開發(fā)者的管理意識,結合開發(fā)組織的實際情況制訂出相應的配置管理規(guī)范,由開發(fā)人員依據規(guī)范,通過專業(yè)化的配置管理工具來實現(xiàn)。
如何實施配置管理
根據CMM二級中的闡述,軟件配置管理的目標是在項目的整個軟件生命周期中建立和維護軟件產品的完整性,它是軟件過程和管理過程不可缺少的部分。配置管理在軟件開發(fā)過程中的重要地位已不言而喻。許多軟件企業(yè)已深深體會到這一工作的重要性,而在實施或正在準備實施。以往實踐經驗證明,在軟件開發(fā)組織中實施或改進配置管理,僅僅依靠工具往往不能取得令人滿意的效果,而需要軟件開發(fā)組織指派擁有較高技術水平、管理水平的人員負責,尚須投入一定人力、物力和時間來重點進行以下工作:
組建配置管理過程構造小組
建立或改進一個企業(yè)的配置管理過程往往需要在初期投入一定的人力物力,通常需要組建一個配置管理過程構造小組進行這項工作。小組成員中包括:技術支持專家,配置管理技術專家、質量保證部門代表、項目負責人員代表、有關開發(fā)人員代表等。