SAP研發管理精要,流水線管理、bug管理和CMM等內容
goto推薦 [2005-6-6]
出處:inte.net
作者:未知
SAP研發管理精要
企業管理本身流程錯綜復雜,用軟件把這些錯綜復雜的關系梳理成一個智能、順暢的“有機體”,又需要各種邏輯運算和數據處理。不僅如此,面臨幾十個行業各不相同的需求和成百上千個企業各具特色的企業“個性”,同時又要組織遍布于全球各地幾千人的開發隊伍,SAP如何駕馭管理軟件開發這一浩大的工程?
1972年,德國,曼海姆的IBM公司。任職銷售顧問的Hasso Plattner在等待著公司對自己建議的回復。他的建議就是開發財務軟件包,用現成的軟件包取代昂貴的定制應用。
當IBM公司回絕了他的建議之后,他和4名做軟件工程師的同事離開了IBM,白手起家創辦SAP軟件公司。
而今,每天早上,世界500強中80%的公司都會進入由SAP公司提供的管理和協同商務平臺,進行高效率的工作。一向好斗、性格倔強、勇于接受挑戰的SAP聯合主席兼首席執行官Plattner在經歷了SAP的諸多風浪之后,當他看到SAP在軟件市場低迷的情況下,2001年第三季度仍舊實現了贏利預期,前三個月的收入達到50億歐元,收入增長率為23%,高興地評論道: “雖然近來軟件市場,特別是美國市場有巨大的變化,客戶紛紛推遲軟件的購買計劃,但對于現在最有效的解決方案,企業還是愿意投資的。越來越多的企業轉向SAP,因為他們相信SAP能給他們帶來更高的投資回報率、更優秀的功能和便捷的集成!
這家總部位于德國沃爾多夫市,號稱“全球最大的企業管理解決方案供應商、全球第三大獨立軟件供應商、全球領先的協同電子商務解決方案供應商”的軟件巨人目前在全球的120多個國家和地區擁有1.65多萬家客戶,向全球提供基于“五大支柱”戰略的產品,這就是mySAP SCM(供應鏈管理)、mySAP PLM(產品生命周期管理)、mySAP CRM(客戶關系管理)、SAP Portals 的Enterprise Portals(企業門戶)和SAPMarkets 的Exchanges(交易集市)。
而你是否知道,在全球,SAP擁有員工2.5萬多名,在總部,SAP的開發人員有5000多名,而SAP的開發實驗室和開發中心更是遍布全球多個角落:德國慕尼黑,美國硅谷,法國,加拿大,中國,印度,澳大利亞,日本……如何調度這只由幾千人組成的開發大軍?如何將幾千人隱于無形的智慧聚合起來打造商業智能方案,而這方案又凝聚著來自世界頂尖企業先進的管理實踐和管理理念?
董美婷,目前是SAP中國公司北方區咨詢顧問經理,在負責整個咨詢隊伍的同時,還負責協同商務解決方案中心。1997年6月加入SAP的她,有機會親身體會了SAP研發的精髓。剛開始加入SAP的她,擔任技術顧問;1998年初,SAP中國公司成立開發中心,她擔任開發中心的負責人;2000年,SAP投資1000萬美元,組織30多個研發人員,建立了SAP中國協同商務解決方案中心,她被任命為負責人。在此之前的9年時間里,董經歷過中科院軟件所和中國惠普兩個單位。
董美婷以一個典型的中國開發者體驗著SAP博大精深的管理軟件研發過程,同時,以SAP中國公司技術總監芮祥麟為核心的研發隊伍也逐漸被納入到SAP全球研發計劃中。
在咖啡廳、足球賽中工作
在SAP德國的辦公室里,研發人員通常是4個人一組坐在一間20平方米左右的房間,他們使用那些租來的具備最高性能的設備,利用SAP自主開發或者第三方提供的開發管理工具,遵循著SAP研發“機器”特有的“程序”編程序、抓bug。通常,他們會在寬帶上瀏覽公司的公共平臺或者互聯網,以獲得某一部分現成的可復制的文檔,或者在自認為合適的時間學習e-learning課程(例如語言、項目管理等)。而在公司里,咖啡廳可以供他們悠閑地坐下閑聊,SAP認為無論你聊什么,總會對工作有所幫助的,比如加深了了解和溝通。而如果你覺得工作累了,設在公司內部的健身中心、網球場都可以免費使用。每到周末大家可以開車到風光旖旎的小鎮,在山頂的足球場上踢足球,附近的居民們會趕來加油、吶喊,足球賽會使很多平日里不認識或不熟悉的同事熟悉起來,他們在工作時需要協助或者討論或者啟發,這樣他們會很容易地知道找誰合適。而每一個月他們都會參加一項叫做團隊建設的活動,大家集體出去,或者爬山,或者滑雪,總之是大家可以一起參與而又需要相互協作和溝通的活動。SAP中國的員工每個月同樣也會去參加團隊建設的活動,而董美婷所帶領的30多名研發員工也會在月中及時地聚在一起,討論一個階段以來在某些項目上的得失。
嚴謹的德國人對于寫軟件有著比打造精美工藝品更細膩的心思。有時,一個字段會討論上兩個星期。如果需要,隨時會有一個非正式會議在咖啡廳開始。對于產品經理的需求,他們會逐字逐句地推敲,以確定這是否就是客戶工作所需要的。
值得一提的是,每天,SAP全球的開發人員都在使用著SAP獨有的開發語言ABAP——高級商業應用語言展開工作。SAP認為做管理軟件并不需要追求技術的時髦,SAP看重的是: 滿足需要,在功能、流程、速度、穩定性上的表現要優先于其他;谶@種語言的技術平臺還可以使SAP的產品與各種系統無縫連接。
管理軟件“流水線”
通常,新產品或新版本的誕生,需要走過六道“工序”,這就是產品規劃階段(Product Planning)、需求形成階段(Specification)、設計階段(Design)、實現階段(Implementation)、測試階段(Test)和技術支持階段(Maintenance)。事實上,這六道工序并不像一般硬件產品的流水線那樣,這六個階段或者交叉,或者平行,總之構成了一個復雜的統籌項目。
由于SAP提供的各種解決方案要面對不同用戶千差萬別的功能需求,在項目開始之前,需要進行非常詳盡的規劃,以決定功能的取舍和增強,這一階段決定著產品的發展方向,也是項目成敗的關鍵。同時,這一工作也要求參加項目的SAP和非SAP人員進行充分的交流溝通,從而為將來的開發打下基礎。特別是對于那些比較復雜、跨模塊的項目,需要在模塊間的功能開發和工作進度上作出統一的規劃,以避免重復開發和集成問題。
通常,規劃階段的工作可以按三個步驟進行。第一步是收集和評估開發需求,為新產品或升級現有產品而從各種渠道收集用戶需求和意見。如果是升級現有產品,則由開發組對開發請求進行評估,并作為新版本開發的基礎;如果是新應用模塊開發,則由項目的產品管理小組和開發經理對實際應用和流程進行分析,并提供粗略的開發計劃,為下一步的決策做必要的準備。第二步則是開發規劃的決策階段,主要是分析整個項目的可行性,以及確定項目開發的優先級,對于比較重要的或者是策略性的項目,通常是由部門主管或執行董事參與決策。第三步,則需要制定詳盡的開發計劃,包括功能劃分、工作分配、進度控制等。
走完規劃階段,項目組以及產品經理則開始對軟件產品進行分析,確定各種用戶需求的優先級,并決定哪些功能將在系統中實現,以及實現的程度和方式。這一階段的工作需要與用戶及咨詢顧問進行大量的面對面交流,在得到用戶需求的同時,也需要將項目的進展及時通報,以得到反饋。需求形成階段作為開發階段的基礎,最終形成的需求文檔需要從用戶的角度對產品進行描述,對各種功能模塊的描述要盡量明了,因為此文檔也將是產品實現和測試的基礎。同時,文檔還要就產品可用性、運行性能等方面進行規定。
當項目組拿到了具體詳盡的需求文檔后,設計階段開始啟動。在設計階段,由各功能模塊的負責人組織小組成員,一起建立模型(如數據模型、功能模型、過程模型、對象模型等),創建必要的數據結構和函數,同時,對程度元素的命名原則、開發規范及模塊間的接口等作出定義。由此形成的設計文檔成為項目實現的基礎,并且是軟件維護的重要參考,所以,此文檔應當盡量詳細。此階段的工作以用戶需求為基礎,為用戶提供有效的解決方案,設計的好壞將直接影響到系統的功能和性能。
當某種功能比較復雜時,設計文檔通?梢苑殖蓛深: 一類是粗略設計,參考系統中現有的過程、工具和函數庫,以確定可以復用的對象,使用系統中現有的對象和技術可以提供新功能的可靠性,降低開發成本;第二類是詳細設計,包括對數據字典、程序對象、用戶界面、處理流程以及各個對象之間的接口定義進行詳細的設計。
設計階段之后,就進入了具體的開發階段,即實現階段。實現階段是以設計文檔為基礎來創建數據字典和程序對象。SAP對ABAP程序開發有比較完整的指導文檔,并要求開發人員按照SAP的開發規范創建用戶界面。在R/3項目開發中,規范性與技術同樣重要,由于一個項目通常是由很多開發人員協同完成的,程序的可讀性和詳細文檔對于項目來講是非常重要的。在開發的同時,文檔開發人員為相應的功能模塊創建在線文檔、培訓教材等必要的用戶文檔,這需要開發人員的密切協作。此階段同時也是開發測試階段,開發人員需要對新的模塊進行測試、代碼檢查、可用性測試等,并進行開發人員間相互測試,以便在開發階段保證模塊的質量。
實際的測試階段從具體的開發階段就開始了,此謂開發測試,而正式的測試則是在質量經理(QM)主持下,由質量管理小組、產品管理小組及用戶共同參與進行非常完整、細致的測試。它不只面對單一功能單元,而是根據用戶需求文檔、設計文檔并按用戶實際流程設計出測試文檔,對系統的可用性、性能、用戶界面、表達統一性、文檔、翻譯等進行全面測試。
同時開發人員需要密切配合,及時修改發現的錯誤。測試階段的工作是軟件提供給用戶前的最后一道工序,它直接關系到軟件的質量。所以,此工作需要非常周密的安排,就這個意義而言,QM也擔負著保證軟件質量的責任。
SAP的技術支持分成三級: 當地支持(Local Support)、地區支持(Regional Support)和開發支持(Development Support)。當用戶遇到的問題無法由前兩級完成時,這個問題就會送達開發人員,由開發人員確認錯誤來源,并提供正確的響應。這一過程可以包括在用戶系統中修改程序、文檔,如果問題所涉及的功能比較廣泛,SAP內部相關的開發人員會協同工作,共同解決問題。隨后的分析會對問題或需求有更加深層的總結,一旦需要,新的需求會被包括在新版本的開發中。SAP還會提供Hot Packages和Hot News,以幫助用戶及時處理系統中的錯誤。
2
SAP研發管理精要
2004.01.26
管理Bug的“程序”
在董美婷看來,Bug產生的來源可以分為流程錯誤和程序錯誤。
流程錯誤是非常致命的,它會導致系統無法實現用戶的需求,它通常發生于項目規劃和設計階段。對于這方面的錯誤,SAP有相應的機制加以控制。在用戶需求分析過程中,產品管理小組與用戶之間進行協同工作,同時經驗豐富的項目經理和開發經理也會參與,最后形成的用戶需求和項目規劃文檔還要由專門的小組進行周密的分析和檢查。尤其是在模塊設計階段,這種檢查更加嚴格,通常這一階段的檢查是由資深專家組成的小組來完成的,其成員會有來自于其他項目的,從而保證了系統設計的質量。
程序錯誤是在所難免的,SAP除了利用測試階段的工作來減少Bug的同時,還用以下手段在開發階段盡可能地避免Bug: ①自我測試,要求開發人員在完成自已負責的模塊后,馬上進行測試,消除模塊內部的錯誤;②相互測試,要求開發人員之間測試對方的模塊,由于不同開發人員的思維、開發方式的不同,對方會很容易找到一些自已很難發現的問題;③代碼檢查,通常是由資深開發人員及開發經理來進行,從模塊功能、性能、可用性、編碼規范、模塊集成性等角度進行全面檢查。這一工作會在系統實現的各個階段定期進行。SAP還提供了如CATT等輔助測試工具。
對于系統的后期維護階段,SAP也有對Bug的完整的管理流程。這可以以開發支持為例來說明。例如,當用戶系統發現Bug時,如果當地支持和地區支持都無法處理時,此維護請求會被提交相關負責的開發人員。開發人員負責盡快修改用戶系統中的Bug,或為用戶提出修改建議和解決方案,同時,也需要在更正(Correction)系統中進行修改,以便以補。≒atch)的方式提供給所有用戶。但對Correction系統中的修改有非常嚴格的管理,并需要一定的步驟:①與開發經理討論并征得許可; ②在OSS系統中創建修改申請,并對Bug所在版本、癥狀、解決方案作出詳細的描述和解釋,作為用戶/顧問將來處理此Bug的參照;③開發人員在Correction系統中修改程序,消除Bug,同時要求進行仔細的測試;④開發人員將修改請求轉給另外的開發人員,通常是開發經理或資深的開發人員,由其來進行更嚴格的測試,此次測試不但要測試Bug是否真正解決,還要確認對程序的修改是否影響了其他程序或模塊,以避免帶來新的問題。
這些修改會定期以Hot Package和Hot News的方式提供給用戶,用以修改用戶系統中的Bugs,但由于R/3各模塊之間的相關性/依賴性很強,Patch的發布需要各模塊特別是應用模塊與Basis模塊之間的協調和同步。
開發系統夢之隊
在SAP的開發系統中,七種角色的設計保證了整個SAP研發系統有條不紊、緊張有序地進行。首先,在戰略層面,不同的資深副總裁(SVP)
或副總裁 (VP)會總體負責一個特定的領域,從企業戰略高度出發把握系統的發展和開發方向,并對公司的產品結構和市場起著決定性的作用,同時控制產品開發的進展和成本。
其次,行業解決方案小組(IBS)和核心應用模塊領導小組(Core)分別就各自管理的領域協調管理項目前期的項目需求、規劃工作,二者也有非常密切的關系,即IBS就新的開發需求對核心應用模塊提出新的開發建議并隨時監控開發進展,而Core應用開發在開發產品的同時,會響應IBS新的開發請求,為新的解決方案提供支持。
在SAP,計劃總監(Program Directors)是一種特殊的角色,計劃總監管理所領導部門的項目開發計劃,負責開發資源的調配,根據項目分析方案決定項目最終的功能與方向,并監控具體項目的進展情況。
項目經理負責一個項目的計劃管理,包括功能模塊的劃分、成本及開發進度的估算、資源調配、狀態報告等,并負責協調產品管理、各開發小組、質量管理的工作。
產品經理(PM)和其領導的產品管理小組負責分析解釋來自于用戶的各種需求,并參與制定用戶需求文檔和開發請求,所以,全面的行業應用背景是對產品經理最重要的要求,同時也要求對R/3有一定的理解。產品管理小組在整個開發過程還有其他工作:
①協助項目經理及模塊負責人完成模塊設計; ②在開發階段,與開發人員及文檔開發人員密切協作,為程序開發和制作文檔提供幫助;③參與系統測試,培訓用戶及提供咨詢服務。
開發經理(DM)領導各個開發小組,負責分析用戶需求(根據用戶需求文檔,同時也有可能直接與用戶對話),規劃設計所負責模塊的程序對象,估計各個開發階段的開發工作量和進度,從而對整個進程加以控制。開發經理是SAP各項目開發中的中堅力量,也是SAP為此而自豪的精華,他們都有多年的開發和應用經驗,對R/3系統及ERP系統有非常深刻的認識,從而保證了R/3系統的先進性和穩定性。開發經理不但提供了系統設計,而且還要直接與開發人員交流,調配資源,保證系統的實現; 同時,在系統測試、產品維護等方面也起著非常重要的作用。應該說,開發經理是整個項目開發的核心。通常,在一個項目中,產品經理和開發經理的配備比例是1∶3。
質量經理(QM)和其領導的小組負責根據用戶需求文檔、設計文檔等設計完整的測試文檔,并在產品管理小組、開發小組及用戶/顧問的協助下完成對最終系統的測試工作。質量經理往往要求對產品的實際應用、R/3技術甚至R/3項目的開發都有非常深刻的理解,而且經驗也是很重要的一個條件。作為系統的最后一關,SAP對質量經理的要求是非常高的,其結果是保證了R/3系統的穩定性。
SAP最基礎的角色要屬開發人員(Developer)了,他們負責實現設計文檔中分配的工作,并向開發經理報告開發進度,協助文檔開發人員完成文檔撰寫工作。開發人員必須對SAP ABAP開發語言非常熟悉,并能熟練運用各種開發技巧,同時也需要充分理解用戶的需求。開發人員在開發過程中允許更改設計,但必須與開發經理進行充分討論并負責對開發文檔進行修改,以保證二者的同步性。在測試階段,開發人員必須對測試的錯誤及時響應,以提供最有效的支持。在開發人員中,還有一種特殊的開發者角色,可以稱之為信息開發者(Information Developers),主要負責系統語種的翻譯(比如英譯漢)以及部分詞匯的修飾,他們不要求太懂開發,通常,對一些專門的翻譯人才進行一些產品培訓就可以從事信息開發的工作了。每一個開發小組會配備4~5個信息開發者。
在SAP,還有一種角色就是文檔經理(Knowledge Manager),文檔經理及其領導的小組負責撰寫在線文檔、幫助文檔、培訓教材等,并將用戶界面翻譯成其他國家的語言,這項工作需要在項目其他成員的幫助下完成,并根據開發的變化及時更新文檔。
SAP如何看待CMM ?
SAP認為,在市場需求千變萬化、技術發展一日千里的今天,軟件企業經常會面臨成本超支、產品交付延遲、軟件質量不過關和客戶不滿意等問題的困擾,遵循一些成熟而規范的管理理論和方法,形成一套適合于企業自身情況的開發模式和質量控制體系將有助于企業解決這些問題,并降低項目失敗的風險。
SAP認為自己一直在往這個方向努力,從管理和技術兩個方面規范自己的軟件開發過程。除了前面已提到的關于開發隊伍組織結構的建立和對軟件開發周期各個階段的定義等管理層面的問題之外,SAP引進軟件工程的最新研究成果,提出諸如業務對象(Business Object)、業務應用程序接口(BAPI)等概念和技術,從軟件構架的角度來優化開發和管理的過程。
3SAP研發管理精要
2004.01.26
作為兩種提高質量管理的方法和工具,CMM和ISO 9000系列之間并不是涇渭分明的,而是互有交叉。SAP的質量監控體系雖然建立在ISO 9000的基礎上,但董美婷認為CMM所提出的理論和方法已經被SAP吸收和運用了。事實上,無論是CMM還ISO標準,它們都只不過是一種規范和方法,企業最終的關注點應該是自身產品質量和管理能力的提高,也就是運用這些理論和方法后所取得的效果。換言之,也就是說不能僅為了取得CMM資格而實施CMM,更重要的是如何采取CMM評估提供的科學方法來管理自己的企業。
管理軟件與應用軟件的區別
眾周所知,企業管理軟件的客戶需求研究、軟件開發過程、產品規劃等有著一般應用軟件所不同的特點,他們之間究竟有什么樣的差別?董美婷認為有四個比較明顯的區別。
首先,應用軟件在激烈的市場競爭壓力下,對于功能的易用性、技術和性能都有很高的要求,需要不斷提高在這方面的優勢,以便在競爭中立于不敗之地;而管理軟件的開發則在此基礎上,更注重系統如何能夠真正反映和實現企業的運作流程,如何提高企業的工作效率和效益。因此,在開發管理軟件系統時,需要開發成員特別是產品管理人員、項目設計人員對解決方案所面對的企業有非常深刻、完整的了解,這也決定了在項目開發初期,與相關企業用戶、咨詢顧問的溝通成為項目成敗的關鍵。同時,企業的運作流程需要貫穿整個項目設計和實際過程,開發人員在實現設計之前,要對所負責的模塊及其與模塊之間的關系從應用的角度進行分析、理解。而在開發過程中,還要不斷與產品管理小組成員甚至用戶進行及時溝通。用戶需求、企業運作流程、模塊集成是整個開發周期中各個階段討論和研究的最主要問題,這會使企業的理念深入到系統中。
其次,ERP是一個系統工程,在企業運作過程中,各個模塊之間有著極其密切的關系,比如財務、生產、人力資源等模塊通常需要協同工作,系統需要在實現單一模塊功能的同時,又要使企業作為一個整體來統一管理,由此,模塊之間的接口和協調的重要性更加增強。所以開發一個ERP項目,不僅需要對項目的解決方案有充分理解,還要同時與其他模塊進行溝通,將項目作為整個系統工程的一個部分。SAP在開發項目的過程中,會有一個特殊的工作小組來負責各個相關模塊之間的交流和協調工作,這個小組既有專門人員,也有來自各模塊開發組中的項目經理或非常資深的開發人員。這! ∽C了R/3各模塊之間不但能夠實現技術上(模塊接口等)的集成,也保證了在企業流程高度上的完全整合。
第三,作為一個通用產品,ERP系統需要面對眾多需求不一、流程各異的企業,系統的可配置性、伸縮性就成為最重要的性能之一,特別是SAP
R/3系統,作為一個全球化的產品,在這方面的要求更加關鍵。項目開發初期的項目規劃階段也主要是對此方面進行大量工作,因為并不是所有的需求都能在系統中有完全的體現,而是在綜合研究了各類企業的需求之后,提出通用的解決方案,而對于比較特殊的需求,則通過系統的后期可擴展性來解決。為此,SAP提供了許多技術來實現不同級別的擴展能力,比如,系統個性化設置、企業結構配置、用戶二次開發等,并且已經在開發過程預留接口。
第四,在產品開發和測試階段,ERP產品項目的開發人員組成方面與應用軟件的開發有很大不同,最明顯的一點就是用戶和咨詢顧問的參與性。項目的開發和設計不但要及時與用戶進行交流,而且也會有用戶直接參與到這項工作當中,尤其在測試階段,功能模塊的正確性及性能可以由開發小組來完成,但對于流程的測試,用戶和咨詢顧問則是必不可少的,這也是驗證系統可用性的關鍵步驟。
如何管理開發者?
招聘什么樣的開發者?
SAP相信一個人只要具備了基本素質和某種職位需要的基本能力,經過SAP的培訓就可以勝任相應職位的的工作。比如你是應聘開發財務系統的,也許你是學物理或數學的,沒關系,只要你具備基本的開發能力,SAP會給你足夠的關于財務流程和業務方面的培訓。
如何考核開發者?
除了考核進度、質量外,SAP還會考核個人的職業能力,以及工作態度和努力程度。而考核的基礎就是上年確定的績效目標?己耸菫榱税l展開發者,不斷培養資深的開發者,并為產品經理、開發經理等職位物色后備人選。
把問題消滅在萌芽狀態
SAP倡導隨時解決問題,到咖啡廳喝杯咖啡或者一個電話會議,隨時把問題消滅在萌芽狀態,因為問題淤積而導致招開又長又艱難的會議在SAP是不受歡迎的。
文章來源于領測軟件測試網 http://www.kjueaiud.com/