潛魚在淵

          Concentrating on Architectures.

          posts - 77, comments - 309, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          版本管理

          Posted on 2005-12-07 23:23 非魚 閱讀(4946) 評論(5)  編輯  收藏 所屬分類: 管理
              我在最初開發(fā)軟件的時候,是根本沒有版本管理的概念的。直到2000年我在廣州某數(shù)一數(shù)二的軟件公司工作,該公司為了通過ISO9000認證,開始使用 VSS(Visual Source Safe)進行版本管理,之前,他們也沒有進行版本管理。除了VSS,后來又用過PVCS、CCC-Harvest等版本管理軟件。現(xiàn)在看來,以前也只是 使用了版本管理軟件而已,沒有真正進行過“版本管理”。某項目經(jīng)理說:“我們喜歡把VCS叫做SCM啊,更高級。”其實叫什么不重要,重要的是“管理”, 而不是“使用”VCS/SCM。

              什么是版本管理?

              簡單的說,一個文件(或任何其他人工制品)的一次修改稱為一個“修訂”;一批相關(guān)聯(lián)的文件(或任何其他人工制品)經(jīng)過各自N次修訂,做為一個產(chǎn)品達到一個 穩(wěn)定狀態(tài),這些文件/人工制品在穩(wěn)定狀態(tài)下的形成的產(chǎn)品就是一個版本。版本管理,就是對這個版本的管理;但更重要的是:版本管理是對產(chǎn)品的管理

              版本管理,意義何在?

              首先,版本管理維護產(chǎn)品的穩(wěn)定性。剛剛講到,產(chǎn)品達到一個穩(wěn)定狀態(tài)后稱為一個版本,版本管理自然管理了產(chǎn)品的穩(wěn)定性。其次,版本管理是產(chǎn)品改進的基石。在 產(chǎn)品達到一個穩(wěn)定狀態(tài)后,我們把這個狀態(tài)做為版本固定下來,對于這個產(chǎn)品以后的改進就可以基于這個狀態(tài)進行了,一旦在改進的過程中發(fā)生錯誤,我們還可以從 這個穩(wěn)定的狀態(tài)再次開始,避免了很多不必要的勞動。最后,基于產(chǎn)品版本可以進行并行操作,在改進產(chǎn)品的同時對現(xiàn)有產(chǎn)品進行維護,即滿足客戶產(chǎn)品改進的要 求,又滿足客戶對產(chǎn)品質(zhì)量的要求。

              特別是軟件迭代、增量開發(fā)的情況下,版本管理更是至關(guān)重要的。

              版本管理,有哪些重要內(nèi)容?

              這里只說重要的。首先是產(chǎn)品版本的定義,就是在產(chǎn)品達到穩(wěn)定狀態(tài)時,標記這個穩(wěn)定狀態(tài)下的所有組成部分。這個標記,就是版本了。一般在達到穩(wěn)定之前,會有諸如alpha 版、beta版之類的預(yù)定義,根據(jù)不同組織的政策而不同。其次是版本的生成,即取得定義好的版本的所有組成部分,并形成一個完整的可運行的產(chǎn)品以供測試、 發(fā)行。最后是版本的分支/合并,在穩(wěn)定產(chǎn)品的版本上進行分支,可以同時進行產(chǎn)品下一版本的研發(fā)和當前版本的維護。一般在主分支上進行新版本開發(fā),在維護分 支開發(fā)當前版本的補丁;當補丁測試通過后需要把維護分支上的修改內(nèi)容合并到主分支,以避免在新版本中仍然含有已經(jīng)修正的。

              版本管理的缺點何在?

              不能認為有了良好的版本管理就萬事大吉了,良好的版本管理也不是萬能的,很多事情是版本管理做不到的。首先版本管理不能保證產(chǎn)品中沒有缺陷,其實沒有什么 東西可以保證這一點,即使你有再充分的測試也不能保證;版本管理只是對產(chǎn)品狀態(tài)的管理,對于這個狀態(tài)下產(chǎn)品的內(nèi)容無能為力。其次,版本管理無法保證工作人 員的行為,版本管理要求工作人員按照一定的規(guī)范行事,但除了制度沒有任何工具或監(jiān)控/預(yù)測手段來保證人的行為附合規(guī)范,如果存在違反規(guī)范的行為,也只能通 過事后檢查來發(fā)現(xiàn)、糾正。最后,在版本合并操作上,工具自動處理可以減輕人的勞動,但也有很多時候不能自動處理,不能過于依賴于版本管理工具。

              產(chǎn)品發(fā)行管理(on the way, please wait...)

          評論

          # re: 版本管理  回復(fù)  更多評論   

          2005-12-08 00:06 by 江南白衣@ITO
          恩,某項目經(jīng)理不錯.

          # re: 版本管理  回復(fù)  更多評論   

          2005-12-08 17:45 by felice
          項目的關(guān)鍵在于架構(gòu),規(guī)范就是實現(xiàn)架構(gòu)的重要途徑。但是,又有多少的企業(yè)是什么ISOxxxxx,CMMxxx,全是蒙出來,全是糊弄客戶的。痛苦啊,無奈啊,“中國特色”的企業(yè)行為!

          # re: 版本管理  回復(fù)  更多評論   

          2005-12-23 15:06 by 非魚
          @qq

          sorry,你的回復(fù)是亂碼,我刪除了,如果你用中文不方便,可以使用英文。

          # re: 版本管理  回復(fù)  更多評論   

          2006-02-03 01:02 by will@白衣的群
          廣州某數(shù)一數(shù)二的軟件公司?哪家 偶正在物色跳X中,還請非魚兄明示

          # re: 版本管理  回復(fù)  更多評論   

          2006-02-14 15:11 by 非魚
          @will@白衣的群
          現(xiàn)在早就不在那里了。

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 文成县| 武邑县| 丽水市| 沿河| 怀远县| 方城县| 平江县| 湘乡市| 汝阳县| 天门市| 古田县| 舒城县| 九龙城区| 嘉善县| 榆中县| 连州市| 高阳县| 茂名市| 安图县| 仁寿县| 奉贤区| 凤庆县| 吉林省| 梁平县| 新泰市| 崇信县| 平和县| 莒南县| 神木县| 哈密市| 香河县| 闸北区| 岳西县| 宝清县| 德化县| 和平区| 叶城县| 竹山县| 泊头市| 滦平县| 蓬安县|