啥叫軟體配置管理?——一個通俗的解釋
作為一位從事軟體配置管理工作的同志,我經常被親朋好友問到的是,我有時候要向各級領導遊說的是,啥叫軟體配置管理?
我的經驗是:
1. 如果想讓他們從迷茫到更迷茫,那就跟他們背一段ISO/CMM裡的定義。
2. 如果不想深談,或者背景實在相差太遠,那就跟他們說:
“當很多人在一起編寫軟體的時候,需要一些專門的管理和技術,讓他們能夠合作順暢。
軟體配置管理就是其中的一種。”
3. 如果大概講一下,能有個概念,那就跟他們說:
“軟體配置管理是圍繞軟體資產的管理。
啥叫軟體資產呢,就是設計文件啦,原始碼啦,可以跑的程式之類的。
那麼,有什麼要管理的呢?讓我們把它和圖書館的圖書管理做個對比。
它們有一些相似點。
首先,圖書館圖書管理管的是圖書資產,軟體配置管理管的是軟體資產,它們管的都是資訊資產。
其次,圖書管理,需要把圖書進行分類,以便檢索,需要圖書存放在合適的地方,以便存取,還要防止蟲吃鼠咬。
軟體配置管理也類似,需要把軟體資產——主要是原始碼什麼的,放在合適的目錄結構裡,放在合適的地方儲存,防止丟失或者弄亂。
再次,在圖書館,要記錄誰借出了哪本書,還沒還。
而軟體配置管理中也類似,需要記錄誰借出了什麼檔案。
不過,跟圖書管理不同的是,軟體開發人員借出檔案,常常是為了修改它。
軟體配置管理要記錄誰修改了什麼檔案,為什麼修改,等等。
這裡就引出了一系列事情要考慮:
比如,每個檔案,不斷修改,就產生了一個又一個的版本,需不需要儲存呢?
一個產品的整個原始碼樹,也在總體上產生一個又一個的版本,需不需要儲存呢?
怎麼儲存呢?
比如,可能兩個人想要同時修改一個檔案。這可能會導致一個人的工作丟失。
那麼,是讓他們一個改完了另一個再改呢,還是讓他們同時改,將來合併呢?怎麼保證呢?
再比如,有時候,一個公司會生產一系列相似的軟體產品,它們之間是不是可以有某些共享呢?
在一個產品上的改動,是不是能比較方便的加到另外的產品上去呢?
所以說,軟體配置管理是圍繞軟體資產的管理:
保證它們的儲存;保證改動它們的時候,也就是進行軟體開發的時候,不會產生混亂,有條有理,省時省力;等等。”
第3種解釋,是我最喜歡的解釋。
雖然還不完全(比如,沒有說配置/關係),也不嚴謹(淨是用勞動人民的大白話說的),
但是能給沒怎麼接觸過SCM的同志一個比較正確、比較容易接受的第一印象了。
而且讓人覺得,SCM確實有用~~~
我的經驗是:
1. 如果想讓他們從迷茫到更迷茫,那就跟他們背一段ISO/CMM裡的定義。
2. 如果不想深談,或者背景實在相差太遠,那就跟他們說:
“當很多人在一起編寫軟體的時候,需要一些專門的管理和技術,讓他們能夠合作順暢。
軟體配置管理就是其中的一種。”
3. 如果大概講一下,能有個概念,那就跟他們說:
“軟體配置管理是圍繞軟體資產的管理。
啥叫軟體資產呢,就是設計文件啦,原始碼啦,可以跑的程式之類的。
那麼,有什麼要管理的呢?讓我們把它和圖書館的圖書管理做個對比。
它們有一些相似點。
首先,圖書館圖書管理管的是圖書資產,軟體配置管理管的是軟體資產,它們管的都是資訊資產。
其次,圖書管理,需要把圖書進行分類,以便檢索,需要圖書存放在合適的地方,以便存取,還要防止蟲吃鼠咬。
軟體配置管理也類似,需要把軟體資產——主要是原始碼什麼的,放在合適的目錄結構裡,放在合適的地方儲存,防止丟失或者弄亂。
再次,在圖書館,要記錄誰借出了哪本書,還沒還。
而軟體配置管理中也類似,需要記錄誰借出了什麼檔案。
不過,跟圖書管理不同的是,軟體開發人員借出檔案,常常是為了修改它。
軟體配置管理要記錄誰修改了什麼檔案,為什麼修改,等等。
這裡就引出了一系列事情要考慮:
比如,每個檔案,不斷修改,就產生了一個又一個的版本,需不需要儲存呢?
一個產品的整個原始碼樹,也在總體上產生一個又一個的版本,需不需要儲存呢?
怎麼儲存呢?
比如,可能兩個人想要同時修改一個檔案。這可能會導致一個人的工作丟失。
那麼,是讓他們一個改完了另一個再改呢,還是讓他們同時改,將來合併呢?怎麼保證呢?
再比如,有時候,一個公司會生產一系列相似的軟體產品,它們之間是不是可以有某些共享呢?
在一個產品上的改動,是不是能比較方便的加到另外的產品上去呢?
所以說,軟體配置管理是圍繞軟體資產的管理:
保證它們的儲存;保證改動它們的時候,也就是進行軟體開發的時候,不會產生混亂,有條有理,省時省力;等等。”
第3種解釋,是我最喜歡的解釋。
雖然還不完全(比如,沒有說配置/關係),也不嚴謹(淨是用勞動人民的大白話說的),
但是能給沒怎麼接觸過SCM的同志一個比較正確、比較容易接受的第一印象了。
而且讓人覺得,SCM確實有用~~~
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14780914/viewspace-407220/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 通俗解釋啥是雲端計算
- 什麼叫雲端計算?雲端計算通俗解釋
- 【C++學習筆記】啥叫堆?啥叫棧?C++筆記
- 生命是個軟體,我是個啥?
- scm 軟體配置管理
- 關於多個開發中心開發同一軟體的配置管理
- 有一個專案管理軟體,名字叫8Manage PM!專案管理
- 彩虹的DL(也叫軟體狗)
- 關於多個開發中心開發同一軟體的配置管理(轉)
- 做好軟體專案的配置管理
- 軟體配置管理參考
- 軟體配置管理模式模式
- 軟體測試缺乏配置管理的問題解決方法
- Javascript基礎與物件導向基礎~第一講啥叫程式設計,啥叫程式設計師JavaScript物件程式設計師
- spring IOC 通俗解釋Spring
- 程式猿扎堆的地方叫軟體園
- 幽默:軟體的五個層次,通俗易懂 -CatMcGeeCode
- 釋出一個軟體,需要多少人?
- 粒子濾波(Particle Filter)的通俗解釋Filter
- 機器學習術語通俗易懂的解釋機器學習
- [軟體測試理論基礎] 記錄第一個 Bug 的誕生,為什麼軟體缺陷叫 Bug/Defect?
- 通俗易懂,一篇文章告訴你程式語言是個啥?
- 啥叫網際網路思維
- 軟體配置管理中的基線技術
- 軟體配置管理——團隊開發的基石
- 軟體建模有啥用
- 一圖讀懂叫車軟體如何燒錢——資訊圖
- 通俗易懂的解釋:什麼是APIAPI
- 前端切圖的通俗解釋(說人話)前端
- 規範軟體開發過程——軟體配置管理實踐
- 成功的軟體釋出的三個要素
- 軟體構造過程與配置管理
- 給你一個換ip軟體:分散式爬蟲透過具體都能幹點啥?分散式爬蟲
- 機器學習梯度下降法,最通俗易懂的解釋機器學習梯度
- 軟體專案管理 9.2.軟體專案配置管理過程專案管理
- 區塊鏈是什麼通俗解釋區塊鏈
- 如何通俗解釋Docker是什麼_1Docker
- [轉] 好文章。解釋什麼叫工作