軟體配置管理——團隊開發的基石
隨著現代軟體技術的發展,對於軟體專案的需求日益複雜而且變更頻繁,專案的開發模式已經由昔日的手工作坊式的開發轉變為規模化、團隊式的開發,當開發團隊發展到一定規模時,會越來越強調開發過程規範化和成熟度。軟體專案的成敗在很大程度上取決於對其開發過程的控制,這包括對質量、原始碼、進度、資金、人員等的控制。要進行有效的過程控 制,僅僅依靠人的力量是不夠的,還需要有相應的管理工具。"軟體配置管理"是一套規範、高效的軟體開發管理方法,同時也是提高軟體質量的重要手段。軟體配置管理可以幫助開發團隊對軟體開發過程進行有效的變更控制,高效地開發高質量的軟體。在質量體系的諸多支援活動中,配置管理處在支援活動的中心位置,它有機地把其它支援活動結合起來,形成一 個整體,相互促進,相互影響,有力地保證了質量體系的實施。
軟體配置管理並不是一個新的概念,早在二十世紀70 年代,加州大學聖巴巴拉分校(University of California at Santa Barbara)的Leon Presser 授就已經提出變更和配置控制的理論,並隨著軟體產業的逐漸壯大,在國外成熟的軟體企業中逐漸得到重視和普及,在一些國外的大中型軟體企業中,不僅設定專職的配置管理人員,而且有些公司還設有公司級的變更控制委員會(CCB:Change Control Board)對公司的軟體配置管理工作進行統一的管理,配置管理對於軟體開發的重要性由此可見一斑。 國內的企業真正認識到配置管理的重要性,卻是近幾年的事情,隨著CMM(Capability Maturity Model)的概念和理論的普及,配置管理作為CMM 2 級的一個關鍵過程域,其重要性逐漸為人們認同。
"進行管理和控制"意味著在給定時間(過去或現在)使用的工作產品的版本是已知的(即版本控制),而且以受控的方式引進變更(即變更控制)。如果希望有比"進行管理和控制"所蘊含的更高程度的控制,則工作產品可置於配置管理的完備的紀律之下。CMM Level2 KPA3
其實在日常的開發中,我們已經在自覺或不自覺的進行著軟體配置管理的工作。最簡單的如使用軟體開發整合環境提供的Backup 功能,它可以使我們回溯到最近的修改;再進一步,就是使用資料夾或者壓縮工具,把實現了一定功能的程式版本按日期進行備份,這也已經實踐了配置管理的部分必要功能,但這僅僅是配置管理眾多功能重的一小部分。真正的配置管理系統應該具有以下功能:
· 並行開發支援:因開發和維護的原因,要求能夠實現開發人員同時在同一個軟體模組上工作,同時對同一個程式碼部分作不同的修改,即使是跨地域分佈的開發團隊也能互不干擾,協同工作,而又不失去控制;
· 修訂版管理:跟蹤每一個變更的創造者、時間和原因,從而加快問題和缺陷的確定;
· 版本控制:能夠簡單、明確地重現軟體系統的任何一個歷史版本;
· 產品釋出管理:管理、計劃軟體的變更,與軟體的釋出計劃、預先定製好的生命週期或相關的質量過程保持一致;專案經理能夠隨時清晰地瞭解專案的狀態
· 建立管理:基於軟體儲存庫的版本控制功能,實現建立(build)過程自動化;
· 過程控制:貫徹實施開發規範,包括訪問許可權控制、開發規則的實施等;
· 變更請求管理:跟蹤、管理開發過程中出現的缺陷(Defect)、功能增強請求(RFE)或任務(Task),加強溝通和協作,能夠隨時瞭解變更的狀態;
· 程式碼共享:提供良好的儲存和訪問機制,開發人員可以共享各自的開發資源。
2 缺乏配置管理造成的常見問題
由於歷史和現實的原因,配置管理流程和工具在我國軟體行業中的應用並不普及,由於缺乏必要的配置管理流程和工具,很多軟體企業在日常的開發工作中都會或多或少的遇到如下的問題:
· 組織的知識和過程財富流失
現代的社會競爭激烈,人員流動頻繁,如果由於沒有必要的配置管理流程和工具,大量的文件和程式碼等知識財富必然缺乏統一的管理,可能隨意地儲存在專案經理和軟體工程師各自的機器裡,往往會因為硬碟的故障或人員的離職而永遠的消失,軟體組織的數字財富就這樣因為缺乏必要的配置管理而白白的流失。
· 不能及時瞭解專案的進展狀況
現代軟體工程思想認為越早發現缺陷和風險,採取相應措施的代價越小。CMM 的一個重要作用就是要提高軟體開發過程中的可視性,使得問題能夠被及時的發現。然而由於缺乏配置管理的流程和工具的支援,部門主管無法確切得知專案的進展情況,即便是專案經理也不知道各個開發人員的具體工作,專案進展隨意性很大。所有的問題往往都會集中到專案里程碑時一起出現,這必然會造成巨大的開銷,其結果往往是容忍部分缺陷存在或者延誤開發週期。所有問題只能寄希望於最終實施時再解決,專案的實施工 作因此變成了無法彙報、無法理清、無休止的維護。
· 缺乏實現並行開發的手段
在日常的開發工作中,經常會出現並行開發的需求,比如:對於一個
專案可能要在開發新版本的同時繼續對先前的版本進行必要的維護,或者針對某個特定的版本需要針對不同的客戶同時進行客戶化的修改等等。在並行模式下,不同開發人員可以同時編輯修改某一檔案,並行開發有可能產生衝突,但是卻能夠提高開發效率。如果沒有配置管理工具的支援,進行並行開發將十分困難,單單通過人工操作,往往會造成修改過的bug 重複出現或者幾個人進行相同的工作,產生不必要的浪費。
軟體複用率低下
軟體複用是現代軟體工程中的重要思想,是提高軟體產品生產效率和質量的重要手段。軟體產品是一個公司的寶貴財富,程式碼的可重用性是相當高的,如何建好知識庫,用好知識庫將對公司優質高效開發產品產生重大的影響。但如果沒有良好的配置管理流程,軟體複用的效率將大打折扣,比如對於複用的程式碼進行了必要的修改或改進,卻只 能通過手工的方式將發生的變更傳遞給所有複用該軟體的專案,效率如何可想而知。另外由於缺乏進行溝通的必要手段,各個開發人員各自為政,編寫的程式碼不僅風格迥異,而且編碼和設計脫節,往往會導致開發大量重複的難以維護的程式碼。
無法開展規範化的測試工作
在傳統的開發方式中,由於缺乏必要的配置管理和變更控制,測試工作只是人們的 一種主觀願望,根本無法提出具體的測試要求,加之開發人員的遮醜,測試工作往往是 走走過場,測試結果既無法考核又無法量化,當然就無法對以後的開發工作起指導作用。
對軟體版本的釋出缺乏有效的管理
因為缺乏有效的管理手段,往往會在產品釋出時卻無法確定該版本所有的元件,或者向使用者提供了錯誤的版本。對於特定客戶出現的問題,無法重現其使用的版本,只能到使用者的現場才能進行相應的除錯工作。由於應用軟體的特點,各個不同的客戶會有不同的要求,開發人員要手工地保持多份不同的拷貝,即使是相同的問題,但由於在不同 地方提出,由不同人解決,其做法也不盡相同,程式的可維護性越來越差。這些都會延長實施的週期,同時意味著人力物力的浪費。
缺乏歷史資料的積累,沒有軟體開發的歷史資料
缺乏軟體開發的歷史資料是大多數軟體專案失敗的關鍵所在,這樣的結論也許使很多人感到吃驚,但事實就是如此。因為軟體開發的歷史資料是反映軟體開發隊伍的能力的標尺,沒有了這個標尺,就無法對軟體的開發過程有一個清醒的認識。而良好的配置管理正是收集軟體開發歷史資料的重要來源。
TRONG> 無法有效的管理和跟蹤變更
軟體的一個顯著特點就是易於改變,沒有配置管理將無法對軟體的變更進行有效的記錄、跟蹤和控制。
3 實施配置管理的收益
國內很多軟體企業已經逐漸認識到配置管理的重要性,都希望通過實施配置管理來提高軟體開發管理的水平,增強企業自身的競爭力,應對市場的壓力。
針對市場的這些需求,Hansky 公司在中國市場推出了業界技術領先的軟體配置管理解決方案,產品包括配置管理工具Firefly 和變更管理工具Butterfly。Firefly 是Hansky 公司推出的軟體配置管理系統,它可以輕鬆管理、維護整個企業的軟體、程式碼和文件。Firefly 是一個高效能、執行速度極快的軟體配置管理系統,支援不同的開發、執行平臺,因此它能在整個企業中的不同團隊、不同專案中都得以廣泛的應用。Firefly能夠對團隊開發提供有力的支援,開發團隊一旦擁有了Firefly,就可以非常準確的定義:
· 軟體將在什麼時間釋出
· 當前釋出版本中有哪些功能,由哪些元件構成
· 當前版本中加入了針對哪些Bug的修改
· 軟體的某個修改是誰認可的
· 如何建立新的釋出版本
· 等等…
Butterfly 是Hansky公司提供的新一代的軟體變更請求管理軟體。它以軟體產品為中心,有效的協調軟體專案中各職位人員的工作,能夠使軟體專案在較短時間內高質量完成。
Butterfly的主要功能如下:
· 提供對開發過程中的缺陷、建議和任務的追蹤管理;
· 規劃開發過程,完善原始碼編寫,提高軟體重用率,最大限度保護企業知識財富;
· 提供豐富的報表功能,以直觀圖形統計開發人員的工作進度和編碼質量,客觀評價員工表現;
· 優化業務流程,科學的工作流系統使使用者工作起來有條不紊,大大提高工作效率,同時使用者可以根據實際情況簡單、快捷地定製自己的業務流程;
· 掌握工作進度,在軟體開發的各個階段進行都可以進行強大的過程控制;
· 開發人員可以明確地瞭解他被分配的開發任
務,並根據優先順序依次完成;
· 提供友好的人機介面,支援工作分配的電子郵件自動通知,方便各種型別的工作人員使用,增加溝通和交流;
· 對軟體的錯誤進行系統管理,從根本上提高軟體產品競爭力,提高產品質量;
· 加速開發程式,規範軟體產品開發的各個階段,避免浪費不必要的時間。
Hansky公司的配置管理解決方案給公司帶來的益處將是顯而易見的:管理者能夠輕鬆控制產品的進度、質量;開發人員將有更多的時間進行創造性的工作;測試人員將依照一個 標準的流程高效完成日常工作; 產品釋出人員能夠確保交到使用者手中的產品的質量。
具體而言,使用者可以在資金、管理水平和保護知識財富等方面得到切實收益。
節約使用者資金
(1) Hansky 配置管理系統的總體實施成本低
對硬體系統效能的要求低,可以跨平臺使用,節約了使用者的投資;
安裝簡單,易於維護,無需專職的系統管理員;
功能簡潔、實用,易於學習和掌握,可以有效縮短配置管理系統投入實際使用的週期;
良好的擴充套件性和靈活的License管理方式,以及元件式的解決方案,使得我們的配置管理系統既支援小組模式的使用者,也能夠支援大規模團隊的協同開發工作,並且能夠方便地進行擴充套件,使用者可以根據實際需要,靈活的配置,大大降低了降低初期投入的資金;
具有前瞻性,保護使用者的投資。Hansky公司的軟體配置管理產品採用最新的技術(如純TCP/IP技術、J2EE技術、MS .NET的開發環境等)和全新的應用模式(如三層結構、B/S應用結構等),確保系統在較長的時間內不會落後於同類產品或不需要技術上的更新;
自帶儲存庫增量備份/恢復功能,節約使用者在備份方面的支出。
(2) 縮短使用者的產品開發週期
利用Hansky的Firefly系統對開發資源進行版本管理和跟蹤,可以建立公司級的程式碼知識庫,儲存開發過程中的所有歷史版本,這樣大大提高了程式碼的複用率,還便於同時維護多個版本和進行新版本的開發,最大限度地共享程式碼。利用Butterfly組建開發團體之間的問題跟蹤及訊息通訊機制,通過與電子郵件系統的結合大大增強了開發團體之間 的溝通能力,通過豐富的報表功能可對發現的問題進行整理、以報表方式分類報出,作為開發的指導。通過使用Hansky的配置管理套件可以提高開發效率和產品質量,避免了程式碼覆蓋、溝通不夠、開發無序的混亂局面,大大縮短了產品的開發週期。
(3) 降低產品的部署費用
使用Hansky的軟體配置管理解決方案後,使用者可以在Hansky技術專家的幫助下建立規範的配置管理流程,所有的軟體產品將得到統一有效的管理。藉助Firefly和Butterfly,工程人員可以通過訪問伺服器直接獲取所需的最新版本,查詢公司的知識庫,提交變更請求,收集使用者的反饋意見。開發人員無需到現場即可再現使用者環境,集中解 決問題,釋出補丁。這樣可以同時響應多個地點的專案,防止開發人員分配到各個專案點、力量分散、人員不夠的弊端,同時節約大量的旅差費用。
提高軟體開發管理的水平
(1) 改進使用者的開發工作模式
使用Hansky的配置管理解決方案,可以有效地改進使用者的軟體開發模式和過程,提高企業軟體能力成熟度的級別。
藉助Firefly和Butterfly,使用者可以:
有效的管理工作空間,各個成員的具有獨立的工作空間,並能記錄其變更集和整個生命週期中的完整變更歷史;
簡便建立分支,支援分支之間的比較與合併,歸併,管理基線;
支援並行開發模式,提高開發效率;
支援異地開發,Firefly 通過自動或手動同步不同開發地點的的儲存庫,為地理分佈的開發團隊提供很好的支援;
整合變更請求管理與專案生存週期中的變更記錄與追蹤,優化測試流程;
完善的釋出管理,可以方便的回溯任意版本,為不同的使用者定製應用程式的版本,促進系統的快速部署,提供釋出版本內容的審計能力;
支援變更集和原子事務,確保變更的一致性;
支援離線的版本管理,幫助使用者記錄專案證明週期內的完整歷史;
內建Defect、RFE、Task(問題、建議、任務)工作流,符合正規軟體公司的軟體開發流程。科學的工作流系統可以使公司人員工作起來得心應手,有條不紊,從而大大提高工作效率。
(2) 加強專案管理能力
通過瀏覽器,專案負責人可以方便地檢視專案進展情況以及員工工作情況;
利用Web介面即可實現程式碼複查和專案狀態複查;
豐富的圖表、報告功能,可以自動生成變更統計報告、配置審計報告,支援過程管理與進度分析,能夠幫助管理者進行決策。
(3) 量化工作量考核
傳統的開發管理中,工作量一直是難以估量的指標。靠開發人員自己把握,隨意性過大;靠管理人員把握,主觀性又太強。採用Firefly和Butterfly管理後,系統能夠客觀 的記錄員工的工作內容和質量,可以作為工作量的衡量指標。
(4) 規範測試流程
Butterfly和Firefly整合後,可以有效地跟蹤和處理軟體的變更,完整地記錄測試人員的工作內容,測試有了實實在在的工作,測試人員根據修改描述細節對每一天的工作做具體的測試。對測試人員也具有相應的可考核性,這樣環環相扣,有效地增強了對測試的管理。
(5) 加強協調與溝通,增加團隊競爭力
使用Firefly儲存公司的所有知識財富、利用Butterfly的FAQ、檢索以及Email自動通知功能,有效地加強了專案成員之間的溝通,做到有問題及時發現、及時修改、及時通知,卻又不會額外增加很多的工作量,大大提高了開發團隊的協同工作效率。
保護企業的知識財富
從整個企業的發展戰略來說,如何在技術日新月異、人員流動頻繁的情況下,本公司的知識庫及經驗庫,把個人的知識及經驗轉變為公司的知識和經驗,這對於提高工作效率、縮短產品週期以及提高公司的競爭力都具有至關重要的作用。採用科學的配置管理思想,輔之以先進的配置管理工具,可以幫助使用者在內部建立完善的知識管理體系
(1) 程式碼物件庫
軟體程式碼是軟體開發人員腦力勞動的結晶,也是軟體公司的寶貴財富,長期開發過程中形成的各種程式碼物件就像一個個零件一樣,是快速生成系統的組成部分。然而長期以來的一個事實是:一旦某個開發人員離開工作崗位,其原來所編寫的程式碼便基本成為垃圾,無人過問;或者由於文件不全,無從考究。究其原因,就是沒有專門對每個開發 人員的程式碼、元件和文件進行科學的管理,將其應用範圍擴大到公司一級,進行規範化,加以說明和普及。Firefly為程式碼管理提供了一個平臺和倉庫,有利於建立公司級的程式碼物件庫,增進程式碼複用,提高開發重用率和軟體質量。
(2) 業務及經驗庫
通過Firefly和Butterfly,可自動生成完整的開發日誌及問題集合,用文字記錄開發的整個過程,不會因某人的流動而消失,有利於公司積累業務經驗,無論對軟體維護或版本升級,都具有重要的指導作用。此外,利用Butterfly內建的FAQ模組,可以建立檢索方便的經驗庫,傳播和共享集體的智慧。
(3) 安全性和可靠性
由於配置管理系統集中儲存了企業的重要知識財富,因此對其安全性和可靠性有極高的要求。Firefly可以對所有儲存的檔案進行冗餘校驗,使用MD5作為檔案的校驗和,並提供備份和恢復工具,確保了資料的可靠性。同時Firefly支援使用者身份驗證和訪問控制,支援使用者組,便於許可權設定。訪問控制可以針對分支、目錄,甚至單個檔案設定, 採用類似Windows NTFS的許可權管理方式,既靈活又安全。這些措施使得企業的知識財富得到了安全可靠的儲存和保護。
另外,由於Hansky的產品採用了三層結構設計,其儲存庫完全不依賴於網路檔案體統,無需共享儲存目錄,能夠有效防止病毒攻擊所導致的儲存庫癱瘓或損壞,同時杜絕網路非法訪問。
4 結語
作為源自美國矽谷的高科技公司,Hansky十分看重中國市場,向使用者提供全面的本地化支援。針對中國市場,Hansky專門做了本地化工作,其所有文件,包括線上幫助均有中文版本,而且即將推出全中文介面的Hansky軟體配置管理系統。通過Hansky 軟體配置管理系統的實施,除了可以給企業帶來上述的益處,對於使用配置管理系統的每個人,同樣會有所收益:學習了先進的軟體過程管理思想,培養了良好的團隊合作精神,提高了個人專業水平,增強了自身的競爭力。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14780914/viewspace-408803/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 軟體研發之道:微軟開發團隊的經驗法則微軟
- 分析如何使用專案管理軟體管理軟體開發團隊專案管理
- 軟體測試團隊的管理
- 6個原則助您建立高效能軟體開發團隊
- 揭祕亞馬遜雲科技軟體開發工程師團隊亞馬遜工程師
- 禪道專案管理軟體,敏捷開發團隊不可或缺的工具專案管理敏捷
- 設計團隊管理用的軟體
- 傳統文化研究團隊------軟體工程團隊專案軟體工程
- 團隊拓撲:減少軟體團隊的認知負擔 - mimacomMac
- 軟體工程-團隊作業4軟體工程
- 【軟體工程】團隊作業1軟體工程
- 軟體工程-團隊-工程-溝通軟體工程
- scm 軟體配置管理
- git團隊開發流程Git
- JavaSE基礎專案:改進版開發團隊人員排程軟體Java
- QCon 全球軟體開發大會 | 大型團隊研發效率持續改進實踐
- 2024/5/21團隊開發
- Git 團隊協同開發Git
- 廣州數字貨幣交易軟體開發外包公司團隊實力搭建
- 團隊專案管理軟體哪個好?專案管理
- 敏捷開發團隊,最喜歡的開發工具 CORNERSTONE敏捷
- 敏捷開發團隊,最喜歡的開發工具CORNERSTONE敏捷
- 【團隊建設】如何做好團隊開發中的 CodeReview(程式碼評審)?View
- 2024/4/19日團隊開發
- 2024/6/3日團隊開發
- 軟體工程團隊的基於領域的結構 - snaptravel軟體工程APT
- 樂拼拼團APP軟體開發文件原始碼APP原始碼
- Rust語言的核心開發團隊有毒 - HackMDRust
- [杭州] 阿里系統軟體事業部排程團隊 Java/Golang高階開發工程師阿里JavaGolang工程師
- ocr文字識別軟體it外包公司專業團隊經驗豐富定製開發
- [杭州]螞蟻中介軟體團隊招Go工程師Go工程師
- 一個軟體開發團隊多少人合適? 大型團隊失敗是由於缺乏共識和溝通帶來的技術債務 -mfeather
- 遊戲開發原理——手遊開發團隊與成本遊戲開發
- 如何有效地提升開發團隊的水平? - bravenewgeek
- 軟體開發:app軟體開發,pc端軟體開發,微商城/小程式開發APP
- 軟體構造過程與配置管理
- 4.25日團隊開發第六天
- 4.26 團隊開發第七天
- 4.20團隊開發第一天