天天看點

SCM 供應鍊管理

SCM 供應鍊管理

  SCM(Supply Chain Management)

  

供應鍊名稱由來

  供應鍊最早來源于彼得.德魯克提出的"經濟鍊",而後經由邁克爾.波特發展成為"價值鍊",最終日漸演變為"供應鍊".

供應鍊管理定義

   

  供應鍊管理(Supply chain management,SCM)是一種內建的管理思想和方法,它執行供應鍊中從供應商到最終使用者的物流的計劃和控制等職能。從單一的企業角度來看,是指企 業通過改善上、下遊供應鍊關系,整合和優化供應鍊中的資訊流、物流、資金流,以獲得企業的競争優勢。

  供應鍊管理是企業的有效性管理,表現了企業在戰略和戰術上對企業整個作業流程的優化。整合并優化了供應商、制造商、零售商的業務效率,使商品以正确的數量、正确的品質、在正确的地點、以正确的時間、最佳的成本進行生産和銷售。

  SCM(Supply Chain Management)就是對企業供應鍊的管理,是對供應、需求、原材料采購、市場、生産、庫存、定單、分銷發貨等的管理,包括了從生産到發貨、從供應商的供應商到顧客的顧客的每一個環節。

  供應鍊管理 (SCM)應用是在企業資源規劃(ERP)的基礎上發展起來的,它把公司的制造過程、庫存系統和供應商産生的資料合并在一起,從一個統一的視角展示産品建造過程的各種影響因素。供應鍊是企業賴以生存的商業循環系統,是企業電子商務 管理中最重要的課題。統計資料表明,企業供應鍊可以耗費企業高達25%的營運成本。

  它主要是一種整合整個供應鍊資訊及規劃決策,并且自動化和最佳化資訊基礎架構的軟體,目标在于達到整個供應鍊的最佳化(在現有資源下達到最高客戶價值的滿足),為一種新的決策智能型軟體,覆寫在所有供應鍊公司的ERP和交易處理系統之上。

  SCM通常具有一個轉換接口,用以整合供應鍊上各公司的應用系統(尤其是ERP系統 )及各種資料型态,此轉換會通過标準中介工具或技術,如DCOM、COBRA、ODBC等等,提供與主要決策系統互動的能力。

  SCM能為企業帶來如下的益處:

  增加預測的準确性。

  減少庫存,提高發貨供貨能力。

  減少工作流程周期,提高生産率,降低供應鍊成本。

  減少總體采購成本,縮短生産周期,加快市場響應速度。

  随着網際網路的飛速發展,越來越多的企業開始利用網絡實作SCM。

  即利用網際網路将企業的上下遊企業進行整合,以中心制造廠商為核心,将産業上遊原材料和零配件供 應商、産業下遊經銷商、物流運輸商及産品服務商以及往來銀行結合為一體,構成一個面向最終顧客的完整電子商務供應鍊,目的是為了采購成本和物流成本,提高 企業對市場和最終顧客需求的響應速度,進而提高企業産品的市場競争力。

  供應鍊管理是目前國際企業管理的重要内容,也是我國企業管理的發展方向。基于企業内部範圍的管 理。它将企業内部經營所有的業務單元如訂單、采購、庫存、計劃、生産、品質、運輸、市場、銷售、服務等以及相應的财務活動、人事管理均納入一條供應鍊内進 行統籌管理。當時企業重視的是物流和企業内部資源的管理,即如何更快更好地生産出産品并把其推向市場,這是一種“推式”的供應鍊管理,管理的出發點是從原 材料推到産成品、市場,一直推至用戶端; 随着市場競争的加劇,生産出的産品必須要轉化成利潤,企業才能得以生存和發展,為了赢得客戶、赢得市場,企業管理進入了以客戶及客戶滿意度為中心的管理, 因而企業的供應鍊營運規則随即由推式轉變為以客戶需求為原動力的“拉式”供應鍊管理。這種供應鍊管理将企業各個業務環節的資訊化孤島連接配接在一起,使得各種 業務和資訊能夠實作內建和共享。

供應鍊管理的作用

   

  從上述定義中,我們能夠解讀出供應鍊管理包含的豐富内涵。

  首先,供應鍊管理把産品在滿足客戶需求的過程中對成本有影響的各個成員機關都考慮在内了,包括從原材料供應商、制造商到倉庫再經過配送中心到管道商。不過,實際上在供應鍊分析中,有必要考慮供應商的供應商以及顧客的顧客,因為它們對供應鍊的業績也是有影響的。

  其次,供應鍊管理的目的在于追求整個供應鍊的整體效率和整個系統費用的有效性,總是力圖使系統 總成本降至最低。是以,供應鍊管理的重點不在于簡單地使某個供應鍊成員的運輸成本達到最小或減少庫存,而在于通過采用系統方法來協調供應鍊成員以使整個供 應鍊總成本最低,使整個供應鍊系統處于最流暢的運作中。

  第三,供應鍊管理是圍繞把供應商、制造商、倉庫、配送中心和管道商有機結合成一體這個問題來展開的,是以它包括企業許多層次上的活動,包括戰略層次、戰術層次和作業層次等。

  盡管在實際的物流管理中,隻有通過供應鍊的有機整合,企業才能顯著地降低成本和提高服務水準, 但是在實踐中供應鍊的整合是非常困難的,這是因為:首先,供應鍊中的不同成員存在着不同的、互相沖突的目标。比如,供應商一般希望制造商進行穩定數量的大 量采購,而交貨期可以靈活變動;與供應商願望相反,盡管大多數制造商願意實施長期生産運轉,但它們必須顧及顧客的需求及其變化并作出積極響應,這就要求制 造商靈活地選擇采購政策。是以,供應商的目标與制造商追求靈活性的目标之間就不可避免地存在沖突。

  其次,供應鍊是一個動态的系統,随時間而不斷地變化。事實上,不僅顧客需求和供應商能力随時間 而變化,而且供應鍊成員之間的關系也會随時間而變化。比如,随着顧客購買力的提高,供應商和制造商均面臨着更大的壓力來生産更多品種更具個性化的高品質産 品,進而最終生産定制化的産品。

  研究表明,有效的供應鍊管理總是能夠使供應鍊上的企業獲得并保持穩定持久的競争優勢,進而提高 供應鍊的整體競争力。統計資料顯示,供應鍊管理的有效實施可以使企業總成本下降20%左右,供應鍊上的節點企業按時交貨率提高15%以上,訂貨到生産的周 期時間縮短20%~30%,供應鍊上的節點企業生産率增值提高15%以上。越來越多的企業已經認識到實施供應鍊管理所帶來的巨大好處,比如HP、IBM、 DELL等在供應鍊管理實踐中取得的顯著成績就是明證。

  供應鍊管理:它從戰略層次和整體的角度把握最終使用者的需求,通過企業之間有效的合作,獲得從成本、時間、效率、柔性等最佳效果。包括從原材料到最終使用者的所有活動,是對整個鍊的過程管理。

  SCM(供應鍊管理)是使企業更好地采購制造産品和提供服務所需原材料、生産産品和服務并将其遞送給客戶的藝術和科學的結合。供應鍊管理包括五大基本内容。

  計劃:這是SCM的政策性部分。你需要有一個政策來管理所有的資源,以滿足客戶對你的産品的需求。好的計劃是建立一系列的方法監控供應鍊,使它能夠有效、低成本地為顧客遞送高品質和高價值的産品或服務。

  采購:選擇能為你的産品和服務提供貨品和服務的供應商,和供應商建立一套定價、配送和付款流程并創造方法監控和改善管理,并把對供應商提供的貨品和服務的管理流程結合起來,包括提貨、核實貨單、轉送貨物到你的制造部門并準許對供應商的付款等。

  制造:安排生産、測試、打包和準備送貨所需的活動,是供應鍊中測量内容最多的部分,包括品質水準、産品産量和勞工的生産效率等的測量。

  配送:很多"圈内人"稱之為"物流",是調整使用者的定單收據、建立倉庫網絡、派遞送人員提貨并送貨到顧客手中、建立貨品計價系統、接收付款。

  退貨:這是供應鍊中的問題處理部分。建立網絡接收客戶退回的次品和多餘産品,并在客戶應用産品出問題時提供支援。

供應鍊管理的意義

  

  通過建立供應商與制造商之間的戰略合作關系,可以達到以下目标:

  (1)對于制造商/買主

  降低成本(降低合同成本)、實作數量折扣和穩定而有競争力的價格、提高産品品質和降低庫存水準、改善時間管理、縮短交貨提前期和提高可靠性、優化面向工藝的企業規劃、更好的産品設計和對産品變化更快的反應速度、強化資料資訊的擷取和管理控制。

  (2)對于供應商/賣主

  保證有穩定的市場需求、對使用者需求更好地了解/了解、提高運作品質、提高零部件生産品質、降低生産成本、提高對買主交貨期改變的反應速度和柔性、獲得更高的(比非戰略合作關系的供應商)利潤。

  (3)對于雙方

  改善互相之間的交流、實作共同的期望和目标、共擔風險和共享利益、共同參與産品和工藝開發,實 現互相之間的工藝內建、技術和實體內建、減少外在因素的影響及其造成的風險、降低機會主義影響和投機幾率、增強解決沖突和沖突的能力、訂單、生産、 運輸上實作規模效益以降低成本、減少管理成本、提高資産使用率。

[ 編輯本段 ] SCM發展趨勢

  全球供應鍊系統合作關系的六大發展趨勢将影響制造商和他們顧客之間在全球範圍内做交易的方式:

  一、Internet把合作關系推動到了一個新的水準,而所有這些在一年前為任何人所不能預測

  在新型的B2B商業時代,新一代提供商已經能在爆炸性的資料擴張條件下管理交易進行的情況,成 千上萬的商家為提供貿易的宿主權而進行激烈的競争,這個競争推動了資訊化的程序。還有一些公司在用戶端配備複雜的軟體來完成企業内部和外部之間處理過程的 革命化化變革。去年是應用程式提供商(ASP)大行其道的開始,也就是各個客戶不必要去購買商業軟體而從ASP服務商處租用,解決了自己裝軟體并進行維護 的複雜安裝和無窮的更新煩惱。這種煩惱對于企業資源計劃系統(ERP)的購買者來說更是切膚之痛,是以ASP大有作為。

  二、外包成為了一個成熟的概念

  産品提供商已經不再是顧客首先想到的解決問題求助者。經常是由于供應商滿足不了顧客的實際需要導緻客戶關系的失敗。這些失敗對于所有參與其中的人員都是一個教訓,它使得供應商不要承諾其提供不了的服務,客戶也要采取更多實際一些的期望。外包的概念于是深入人心。

  三、真正的合作關系逐漸地在形成

  在很多的情況下,公司願意将一小部分供應鍊系統外包出去,作為對供應商能力的一個測驗。而公司以後會繼續把其它更多的部分交出去,讓更加專業的公司去做,同時雙方保持一種良好的交流合作關系,公司不會停止對全部處理過程的控制權利。

  四、沒有保障的合作

  合作關系已經到來,但也可以說可能很快又要結束或者溜開,有時是因為一些超越雙方所能控制的原 因,說到根本還是利益的所在。這樣的結合有可能從開始就是一個不般配的。合并和收購可以改變公司長期的交易,成功的公司常常持續不斷地再次評價其制造商, 一個性能上的故障将很快結束一個合作關系。

  五、盡管已經取得了一定的進步,尋找真正的全球供應商的活動還在繼續

  僅僅還在一年以前,公司還在經常抱怨參加産品開發的第三方的無故缺席,落得隻有自己一個公司來 管理供應鍊的結果。當然,許多缺乏内部處理流程的公司轉而尋求全球範圍内的資源、制造和銷售。由于有了Internet這個神奇的驅動,合作雙方都在快速 地向全球規模的合作前進。一些公司已經宣稱找到了理想的合作夥伴,但實際上很少的公司真正達到了所有的要求。

  六、進階品質的客戶服務是成功商業計劃的重要部分

  有這樣一個事實,很少公司真正按照承諾實作所應該實作的,但不要太看重這一點。從整體上來說,目前所有的努力都集中在滿足前端銷售的服務,并提供響應的同等可靠的售後支援服務,這是向高品質客戶服務進展的一個必要的過程。

[ 編輯本段 ] SCM 軟體配置管理

1、什麼是軟體配置管理(SCM)

  

  軟體配置管理是指通過執行版本控制、變更控制的規程,以及使用合适的配置管理軟體,來保證所有 配置項的完整性和可跟蹤性。配置管理是對工作成果的一種有效保護。 (Software configuration management (SCM, or just plain CM) is an organizational framework — that is, a discipline — for managing the evolution of computer systems throughout all stages of systems development.)

2、為什麼需要配置管理

  

  如果沒有軟體配置管理,最大的麻煩是工作成果無法回溯。随着工作的進展新的程式覆寫了老的程 序,當突然發現新程式有問題而老程式正确時怎麼辦?那隻能重寫老的程式來覆寫新的程式。過一段時間又發現原來的老程式有問題,而解決方法在原來的新程式 中……您是不是快要發瘋了。

  為了避免成果被覆寫,包括我自己在内的很多人早期采用手工管理版本的方式,例如當一個新版本産 生時用當時的日期來命名檔案夾,然後再複制一下以後的修改在複制的檔案夾内進行,這樣上一個版本就被儲存下來了,周而複始不同的版本不會被覆寫。雖然這種 方式可以從某種程度上解決版本的回溯問題,但他存在的缺點是顯而易見的:第一點如果保留結果過于頻繁,将會導緻産生大量的有着重複内容的檔案夾,龐大的物 理空間,管理起來很麻煩;如果保留舊版本的時間間隔太長,可能産生某些有用的老程式無法回溯。拿我最近開發的一個程式來說程式隻有幾十兆,經過一年的開發 各版本累計到1G。第二容易産生版本的混亂,如果是團隊開發軟體,這種簡單的方法更難解決問題的本質了。

3、人的問題

  

  配置管理的方法是成熟的,而且相應的軟體工具也是成熟的,基本上不存在看不懂、不會用的問題。配置管理的執行效果如何,完全是事在人為。妨礙配置管理的主要問題是人們嫌麻煩和僥幸心理作怪。

  在沒出亂子的情況下,執行版本控制看起來有些麻煩。每次修改工作的時候總是要Get Latest Version,接着Check Out,修改完後又要Check In,多做了三步。其實這三步加起來也就十幾秒鐘,而且不費腦子,根本沒有添加多少麻煩,僅僅是個人感覺不爽而以。然而不執行版本控制的話,萬一發生工作 成果被覆寫或丢失等問題,麻煩就大了。

4、軟體配置管理規範

  

  軟體研發和管理過程中會産生許許多多的工作成果,例如文檔、程式和資料等,他們都應當妥善地保管起來,以便查閱和修改。如果把所有檔案一股腦的塞進計算機裡,那麼使用起來很麻煩。

  凡是納入配置管理範疇的工作成果統稱為配置項配置項主要有兩大類:一類是屬于産品的組成部分,例如需求文檔、設計文檔、源代碼、測試用例等等;另一類是在管理過程中産生的文檔,例如各種計劃、報告等。

  每個配置項的主要屬性有名稱、辨別符、檔案狀态、版本、作者、日期等。配置項及曆史紀錄反映了軟體的演化過程。

  基線由一組配置項組成,這些配置項構成了一個相對穩定的邏輯實體。基線中的配置項被當機後,不能在被任何人随意更改。基線通常對應于開發過程中的裡程碑。通常将傳遞該客戶的基線稱為一個Release,為内部開發用的基線稱為一個Build。

  版本控制的目的是按照一定的規則儲存配置項的所有版本,避免發生版本丢失或混亂等現象。配置項的狀态有三種:“草稿”、“正式釋出”和“正在修改” 。

  配置項的版本号與配置項的狀态緊密相關:

  (1) 處于“草稿”狀态的配置項的版本号格式為:0.YZ

  (2) 處于“正式釋出”狀态的配置項的版本号格式為:X.Y。

  一般隻是Y值遞增,當Y值到達一定的範圍時X值才發生變化。

  (3) 處于“正在修改”狀态的配置項的版本号格式為:X.YZ。

  一般隻增大Z值,當配置項修改完畢,狀态重新變成“正式釋出”時,将Z值變為0,增加X.Y值。

5、常用的配置管理軟體

  

  自從20世紀80年代後期研制并完善了“增量存儲算法”後配置管理工具的春天便開始了,目前國内常用的配置管理工具大概有SourceSafe、CVS和ClearCase。

  SCM(Software Configuration Management,軟體配置管理) 是 一種辨別、組織和控制修改的技術。軟體配置管理應用于整個軟體工程過程。我們知道,在軟體建立時變更是不可避免的,而變更加劇了項目中軟體開發者之間的混 亂。SCM活動的目标就是為了辨別變更、控制變更、確定變更正确實作并向其他有關人員報告變更。從某種角度講,SCM是一種辨別、組織和控制修改的技術, 目的是使錯誤降為最小并最有效地提高生産效率。

  軟體配置管理(Software Configuration Management,SCM)作為CMM 2級的一個關鍵域(Key Practice Area,KPA),在整個軟體的開發活動中占有很重要的位置。正如Pressman所說的:“軟體配置管理是貫穿于整個軟體過程中的保護性活動,它被設 計來(1)辨別變化,(2)控制變化,(3)保證變化被适當的發現,以及(4)向其他可能有興趣的人員報告變化。” 是以,我們必須為軟體配置管理活動設計一個能夠融合于現有的軟體開發流程的管理過程,甚至直接以這個軟體配置管理過程為架構,來再造組織的軟體開發流程。

  一、迅速發展的軟體配置管理

  配置管理的概念源于美國空軍,為了規範裝置的設計與制造,美國空軍1962年制定并釋出了第一個配置管理的标準“AFSCM375-1,CM During the Development & Acquisition Phases”。

  而軟體配置管理概念的提出則在20世紀60年代末70年代初。當時加利福利亞大學聖巴巴拉分校 的Leon Presser教授在承擔美國海軍的航空發動機研制合同期間,撰寫了一篇名為“Change and Configuration Control”的論文,提出控制變更和配置的概念,這篇論文同時也是他在管理該項目(這個過程進行過近一千四百萬次修改)的一個經驗總結。

  Leon Presser在1975年成立了一家名為SoftTool的公司,開發了配置管理工具:Change and Configuration Control(CCC),這是最早的配置管理工具之一。

  随着軟體工程的發展,軟體配置管理越來越成熟,從最初的僅僅實作版本控制,發展到現在的提供工 作空間管理、并行開發支援、過程管理、權限控制、變更管理等一系列全面的管理能力,已經形成了一個完整的理論體系。同時在軟體配置管理的工具方面,也出現 了大批的産品,如:最著名的ClearCase;開源産品CVS;入門級工具Microsoft VSS;新秀Hansky Firefly。

  在國外已經有30多年曆史的軟體配置管理,但在國内的發展卻是在21世紀這幾年的事。但是通過專家們的介紹,我們感受到,國内的軟體配置管理已經取得了迅速發展,并得到了軟體公司的普遍認可。

  二、軟體配置管理的基本目标

  軟體配置管理是在貫穿整個軟體生命周期中建立和維護項目産品的完整性。它的基本目标包括:

  目标 1: 軟體配置管理的各項工作是有計劃進行的。

  目标 2: 被選擇的項目産品得到識别,控制并且可以被相關人員擷取。

  目标 3: 已識别出的項目産品的更改得到控制。

  目标 4: 使相關組别和個人及時了解軟體基準的狀态和内容。

  三、XSSC有關軟體配置管理的方針

  為了達到上述目标, 如下的方針應該得到貫徹執行:

  技術部門經理和具體項目主管應該使用和遵循XSSC的OSSP中所描述的軟體配置管理的工作過程。

  施行軟體配置管理的職責應被明确配置設定。相關人員得到軟體配置管理方面的教育訓練。

  技術部門經理和具體項目主管應該明确他們在相關項目中所擔負的軟體配置管理方面的責任。

  軟體配置管理工作應該享有足夠的資金支援,這需要在客戶,技術部門經理和具體項目主管之間協商。

  軟體配置管理應該實施于如下産品:對外傳遞的軟體産品,以及那些被標明的在項目中使用的支援類工具等。

  軟體配置的整體性在整個項目生命周期中得到控制。

  軟體品質保證人員應該定期稽核各類軟體基準以及軟體配置管理工作。

  使軟體基準的狀态和内容能夠及時通知給相關組别和個人。

  四、常用的軟體配置管理工具

  現在常用的軟體配置管理工具主要分為三個級别:

  Rational ClearCase,CA CCC/Havest

  Merant PVCS

  Microsoft VSS,CVS

  五.軟體配置管理角色職責

  對于任何一個管理流程來說,保證該流程正常運轉的前提條件就是要有明确的角色、職責和權限的定 義。特别是在引入了軟體配置管理的工具之後,比較理想的狀态就是:組織内的所有人員按照不同的角色的要求、根據系統賦予的權限來執行相應的動作。是以,在 本文所介紹的這個軟體配置管理過程中主要涉及下列的角色和分工:

  項目經理(Project Manager,PM):

  項目經理是整個軟體研發活動的負責人,他根據軟體配置控制委員會的建議準許配置管理的各項活動并控制它們的程序。其具體職責為以下幾項:

  制定和修改項目的組織結構和配置管理政策;

  準許、釋出配置管理計劃;

  決定項目起始基線和開發裡程碑;

  接受并審閱配置控制委員會的報告。

  配置控制委員會(Configuration Control Board,CCB):

  負責指導和控制配置管理的各項具體活動的進行,為項目經理的決策提供建議。其具體職責為以下幾項:

  定制開發子系統;

  定制通路控制;

  制定常用政策;

  建立、更改基線的設定,稽核變更申請;

  根據配置管理者的報告決定相應的對策。

  配置管理者(Configuration Management Officer,CMO):

  根據配置管理計劃執行各項管理任務,定期向CCB送出報告,告,并列席CCB的例會。其具體職責為以下幾項:

  軟體配置管理工具的日常管理與維護;

  送出配置管理計劃;

  各配置項的管理與維護;

  執行版本控制和變更控制方案;

  完成配置審計并送出報告;

  對開發人員進行相關的教育訓練;

  識别軟體開發過程中存在的問題并拟就解決方案。

  系統內建員(System Integration Officer,SIO):

  系統內建員負責生成和管理項目的内部和外部釋出版本,其具體職責為以下幾項:

  內建修改;

  建構系統;

  完成對版本的日常維護;

  建立外部釋出版本。

  開發人員(Developer,DEV):

  開發人員的職責就是根據組織内确定的軟體配置管理計劃和相關規定,按照軟體配置管理工具的使用模型來完成開發任務。

  六.軟體配置管理過程描述

  一個軟體研發項目一般可以劃分為三個階段:計劃階段、開發階段和維護階段。然而從軟體配置管理的角度來看,後兩個階段所涉及的活動是一緻,是以就把它們合二為一,成為“項目開發和維護”階段。

  項目計劃階段:

  一個項目設立之初PM首先需要制定整個項目的計劃,它是項目研發工作的基礎。在有了總體研發計 劃之後,軟體配置管理的活動就可以展開了,因為如果不在項目開始之初制定軟體配置管理計劃,那麼軟體配置管理的許多關鍵活動就無法及時有效的進行,而它的 直接後果就是造成了項目開發狀況的混亂并注定軟體配置管理活動成為一種“救火”的行為。是以及時制定一份軟體配置管理計劃在一定程度上是項目成功的重要保 證。

  在軟體配置管理計劃的制定過程中,它的主要流程應該是這樣的:

  CCB根據項目的開發計劃确定各個裡程碑和開發政策;

  CMO根據CCB的規劃,制定詳細的配置管理計劃,交CCB稽核;

  CCB通過配置管理計劃後交項目經理準許,釋出實施。

  項目開發維護階段:

  這一階段時項目研發的主要階段。在這一階段中,軟體配置管理活動主要分為三個層面:(1)主要由CMO完成的管理和維護工作;(2)由SIO和DEV具體執行軟體配置管理政策;(3)變更流程。這三個層面是彼此之間既獨立又互相聯系的有機的整體。

  在這個軟體配置管理過程中,它的核心流程應該是這樣的:(1)CCB設定研發活動的初始基線; (2)CMO根據軟體配置管理規劃設立配置庫和工作空間,為執行軟體配置管理就阿做好準備;(3)開發人員按照統一的軟體配置管理政策,根據獲得的授權的 資源進行項目的研發工作;(4)SIO按照項目的進度內建組内開發人員的工作成果,并建構系統,推進版本的演進;(5)CCB根據項目的進展情況,稽核各 種變更請求,并适時的劃定新的基線,保證開發和維護工作有序的進行。

  這個流程就是如此循環往複,直到項目的結束。當然,在上述的核心過程之外,還涉及其他一些相關的活動和操作流程,下面按不同的角色分工予以列出:

  各開發人員按照項目經理釋出的開發政策或模型進行工作;

  SIO負責将各分項目的工作成果歸并至內建分支,供測試或釋出;

  SIO可向CCB提出設立基線的要求,經準許後由CMO執行;

  CMO定期向項目經理和CCB送出審計報告,并在CCB例會中報告項目在軟體過程中可能存在的問題和改進方案;

  在基線生效後,一切對基線和基線之前的開發成果的變更必須經CCB的準許;

  CCB定期舉行例會,根據成員所掌握的情況、CMO的報告和開發人員的請求,對配置管理計劃作出修改,并向項目經理負責。

  七. 軟體配置管理的關鍵活動

  1.配置項(Software Configuration Item,SCI)識别

  Pressman對于SCI給出了一個比較簡單的定義:“軟體過程的輸出資訊可以分為三個主要 類别:(1)計算機程式(源代碼和可執行程式),(2)描述計算機程式的文檔(針對技術開發者和使用者),以及(3)資料(包含在程式内部或外部)。這些項 包含了所有在軟體過程中産生的資訊,總稱為軟體配置項。”

  由此可見,配置項的識别是配置管理活動的基礎,也是制定配置管理計劃的重要内容。

  軟體配置項分類軟體的開發過程是一個不斷變化着的過程,為了在不嚴重阻礙合理變化的情況下來控 制變化,軟體配置管理引入了“基線(Base Line)”這一概念。IEEE對基線的定義是這樣的:“已經正式通過複稽核準許的某規約或産品,它是以可作為進一步開發的基礎,并且隻能通過正式的變化 控制過程改變。”

  是以,根據這個定義,我們在軟體的開發流程中把所有需加以控制的配置項分為基線配置項和非基線配置項兩類,例如:基線配置項可能包括所有的設計文檔和源程式等;非基線配置項可能包括項目的各類計劃和報告等。

  配置項的辨別和控制

  所有配置項都都應按照相關規定統一編号,按照相應的模闆生成,并在文檔中的規定章節(部分)記錄對象的辨別資訊。在引入軟體配置管理工具進行管理後,這些配置項都應以一定的目錄結構儲存在配置庫中。

  所有配置項的操作權限應由CMO嚴格管理,基本原則是:基線配置項向軟體開發人員開放讀取得權限;非基線配置項向PM、CCB及相關人員開放。

  2.工作空間管理

  在引入了軟體配置管理工具之後,所有開發人員都會被要求把工作成果存放到由軟體配置管理工具所 管理的配置庫中去,或是直接工作在軟體配置管理工具提供的環境之下。是以為了讓每個開發人員和各個開發團隊能更好的分工合作,同時又互不幹擾,對工作空間 的管理和維護也成為了軟體配置管理的一個重要的活動。

  一般來說,比較理想的情況是把整個配置庫視為一個統一的工作空間,然後再根據需要把它劃分為個人(私有)、團隊(內建)和全組(公共)這三類工作空間(分支),進而更好的支援将來可能出現的并行開發的需求。

  每個開發人員按照任務的要求,在不同的開發階段,工作在不同的工作空間上,例如:對于私有開發 空間而言,開發人員根據任務分工獲得對相應配置項的操作許可之後,他即在自己的私有開發分支上工作,他的所有工作成果展現為在該配置項的私有分支上的版本 的推進,除該開發人員外,其他人員均無權操作該私有空間中的元素;而內建分支對應的是開發團隊的公共空間,該開發團隊擁有對該內建分支的讀寫權限,而其他 成員隻有隻讀權限,它的管理工作由SIO負責;至于公共工作空間,則是用于統一存放各個開發團隊的階段性工作成果,它提供全組統一的标準版本,并作為整個 組織的Knowledge Base。

  當然,由于選用的軟體配置管理工具的不同,在對于工作空間的配置和維護的實作上有比較大的差 異,但對于CMO來說,這些工作是他的重要職責,他必須根據各開發階段的實際情況來配置工作空間并定制相應的版本選取規則,來保證開發活動的正常運作。在 變更發生時,應及時做好基線的推進。

  3.版本控制

  版本控制是軟體配置管理的核心功能。所有置于配置庫中的元素都應自動予以版本的辨別,并保證版 本命名的唯一性。版本在生成過程中,自動依照設定的使用模型自動分支、演進。除了系統自動記錄的版本資訊以外,為了配合軟體開發流程的各個階段,我們還需 要定義、收集一些中繼資料(Metadata)來記錄版本的輔助資訊和規範開發流程,并為今後對軟體過程的度量做好準備。當然如果選用的工具支援的話,這些 輔助資料将能直接統計出過程資料,進而友善我們軟體過程改進(Software Process Improvement,SPI)活動的進行。

  對于配置庫中的各個基線控制項,應該根據其基線的位置和狀态來設定相應的通路權限。一般來說,對于基線版本之前的各個版本都應處于被鎖定的狀态,如需要對它們進行變更,則應按照變更控制的流程來進行操作。

  4.變更控制

  在對SCI的描述中,我們引入了基線的概念。從IEEE對于基線的定義中我們可以發現,基線是 和變更控制緊密相連的。也就是說在對各個SCI做出了識别,并且利用工具對它們進行了版本管理之後,如何保證它們在複雜多變得開發過程中真正的處于受控的 狀态,并在任何情況下都能迅速的恢複到任一曆史狀态就成為了軟體配置管理的另一重要任務。是以,變更控制就是通過結合人的規程和自動化工具,以提供一個變 化控制的機制。

  在本文的前面的部分中,已經把SCI分為基線配置項和非基線配置項兩大類,是以這裡所涉及的變更控制的對象主要指配置庫中的各基線配置項。

  變更管理的一般流程是:

  A) (獲得)提出變更請求;

  B) 由CCB稽核并決定是否準許;

  C) (被接受)修改請求配置設定人員為,提取SCI,進行修改;

  D) 複審變化;

  E) 送出修改後的SCI;

  F) 建立測試基線并測試;

  G) 重建軟體的适當版本;

  H) 複審(審計)所有SCI的變化;

  I) 釋出新版本。

  在這樣的流程中,CMO通過軟體配置管理工具來進行通路控制和同步控制,而這兩種控制則是建立在前文所描述的版本控制和分支政策的基礎上的。

  5.狀态報告

  配置狀态報告就是根據配置項操作資料庫中的記錄來向管理者報告軟體開發活動的進展情況。這樣的報告應該是定期進行,并盡量通過CASE工具自動生成,用資料庫中的客觀資料來真實的反映各配置項的情況。

  配置狀态報告應根據報告應着重反映目前基線配置項的狀态,以作為對開發進度報告的參照。同時也能從中根據開發人員對配置項的操作記錄來對開發團隊的工作關系作一定的分析。

  配置狀态報告應該包括下列主要内容:

  A) 配置庫結構和相關說明;

  B) 開發起始基線的構成;

  C) 目前基線位置及狀态;

  D) 各基線配置項內建分支的情況;

  E) 各私有開發分支類型的分布情況;

  F) 關鍵元素的版本演進記錄;

  G) 其它應予報告的事項。

  6.配置審計

  配置審計的主要作用是作為變更控制的補充手段,來確定某一變更需求已被切實實作。在某些情況下,它被作為正式的技術複審的一部分,但當軟體配置管理是一個正式的活動時,該活動由SQA人員單獨執行。

  總之,軟體配置管理的對象是軟體研發活動中的全部開發資産。所有這一切都應作為配置項納入管理 計劃統一進行管理,進而能夠保證及時的對所有軟體開發資源進行維護和內建。是以,軟體配置管理的主要任務也就歸結為以下幾條:(1)制定項目的配置計劃; (2)對配置項進行辨別;(3)對配置項進行版本控制;(4)對配置項進行變更控制;(5)定期進行配置審計;(6)向相關人員報告配置的狀态。

  在此,我想特别指出的是:由于軟體配置管理覆寫了整個軟體的開發過程,是以它是改進我們的軟體 過程、提高過程能力成熟度的理想的切入點。希望本文所描述的這個軟體配置管理的角色配置設定和工作流程能在實踐中不斷地得到完善,進而使我們的軟體開發活動能 夠更加有序、高效的進行!

  八、實施配置管理的收益

  國内很多軟體企業已經逐漸認識到配置管理的重要性,都希望通過實施配置管理來提高軟體開發管理的水準,增強企業自身的競争力,應對市場的壓力。

  針對市場的這些需求,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的産品采用了三層結構設計,其存儲庫完全不依賴于網絡檔案體統,無需共享存儲目錄,能夠有效防止病毒攻擊所導緻的存儲庫癱瘓或損壞,同時杜絕網絡非法通路。

  關于軟體配置管理的書重點推薦國人自己原創的一本《未雨綢缪——了解軟體配置管理》可以上網搜尋一下。

[ 編輯本段 ] SCM(Storage-Class Memory 儲存級記憶體)

  做為硬碟技術的老祖宗,IBM實驗室内部正緊鑼密鼓研發一項稱之為儲存級記憶體(SCM, Storage-Class Memory)技術。

  根據IBM提供的資料,SCM是新一代的非揮發性記憶體技術,其存取速度效能表現與記憶體模組一 緻,但又具有半導體産品的可靠性,且在無須拭去(erase)舊有資料的情況下直接寫入。IBM表示,待其實際商品化之後——大約在5年之内,每1Gb成 本大約隻要閃存的1/3,是以将先取代前者在随身裝置的市場位置;而在2012年到2015年之間,就可望取代企業等級儲存設備中的硬碟。

  IBM的規劃是,SCM産品的出現将使目前各項儲存技術構築的金字塔結構改變:依照存取速度、價格、儲存資料量來看,目前在最底端的是錄音帶,之上分别是CD光牒片、磁盤、記憶體模組。

  “SCM技術将卡進磁盤和記憶體模組之間:SCM的價格比磁盤高,但是存取速度比磁盤快得多,又比記憶體模組便宜。” IBM系統科技事業群儲存及軟體架構副總裁Jai Menon說。他表示SCM其中之一的可行應用,就是取代硬碟進入電腦成為存儲媒介。

  “到時候電腦開機的時間,不再會是以分鐘來計算,而是兩秒鐘之内。”Menon說。

[ 編輯本段 ] SCM視訊格式

   SCM是一種全新的互動視訊格式,這個格式最大的特點就是支援互動式視訊技術。可以說它開創了網際網路上互動視訊的先河。 SCM有很多特殊的技術,這些都是傳統視訊格式所沒有的特點。比如: ⑴ 超級水印:非常華麗的動态水印,而且水印支援滑鼠點選,可以直接激活相關網站連結 ⑵ 音視訊資料流分組支援及自由播放控制 ⑶ 快速添加片頭動畫 ⑷ 可訂制互動控制台或使用者界面 其他如DRM技術,主流解碼器支援,内置字幕功能等等都一應俱全。是以我們認為這種視訊格式有着傳統rmvb/wmv/mkv/avi所不能比拟的很多優 勢,是以我們使用這種格式制作的視訊。 SCM會為網站、發片組織和使用者可以帶來什麼樣的新感受? 一 SCM支援超級水印LOGO功能 這個功能可以讓大家用最簡單的方式做出來漂亮、美觀、大方的台标logo。大大彌補了以前用ssa制作發片組logo的不足,用ssa腳本制作的 logo隻能制作簡單的圖形,一些移動旋轉效果。而用avs腳本的進階功能做圖形logo也很費時費力。大大增加了壓片的周期和難度,同時效果也不好。而 scm格式支援swf,png,jpg,gif的動畫logo技術,不但logo效果可以随心所欲好很多倍,而且添加logo幾乎不需要任何額外的時間。 制作影片速度和效率都能達到最高,以前專業的工作現在變得簡單快捷,節約了時間就是降低了成本。更有趣的是logo上還可以添加超連結,使用者不需要再輸入 網站域名,隻需輕輕一點,就能連結到發片組的網站上看最新的資訊。

  二 SCM支援快速片頭添加 如果你需要宣傳你的網站,隻需要做一個超炫的flash動畫,配置到生成工具的配置中去,就可以在影片開頭加入你網站的介紹。flash動畫的制作成本, 開發效率,以及畫面效果,絕對超過用普通的視訊編輯軟體生成的視訊效果。而且不需要根據不同的影片的碼率分辨率重新編碼,閃電間就能完成壓片過程。而且 flash檔案體積小,一個10秒450kbps的片頭,傳統技術差不多占用562.5KB的儲存空間,而這麼大的容量flash高手可以做出1分30秒 到2分30秒的動畫。大家想想scm真的比其他格式更浪費儲存空間嗎?

  三 SCM支援内置字幕和快速字幕切換支援,支援srt/ass/ssa格式的字幕,這個是mkv格式才有的字幕支援特殊功能。 SCM比MKV更強的是在底層直接支援字幕的顯示(mkv隻儲存了字幕字幕的顯示是播放器決定的),是以SCM可以不依賴播放器是否提供了字幕的功能,而 直接進行字幕顯示與字幕快速切換。以後大家不必再擔心播放器會不支援雙語或多語字幕的顯示,因為SCM格式 已經徹底支援了

  四 SCM支援内置的章節跳轉,這個功能和DVD的節目菜單選擇功能一樣。 大家以後制作節目,可以和DVD一樣提供精彩段落的跳轉功能。

  五 開放的使用者界面定制 除此之外,SCM最新最強的一個功能就是提供一個額外的可被定制的使用者面闆,這個功能原本是用來做互動視訊的視訊控制接口的,站長可以拿這個接口做一些額 外的功能。因為這個使用者界面也是flash技術做的,是以我們可以打造一個屬于自己的發片網站、自己發片組品牌的控制台,可以有一個全新的方式介紹自己 的發片組,自己的網站,這總比bt目錄中放一堆txt,url檔案強很多吧(大家想想,如果豬豬出品的視訊的旁邊還有一個視窗上面有個憨厚的小豬向你眨眨 眼是多有趣的事呀)。利用flash的功能也很容易設定更多的功能,比如連結論壇的程式接口,可以向使用者及時推送最新的論壇資訊和種子下載下傳資訊等等。至于 前面所提的字幕切換與章節跳轉,也可以通過這個界面實作。 最近,我們就利用這個接口用flash做了一個IM界面的聊天室,大家可以去看看相關示範,現在客戶界面功能還不全,比如還不能貼表情。我們希望以後完善 之後可以實作網友間交流甚至開視訊聊天。 現在各種下載下傳工具如迅雷等,都在自己軟體中直接提供種子搜尋下載下傳的功能。使用者用這些搜尋軟體久了,誰還會去發片的網站看資訊與新聞,怎麼又會參與到網站中 去為網站創造流量呢?而現在就可以通過scm的這個使用者界面,讓看自己制作的視訊的使用者随時和自己的網站保持直接的溝通。 我想現在大家知道SCM互動視訊比起傳統的rmvb/avi/mkv有哪些與衆不同的功能了吧。

繼續閱讀