企業(yè)業(yè)務軟件工程項目和商業(yè)軟件產品項目上項目無論是需求重點,實現方式,項目管理等方面都有極大不同?,F在的軟件工程有關研究并沒有關注此中的區(qū)別,實際上,其中絕大部分還集中在較簡單的產品項目上。對于需求變動要大得多的企業(yè)軟件項目來說,對需求進行分級管理是非常必要的,也是生死悠關的。
企業(yè)化軟件項目和商業(yè)軟件的(承包開發(fā))還是有很大的不一樣的,最大的區(qū)別就在于項目需求的重點不一樣,以致于這兩種同樣稱為軟件工程,就其項目過程管理是幾乎完全不一樣的。商業(yè)軟件的開發(fā)最大的特點是就是基本功能非常明確,只在細節(jié)上有多種選擇,所以商業(yè)軟件開發(fā)的項目管理重在源代碼管理和算法的優(yōu)化,以及測試嚴格,就測試要求的強度上單純軟件代碼的質量來說,要強于企業(yè)信息化的軟件工程項目。
企業(yè)信息工程項目一般來源于企業(yè)某一特定的業(yè)務軟件需求,象要上一個倉庫管理系統,從進貨到定期定標出倉平衡責任追蹤等;或者是一個生產流程配料系統,象MRP2;或者是一個購銷一體計劃系統,象ERP(資源管理),等等。這種軟件有時侯會象國產的那些變相的會計軟件式的ERP一樣當成商業(yè)軟件開發(fā),顯然,這時侯與上述的成形商業(yè)軟件沒有太大的區(qū)別,但在企業(yè)實際上千差萬別的應用需求上,幾乎就是一堆電子垃圾。企業(yè)業(yè)務軟件是一種必須適應同時能夠優(yōu)化企業(yè)流程的計算機輔助運營系統,真正起作用的,通常只能是一對一實現定制;這種需求是如此廣泛,以致于大型企業(yè)如果不是聘有一兩家軟件咨詢顧問公司就是自建一個計算機部門專門負責這一方面的工作;最典型的例子就是沃爾瑪特。
正由于企業(yè)用的軟件都存在著強烈的需求一對一定制的要求,所以這種項目其一是不便宜;如果一個企業(yè)客戶以購買商業(yè)成形軟件的理解水平來購買一個項目洽談的話,在他理解什么叫企業(yè)項目前,最好不要打算做他的生意。一個企業(yè)項目動輒數百萬上千萬是不奇怪的,上億也尋常,而一套商業(yè)軟件,無論名稱多么好聽,什么第幾代ERP,都只不過是一萬幾千大洋就可以打發(fā)的;實在不愿意給錢又不怕給罰盜版的話,還可以花五個銅板上街買一套盜版光盤現裝現用。
為了應付企業(yè)業(yè)務軟件項目的強烈的定制需求,供應商都提供了廣泛的基礎組件和嵌套工具,以便可以由二三級的程度員可以在現場為用戶一對一的進行定制試用更改再定制等項目實現。典型如SAP,有朋友問我拿SAP的盜版玩玩,保證不外流。我費了很大的工夫才讓他明白,SAP有的只是基礎組件庫,還很豐富,涉及到27個項目常用業(yè)務場合的組件庫,包括與之配合的數據庫預制定義(表定義),但絕不是象國內那些ERP那樣裝起來可以玩的東東。一個SAP項目要求用戶按自已需求定購這些組件庫,以及必須的支持軟硬件,數據庫操作系統什么的,最經常的就是ORACLE和SOLARIS了;然后SAP項目組要到企業(yè)里蹲點,聽各個部門講流程故事;然后是寫需求文檔,建原型,讓企業(yè)的項目組試用部門流程,基干流程確定合乎需求了,下一步的工作就是簡單了,找?guī)讉€三流的程序員用ABAP4這種比javascript還簡單的腳本語言把各個組件的功能連成一個統一的流程。這個工作就完成了一大半了?!蓜e小看這些三流程序員,在軟件蠻荒年代他們憑這一招可以拿到每個月兩萬人民幣的工資呢!其實呢,那是一個高中生就可以完成的工作。
由此可見,企業(yè)軟件項目的關鍵在于需求管理和流程建模,相反,算法和基本功能以及BUG什么的,那是作為商業(yè)軟件開發(fā)的組件保證的,那一般以外包的形式由印度這些公司早早做了出來。企業(yè)軟件需求最大的困難就是用戶根本不知道自已要干什么,最常犯的錯誤就是把現有的落后流程要求電腦重復一遍,拿了機關