由于缺乏必要的配置管理流程和工具,很多軟件企業(yè)在日常的開發(fā)工作中都會或多或少的遇到如下的問題:組織的知識和過程財富流失現(xiàn)代的社會競爭激烈,人員流動頻繁,如果由于沒有必要的配置管理流程和工具,大量的文檔和代碼等知識財富必然缺乏統(tǒng)一的管理,可能隨意地保存在項目經(jīng)理和軟件工程師各自的機器里,往往會因為硬盤的故障或人員的離職而永遠的消失,軟件組織的數(shù)字財富就這樣因為缺乏必要的配置管理而白白的流失。
不能及時了解項目的進展狀況現(xiàn)代軟件工程思想認為越早發(fā)現(xiàn)缺陷和風險,采取相應措施的代價越小。CMM 的一個重要作用就是要提高軟件開發(fā)過程中的可視性,使得問題能夠被及時的發(fā)現(xiàn)。然而由于缺乏配置管理的流程和工具的支持,部門主管無法確切得知項目的進展情況,即便是項目經(jīng)理也不知道各個開發(fā)人員的具體工作,項目進展隨意性很大。所有的問題往往都會集中到項目里程碑時一起出現(xiàn),這必然會造成巨大的開銷,其結果往往是容忍部分缺陷存在或者延誤開發(fā)周期。所有問題只能寄希望于最終實施時再解決,項目的實施工作因此變成了無法匯報、無法理清、無休止的維護。
缺乏實現(xiàn)并行開發(fā)的手段
在日常的開發(fā)工作中,經(jīng)常會出現(xiàn)并行開發(fā)的需求,比如:對于一個項目可能要在開發(fā)新版本的同時繼續(xù)對先前的版本進行必要的維護,或者針對某個特定的版本需要針對不同的客戶同時進行客戶化的修改等等。在并行模式下,不同開發(fā)人員可以同時編輯修改某一文件,并行開發(fā)有可能產(chǎn)生沖突,但是卻能夠提高開發(fā)效率。如果沒有配置管理工具的支持,進行并行開發(fā)將十分困難,單單通過人工操作,往往會造成修改過的bug 重復出現(xiàn)或者幾個人進行相同的工作,產(chǎn)生不必要的浪費。
軟件復用率低下
軟件復用是現(xiàn)代軟件工程中的重要思想,是提高軟件產(chǎn)品生產(chǎn)效率和質(zhì)量的重要手段。軟件產(chǎn)品是一個公司的寶貴財富,代碼的可重用性是相當高的,如何建好知識庫,用好知識庫將對公司優(yōu)質(zhì)高效開發(fā)產(chǎn)品產(chǎn)生重大的影響。但如果沒有良好的配置管理流程,軟件復用的效率將大打折扣,比如對于復用的代碼進行了必要的修改或改進,卻只能通過手工的方式將發(fā)生的變更傳遞給所有復用該軟件的項目,效率如何可想而知。另外由于缺乏進行溝通的必要手段,各個開發(fā)人員各自為政,編寫的代碼不僅風格迥異,而且編碼和設計脫節(jié),往往會導致開發(fā)大量重復的難以維護的代碼。
無法開展規(guī)范化的測試工作
在傳統(tǒng)的開發(fā)方式中,由于缺乏必要的配置管理和變更控制,測試工作只是人們的一種主觀愿望,根本無法提出具體的測試要求,加之開發(fā)人員的遮丑,測試工作往往是走走過場,測試結果既無法考核又無法量化,當然就無法對以后的開發(fā)工作起指導作用。
對軟件版本的發(fā)布
缺乏有效的管理因為缺乏有效的管理手段,往往會在產(chǎn)品發(fā)布時卻無法確定該版本所有的組件,或者向用戶提供了錯誤的版本。對于特定客戶出現(xiàn)的問題,無法重現(xiàn)其使用的版本,只能到用戶的現(xiàn)場才能進行相應的調(diào)試工作。由于應用軟件的特點,各個不同的客戶會有不同的要求,開發(fā)人員要手工地保持多份不同的拷貝,即使是相同的問題,但由于在不同地方提出,由不同人解決,其做法也不盡相同,程序的可維護性越來越差。這些都會延長實施的周期,同時意味著人力物力的浪費。
缺乏歷史數(shù)據(jù)的積累,沒有軟件開發(fā)的歷史數(shù)據(jù)缺乏軟件開發(fā)的歷史數(shù)據(jù)是大多數(shù)軟件項目失敗的關鍵所在,這樣的結論也許使很多人感到吃驚,但事實就是如此。因為軟件開發(fā)的歷史數(shù)據(jù)是反映軟件開發(fā)隊伍的能力的標尺,沒有了這個標尺,就無法對軟件的開發(fā)過程有一個清醒的認識。而良好的配置管理正是收集軟件開發(fā)歷史數(shù)據(jù)的重要來源。
無法有效的管理和跟蹤變更軟件的一個顯著特點就是易于改變,沒有配置管理將無法對軟件的變更進行有效的記錄、跟蹤和控制。
不能及時了解項目的進展狀況現(xiàn)代軟件工程思想認為越早發(fā)現(xiàn)缺陷和風險,采取相應措施的代價越小。CMM 的一個重要作用就是要提高軟件開發(fā)過程中的可視性,使得問題能夠被及時的發(fā)現(xiàn)。然而由于缺乏配置管理的流程和工具的支持,部門主管無法確切得知項目的進展情況,即便是項目經(jīng)理也不知道各個開發(fā)人員的具體工作,項目進展隨意性很大。所有的問題往往都會集中到項目里程碑時一起出現(xiàn),這必然會造成巨大的開銷,其結果往往是容忍部分缺陷存在或者延誤開發(fā)周期。所有問題只能寄希望于最終實施時再解決,項目的實施工作因此變成了無法匯報、無法理清、無休止的維護。
缺乏實現(xiàn)并行開發(fā)的手段
在日常的開發(fā)工作中,經(jīng)常會出現(xiàn)并行開發(fā)的需求,比如:對于一個項目可能要在開發(fā)新版本的同時繼續(xù)對先前的版本進行必要的維護,或者針對某個特定的版本需要針對不同的客戶同時進行客戶化的修改等等。在并行模式下,不同開發(fā)人員可以同時編輯修改某一文件,并行開發(fā)有可能產(chǎn)生沖突,但是卻能夠提高開發(fā)效率。如果沒有配置管理工具的支持,進行并行開發(fā)將十分困難,單單通過人工操作,往往會造成修改過的bug 重復出現(xiàn)或者幾個人進行相同的工作,產(chǎn)生不必要的浪費。
軟件復用率低下
軟件復用是現(xiàn)代軟件工程中的重要思想,是提高軟件產(chǎn)品生產(chǎn)效率和質(zhì)量的重要手段。軟件產(chǎn)品是一個公司的寶貴財富,代碼的可重用性是相當高的,如何建好知識庫,用好知識庫將對公司優(yōu)質(zhì)高效開發(fā)產(chǎn)品產(chǎn)生重大的影響。但如果沒有良好的配置管理流程,軟件復用的效率將大打折扣,比如對于復用的代碼進行了必要的修改或改進,卻只能通過手工的方式將發(fā)生的變更傳遞給所有復用該軟件的項目,效率如何可想而知。另外由于缺乏進行溝通的必要手段,各個開發(fā)人員各自為政,編寫的代碼不僅風格迥異,而且編碼和設計脫節(jié),往往會導致開發(fā)大量重復的難以維護的代碼。
無法開展規(guī)范化的測試工作
在傳統(tǒng)的開發(fā)方式中,由于缺乏必要的配置管理和變更控制,測試工作只是人們的一種主觀愿望,根本無法提出具體的測試要求,加之開發(fā)人員的遮丑,測試工作往往是走走過場,測試結果既無法考核又無法量化,當然就無法對以后的開發(fā)工作起指導作用。
對軟件版本的發(fā)布
缺乏有效的管理因為缺乏有效的管理手段,往往會在產(chǎn)品發(fā)布時卻無法確定該版本所有的組件,或者向用戶提供了錯誤的版本。對于特定客戶出現(xiàn)的問題,無法重現(xiàn)其使用的版本,只能到用戶的現(xiàn)場才能進行相應的調(diào)試工作。由于應用軟件的特點,各個不同的客戶會有不同的要求,開發(fā)人員要手工地保持多份不同的拷貝,即使是相同的問題,但由于在不同地方提出,由不同人解決,其做法也不盡相同,程序的可維護性越來越差。這些都會延長實施的周期,同時意味著人力物力的浪費。
缺乏歷史數(shù)據(jù)的積累,沒有軟件開發(fā)的歷史數(shù)據(jù)缺乏軟件開發(fā)的歷史數(shù)據(jù)是大多數(shù)軟件項目失敗的關鍵所在,這樣的結論也許使很多人感到吃驚,但事實就是如此。因為軟件開發(fā)的歷史數(shù)據(jù)是反映軟件開發(fā)隊伍的能力的標尺,沒有了這個標尺,就無法對軟件的開發(fā)過程有一個清醒的認識。而良好的配置管理正是收集軟件開發(fā)歷史數(shù)據(jù)的重要來源。
無法有效的管理和跟蹤變更軟件的一個顯著特點就是易于改變,沒有配置管理將無法對軟件的變更進行有效的記錄、跟蹤和控制。