摘要:軟件系統(tǒng)要求處理故障時間越短,第三方技術平臺越復雜、多樣,企業(yè)管理軟件項目越多,那么對于有效加強企業(yè)管理軟件產(chǎn)品化發(fā)展的要求越迫切。本文結(jié)合筆者的實際工作經(jīng)驗,就如何有效加強企業(yè)管理軟件產(chǎn)品化發(fā)展進行了深入的探討,提出了自己的見解和看法,具有一定的參考價值。
關鍵詞:企業(yè);管理軟件;產(chǎn)品化;發(fā)展
中圖分類號:F270.7 文獻標識碼:A 文章編號:1007-9599 (2012) 22-0000-02
1 前言
隨著企業(yè)管理軟件系統(tǒng)開發(fā)的日益升入,所采用的第三方技術平臺更新?lián)Q代快、復雜、種類多,若企業(yè)管理軟件系統(tǒng)的使用周期應該滿足一定的期限,且性能需要保持持續(xù)穩(wěn)定,那么就需要尋找出一條最佳實踐規(guī)范以供我們有效應用。軟件系統(tǒng)要求處理故障時間越短,第三方技術平臺越復雜、多樣,企業(yè)管理軟件項目越多,那么對于有效加強企業(yè)管理軟件產(chǎn)品化發(fā)展的要求越迫切。
2 企業(yè)需要轉(zhuǎn)變經(jīng)營理念和思路
其實不管是項目化還是產(chǎn)品化,都要堅持客戶導向,但是就客戶導向的內(nèi)涵和實現(xiàn)方式上,很多企業(yè)往往是被動地滿足客戶需求,甚至遷就客戶五花八門的需求。我們到底選擇什么樣的客戶?這是企業(yè)成長中必須作出的回答。即便已經(jīng)明確了這個問題,對客戶各種需求也不是不加區(qū)別的滿足,而是需要抓住目標客戶的核心需求和偏好,并認識到客戶只要在核心利益上得到足夠的滿足,他們愿意犧牲一些個性化的特性——這正是產(chǎn)品化的前提假設。
3 自造引擎
現(xiàn)在不論小顆粒的代碼原型、還是大顆粒的功能組件都屢見不鮮。我們要做的就是思考我們企業(yè)需要什么樣的積木成果。不過這些不難思考,蓋房子必需的是穩(wěn)定的地基,造汽車首要的是一臺性能優(yōu)越的發(fā)動機,我們需要的也是一個穩(wěn)固的基礎平臺、一臺提供軟件開發(fā)動力的引擎。由于軟件開發(fā)項目開發(fā)語言和平臺往往五花八門,這個項目用C++,換到另外一個項目組用Java,同時進行的另一個項目用.NET,這就是一些企業(yè)的真實寫照。稍微好一點的服務商,技術平臺相對穩(wěn)定,例如使用.net或Java,但所謂的重用,就是把原有的項目代碼拷貝過來,小的改動就修修改改,大的改動就干脆重寫,根本上談不上所謂的產(chǎn)品化。這些問題在我們的長期積累中已經(jīng)得到了有效的改善,如我們近期的項目要求必需采用Java語言,眾所周知Java是開源的。
說到底我們希望所有的軟件項目、軟件產(chǎn)品能看懂、可控制、易升級、便移交。這樣我們的管理軟件引擎就需要跨操作系統(tǒng)、跨數(shù)據(jù)庫、跨瀏覽器、跨應用服務器,并且開源。軟件產(chǎn)品化在實現(xiàn)方式上,要堅持平臺化的開發(fā)模式,先基于需求分析提煉和規(guī)劃產(chǎn)品平臺,然后在產(chǎn)品平臺的基礎上劃分產(chǎn)品系列,從而形成平臺產(chǎn)品或產(chǎn)品版本。制定開發(fā)規(guī)范,并形成開發(fā)案例和模板,掃清開發(fā)隊伍大規(guī)模開發(fā)時的障礙。在貫徹平臺化開發(fā)思想的過程中,應注意在差異化和通用性上取得平衡。軟件重用度的目標要優(yōu)先于差異化的目標,產(chǎn)品只要在核心需求上滿足了用戶既可。產(chǎn)品平臺化實施過程中將面臨各方面的困難。產(chǎn)品平臺化開發(fā)還會遇到來自編程高手的挑戰(zhàn)和開發(fā)人員習慣的阻力。高手們總是希望按照自己的思路規(guī)劃和開發(fā)產(chǎn)品,要讓大家都統(tǒng)一到一致的平臺架構和開發(fā)模式下絕非易事。開發(fā)人員也不喜歡條條框框,總是想按自己的日常開發(fā)習慣來做事,但平臺化則需要更多的標準化和規(guī)范要求。
產(chǎn)品化首要一點,就是要根據(jù)產(chǎn)品的特性,選擇并建立一套相對穩(wěn)定的技術方案和框架,并在后續(xù)產(chǎn)品研發(fā)和項目實施過程中不斷演進。要注意到?jīng)]有一套技術方案和框架能解決所有問題,要根據(jù)業(yè)務的不同和對技術的要求,選擇適合的技術方案和框架。在選擇技術方案和框架時,要考慮其可擴展性,能應對不同層次和不同方面的應用要求。技術方案的發(fā)展,切忌不能受技術高層管理人員的變更帶來的影響。
技術方案和框架并不是一成不變的,而是要在產(chǎn)品研發(fā)和項目實施的過程中,不斷檢驗、不斷改進、不斷提高。一套技術方案和框架往往在初期,可以適應項目的需要,但隨著產(chǎn)品的發(fā)展,提出更高的性能要求,提出更大的數(shù)據(jù)容量,提出更高的處理能力,提出更多的業(yè)務需求的時候,往往就不能滿足項目要求了。這時候需要對技術方案和框架本身要進行發(fā)展和演進。因此,技術方案和框架的演進,是和軟件產(chǎn)品化過程交織在一起的迭代式演進過程,通過產(chǎn)品和項目的實踐和反饋,不斷提升技術方案和框架的技術能力與成熟度。
引擎架構初步完成后,還需要特別關注的是所在機構對企業(yè)管理的理解和提升,最終應形成一套行之有效的、與實際管理活動匹配度較高的管理行為模型。以此管理行為模型為指導把以上組件進一步的融合、調(diào)優(yōu)、提升,最終形成一臺擁有管理靈魂的高性能引擎。最好選擇一家服務商進行長期的引擎優(yōu)化工作,并輸出開發(fā)標準和統(tǒng)一接口。從管理軟件引擎到產(chǎn)品化軟件再到具體項目實施,這個過程中涉及到技術知識的傳播、學習和掌握、以及再反饋的過程。管理軟件產(chǎn)品是由不同的服務商開發(fā)完成的,因此,如何有效的將技術、產(chǎn)品在實際項目中進行實施,是軟件產(chǎn)品化的關鍵問題。
在這一技術傳播和轉(zhuǎn)化過程中,加強溝通、協(xié)作和培訓十分重要。這一溝通,不僅僅是指已經(jīng)做好的技術推廣、管理軟件引擎的培訓工作,而是指在技術方案與框架、軟件產(chǎn)品的研制的整個生命周期內(nèi),都需要服務商全部掌握,才能形成一個良好的產(chǎn)品開發(fā)環(huán)境,建立有效率的產(chǎn)品開發(fā)機制和流程。
4 開發(fā)模型
縱觀軟件開發(fā)過程其發(fā)展歷程,不論是早期的瀑布開發(fā)過程,到后來的V模型,增量與迭代式開發(fā)過程,統(tǒng)一過程(UP),直到最新的強調(diào)敏捷思想的XP、Scrum模型驅(qū)動開發(fā)(MDD)、測試驅(qū)動開發(fā)(TDD),都是圍繞著項目級別的軟件開發(fā)過程,而關于如何進行產(chǎn)品化開發(fā),幾乎沒有涉及,缺乏具體的方法和行動指南。我們只好找一套適合軟件產(chǎn)品化的模型。常用的軟件開發(fā)模型有:瀑布模型、迭代模型、增量模型、原型模型等。
開發(fā)前的準備。服務商需要充分理解管理軟件引擎的規(guī)范、功能,并指派相關開發(fā)人員接受培訓、考試和實踐,最終獲得相關的認證。每個服務商必需擁有5個以上有認證資格的開發(fā)人員,并在管理軟件引擎上完成過一個獨立的功能開發(fā),才能獲得服務商企業(yè)授權,表示有能力完成產(chǎn)品化工作。
具體開發(fā)流程如下:
1)用戶反饋需求:直接用戶在生產(chǎn)經(jīng)營過程中產(chǎn)生某種管理需求,提交給企業(yè)信息管理部門。2)需求分解轉(zhuǎn)換:信息管理部門的業(yè)務需求分析師分析用戶需求,分解成獨立的功能模塊,通過UIDesigner等原型工具軟件形成UI原型。用UI原型和用戶溝通需求,得到用戶確認。3)向服務商發(fā)包:信息管理門部聯(lián)合采購部向有授權的服務商招標。服務商提交詳細的WBS分解、報價等招標文件,不需要再提交技術架構在內(nèi)的解決方案。采購部按制度規(guī)定確定服務商。4)服務商編碼:服務商并行開發(fā)細分的功能模塊,按WBS分解的完成進度逐步提交開發(fā)成果。最終用戶階段性測試、驗收功能模塊,驗收一個形成一個功能模塊小版本。直至完成全部功能開發(fā)。5)軟件產(chǎn)品封裝:信息管理部門合理組合功能模塊小版本,形成較為獨立的產(chǎn)品模塊。由服務商進行產(chǎn)品封裝。6)軟件產(chǎn)品推廣:信息管理部門向有需求的企業(yè)推廣經(jīng)過封裝的軟件產(chǎn)品。7)軟件產(chǎn)品升級:信息管理部門收集產(chǎn)品用戶的使用情況和進一步需求,再次形成細分功能的優(yōu)化需求,重復第二步的流程,進行產(chǎn)品的迭代和增量升級。
參考文獻:
[1]黃玉華.企業(yè)軟件項目管理淺談[J].中國科技信息,2006(03):120-123.
[2]劉劍.加強軟件項目管理提高軟件開發(fā)質(zhì)量[J].數(shù)字石油和化工,2006(03):133-136.
[3]張瑞康.軟件項目管理的質(zhì)量控制[J].廣東科技,2006(06):143-147.