企業(yè)業(yè)務(wù)軟件工程項(xiàng)目和商業(yè)軟件產(chǎn)品項(xiàng)目上項(xiàng)目無論是需求重點(diǎn),實(shí)現(xiàn)方式,項(xiàng)目管理等方面都有極大不同。現(xiàn)在的軟件工程有關(guān)研究并沒有關(guān)注此中的區(qū)別,實(shí)際上,其中絕大部分還集中在較簡單的產(chǎn)品項(xiàng)目上。對(duì)于需求變動(dòng)要大得多的企業(yè)軟件項(xiàng)目來說,對(duì)需求進(jìn)行分級(jí)管理是非常必要的,也是生死悠關(guān)的。
企業(yè)化軟件項(xiàng)目和商業(yè)軟件的(承包開發(fā))還是有很大的不一樣的,最大的區(qū)別就在于項(xiàng)目需求的重點(diǎn)不一樣,以致于這兩種同樣稱為軟件工程,就其項(xiàng)目過程管理是幾乎完全不一樣的。商業(yè)軟件的開發(fā)最大的特點(diǎn)是就是基本功能非常明確,只在細(xì)節(jié)上有多種選擇,所以商業(yè)軟件開發(fā)的項(xiàng)目管理重在源代碼管理和算法的優(yōu)化,以及測試嚴(yán)格,就測試要求的強(qiáng)度上單純軟件代碼的質(zhì)量來說,要強(qiáng)于企業(yè)信息化的軟件工程項(xiàng)目。
企業(yè)信息工程項(xiàng)目一般來源于企業(yè)某一特定的業(yè)務(wù)軟件需求,象要上一個(gè)倉庫管理系統(tǒng),從進(jìn)貨到定期定標(biāo)出倉平衡責(zé)任追蹤等;或者是一個(gè)生產(chǎn)流程配料系統(tǒng),象MRP2;或者是一個(gè)購銷一體計(jì)劃系統(tǒng),象ERP(資源管理),等等。這種軟件有時(shí)侯會(huì)象國產(chǎn)的那些變相的會(huì)計(jì)軟件式的ERP一樣當(dāng)成商業(yè)軟件開發(fā),顯然,這時(shí)侯與上述的成形商業(yè)軟件沒有太大的區(qū)別,但在企業(yè)實(shí)際上千差萬別的應(yīng)用需求上,幾乎就是一堆電子垃圾。企業(yè)業(yè)務(wù)軟件是一種必須適應(yīng)同時(shí)能夠優(yōu)化企業(yè)流程的計(jì)算機(jī)輔助運(yùn)營系統(tǒng),真正起作用的,通常只能是一對(duì)一實(shí)現(xiàn)定制;這種需求是如此廣泛,以致于大型企業(yè)如果不是聘有一兩家軟件咨詢顧問公司就是自建一個(gè)計(jì)算機(jī)部門專門負(fù)責(zé)這一方面的工作;最典型的例子就是沃爾瑪特。
正由于企業(yè)用的軟件都存在著強(qiáng)烈的需求一對(duì)一定制的要求,所以這種項(xiàng)目其一是不便宜;如果一個(gè)企業(yè)客戶以購買商業(yè)成形軟件的理解水平來購買一個(gè)"項(xiàng)目"洽談的話,在他理解什么叫企業(yè)項(xiàng)目前,最好不要打算做他的生意。一個(gè)企業(yè)項(xiàng)目動(dòng)輒數(shù)百萬上千萬是不奇怪的,上億也尋常,而一套商業(yè)軟件,無論名稱多么好聽,什么第幾代ERP,都只不過是一萬幾千大洋就可以打發(fā)的;實(shí)在不愿意給錢又不怕給罰盜版的話,還可以花五個(gè)銅板上街買一套盜版光盤現(xiàn)裝現(xiàn)用。
為了應(yīng)付企業(yè)業(yè)務(wù)軟件項(xiàng)目的強(qiáng)烈的定制需求,供應(yīng)商都提供了廣泛的基礎(chǔ)組件和嵌套工具,以便可以由二三級(jí)的程度員可以在現(xiàn)場為用戶一對(duì)一的進(jìn)行定制試用更改再定制等項(xiàng)目實(shí)現(xiàn)。典型如SAP,有朋友問我拿SAP的盜版玩玩,保證不外流。我費(fèi)了很大的工夫才讓他明白,SAP有的只是基礎(chǔ)組件庫,還很豐富,涉及到27個(gè)項(xiàng)目常用業(yè)務(wù)場合的組件庫,包括與之配合的數(shù)據(jù)庫預(yù)制定義(表定義),但絕不是象國內(nèi)那些ERP那樣裝起來可以玩的東東。一個(gè)SAP項(xiàng)目要求用戶按自已需求定購這些組件庫,以及必須的支持軟硬件,數(shù)據(jù)庫操作系統(tǒng)什么的,最經(jīng)常的就是ORACLE和SOLARIS了;然后SAP項(xiàng)目組要到企業(yè)里蹲點(diǎn),聽各個(gè)部門講流程故事;然后是寫需求文檔,建原型,讓企業(yè)的項(xiàng)目組試用部門流程,基干流程確定合乎需求了,下一步的工作就是簡單了,找?guī)讉€(gè)三流的程序員用ABAP/4這種比javascript還簡單的腳本語言把各個(gè)組件的功能連成一個(gè)統(tǒng)一的流程。這個(gè)工作就完成了一大半了。——可別小看這些三流程序員,在軟件蠻荒年代他們憑這一招可以拿到每個(gè)月兩萬人民幣的工資呢!其實(shí)呢,那是一個(gè)高中生就可以完成的工作。
由此可見,企業(yè)軟件項(xiàng)目的關(guān)鍵在于需求管理和流程建模,相反,算法和基本功能以及BUG什么的,那是作為商業(yè)軟件開發(fā)的組件保證的,那一般以外包的形式由印度這些公司早早做了出來。企業(yè)軟件需求最大的困難就是用戶根本不知道自已要干什么,最常犯的錯(cuò)誤就是把現(xiàn)有的落后流程要求電腦重復(fù)一遍,拿了機(jī)關(guān)槍,總是要求上面沒有裝刺刀,還抱怨不比紅纓槍好用。另一個(gè)常見的錯(cuò)誤就是隨著企業(yè)項(xiàng)目主管,(職業(yè)最低成是電腦科主任,高點(diǎn)就是一二把手了)知識(shí)開始豐富后,總是把有用沒有用,暫時(shí)有用或永遠(yuǎn)沒有用的需求要項(xiàng)目組一一實(shí)現(xiàn),反正,每條要求都是振振有詞,仿佛都是非立刻實(shí)現(xiàn)不可的。作為承包方的人員是沒有辦法與之爭業(yè)務(wù)上有沒有用的,(誰是這一行業(yè)的專家?。咳思乙呀?jīng)是霸主了才上軟件,你算那們子專家?。浚?,但如果真的一一跟著他的點(diǎn)子走,就算累死了,這個(gè)項(xiàng)目也是永遠(yuǎn)沒有法子完成的。而在商業(yè)需求明確的商業(yè)軟件開發(fā)中就不會(huì)碰上這種事情。
這時(shí)侯需要對(duì)客戶的需求進(jìn)行分級(jí)管理,簡單地說,把需求分成五級(jí):urgent(必須立刻優(yōu)先實(shí)現(xiàn)),necessary(必須實(shí)現(xiàn),但不一定馬上進(jìn)行),needed(需要的,不過沒有也還湊合),better(現(xiàn)在似乎也可以,但可以更好一點(diǎn)),useful(總會(huì)有用的)。一個(gè)需求等級(jí)的確認(rèn)需要兩個(gè)過程,首先是從正面論證它是不是必須的,是不是好得多;然后從反而論證,不要他是不是可以回避的,天會(huì)不會(huì)塌下來?這樣,一個(gè)軟件需求就可以相當(dāng)定一個(gè)級(jí)別。毫無疑問,如果一個(gè)項(xiàng)目各項(xiàng)需求驗(yàn)證下來只是useful的,不但賺不了多少錢,而且,這個(gè)項(xiàng)目未必有必要存在;但如果都是urgent的話,如果不是大幅度加價(jià)的話,就叫神仙來做好了。顯然,無論客戶是如何那般的行業(yè)專家,他的需求只能是平均地分配在這五個(gè)級(jí)別,否則就說明他不是專家,(呵呵,也算是個(gè)邏輯陷阱),在實(shí)現(xiàn)時(shí),當(dāng)然就挑urgent&necessary來實(shí)現(xiàn),其余的,升級(jí)再說了。
這樣一個(gè)項(xiàng)目就有可能最終完成了。
【?發(fā)表評(píng)論?0條?】