對于管理軟件提供商來說,管理軟件應(yīng)該向企業(yè)實(shí)際情況靠攏還是向通用化方向靠攏?這是每一個(gè)管理軟件在具體到一個(gè)企業(yè)時(shí)都會(huì)遇到的問題。這個(gè)問題和二次開發(fā)緊密相關(guān)。 二次開發(fā)的由來 我們通常把改動(dòng)程序的工作稱為二次開發(fā)。 目前,軟件提供商開發(fā)的ERP軟件產(chǎn)品,有很多都屬于通用軟件產(chǎn)品,是針對一個(gè)或多個(gè)行業(yè)、多個(gè)用戶而設(shè)計(jì)開發(fā)的軟件系統(tǒng)。軟件功能比較標(biāo)準(zhǔn),流程設(shè)置相對規(guī)范化。事實(shí)上,在ERP產(chǎn)品開發(fā)的時(shí)候,通用性是首要考慮的問題之一。這些通用型軟件通過參數(shù)可調(diào)的形式可以部分滿足不同用戶的需求,但很多情況下這種“輕度”靈活會(huì)失效。 比如ERP軟件原來提供的報(bào)表功能很通用,但是卻可能碰到需要特殊格式報(bào)表的企業(yè),而這無法通過調(diào)節(jié)參數(shù)來完成;或者報(bào)表功能本來是適應(yīng)企業(yè)要求的,但是隨著企業(yè)的發(fā)展、變革、改組,導(dǎo)致報(bào)表樣式、內(nèi)容要改變,這些情況就必須通過二次開發(fā)來實(shí)了。事實(shí)上,即使最成熟的ERP軟件產(chǎn)品也不可能做到面面俱到,因此有二次開發(fā)的必要。 再者,企業(yè)所處的環(huán)境是不斷變化的,企業(yè)的產(chǎn)品種類、產(chǎn)品所處生命周期的階段、企業(yè)的計(jì)劃模式、分銷模式都不斷在變化,企業(yè)不斷地進(jìn)行業(yè)務(wù)流程的再造,企業(yè)規(guī)模不斷縮小或擴(kuò)展等等。 總之,企業(yè)自身的變化客觀上要求ERP具備適應(yīng)各種變化的能力,這種能力就體現(xiàn)在二次開發(fā)的實(shí)施上。 而從二次開發(fā)應(yīng)用程度的角度看,企業(yè)信息化建設(shè)的方式有三種: 使用成熟的ERP軟件再加上少量的二次開發(fā); 從國內(nèi)ERP發(fā)展趨勢來看,采用第一種方式的企業(yè)很多,也最容易成功。 可以這么說,ERP系統(tǒng)的二次開發(fā)是ERP軟件由軟件廠商提供的一種產(chǎn)品轉(zhuǎn)變?yōu)槠髽I(yè)內(nèi)部的管理信息系統(tǒng)的橋梁和紐帶。 二次開發(fā)的原則 首先要說的是,二次開發(fā)的時(shí)候,不要過多的強(qiáng)調(diào)企業(yè)自身的特點(diǎn),ERP軟件中的管理流程是從許多企業(yè)中提煉出來的,具有先進(jìn)性。許多企業(yè)的"特殊之處"都是由于流程自身的不合理產(chǎn)生的,應(yīng)該通過ERP的實(shí)施,對企業(yè)進(jìn)行業(yè)務(wù)流程優(yōu)化或重組,而不是一味修改軟件以適應(yīng)不合理的流程。 其次,在二次開發(fā)中,應(yīng)該把“不要修改核心代碼”作為基本原則。一般來說,應(yīng)該把數(shù)據(jù)從ERP中導(dǎo)出,利用二次開發(fā)的程序進(jìn)行處理后,再導(dǎo)入系統(tǒng)。這樣可以以最小的變動(dòng)獲得最大的收獲。但如果直接修改了核心代碼,往后再升級(jí)就很困難。 再次,二次開發(fā)中,修改不宜過多。ERP軟件是一個(gè)很復(fù)雜的大型軟件,從軟件工程的角度來說,開發(fā)者應(yīng)該保持對項(xiàng)目的可追溯性。如果修改過多的話,這種可跟蹤的追溯性將變得模糊不清,最終導(dǎo)致項(xiàng)目不可控。 第四,二次開發(fā)的時(shí)間性應(yīng)該控制好,盡量不要在并行運(yùn)行前就進(jìn)行二次開發(fā),因?yàn)檫@個(gè)時(shí)期對ERP系統(tǒng)的功能還沒有充分了解。 最后,二次開發(fā)的另一個(gè)基本原則是要對實(shí)施起到積極的推進(jìn)作用。有時(shí)一個(gè)報(bào)表、一個(gè)字段用途的改變可能直接影響到該部分功能是否能用起來,在這種情況下,仍需做二次開發(fā),目的也是為了方便操作,減少業(yè)務(wù)人員的工作量,甚至是起到理順管理環(huán)節(jié)的效果。 盡量對二次開發(fā)說“不” 一般來說,二次開發(fā)應(yīng)該盡量減少或避免。這是因?yàn)閺氖露伍_發(fā)的人員必須熟悉軟件的功能和相應(yīng)數(shù)據(jù)庫中表的結(jié)構(gòu),又要充分理解用戶的特殊業(yè)務(wù)流程,這需要一定的時(shí)間和工作的,甚至可能會(huì)使項(xiàng)目延期;再者,改動(dòng)軟件后還可能出現(xiàn)系統(tǒng)的不穩(wěn)定性,影響版本升級(jí)。 如果必須進(jìn)行二次開發(fā),則應(yīng)盡量使得二次開發(fā)做出的功能模塊獨(dú)立于原來的ERP系統(tǒng)。這樣,當(dāng)ERP系統(tǒng)版本更新時(shí),二次開發(fā)出來的模塊無需修改或者只需較少的修改就可以應(yīng)用于高版本的ERP系統(tǒng)。 關(guān)于如何減少二次開發(fā),用友軟件公司提出了標(biāo)準(zhǔn)化的思路。用友認(rèn)為,標(biāo)準(zhǔn)化是產(chǎn)品的特性,軟件的標(biāo)準(zhǔn)化是建立在精確的數(shù)學(xué)模型基礎(chǔ)之上,將所有企業(yè)的共用部分用標(biāo)準(zhǔn)件進(jìn)行固化。用友在提倡標(biāo)準(zhǔn)化的同時(shí),將二次開發(fā)當(dāng)作實(shí)施與售后服務(wù)的重點(diǎn)。在軟件標(biāo)準(zhǔn)化的基礎(chǔ)上,二次開發(fā)會(huì)大大減少。筆者認(rèn)為,這種做法是值得提倡的。
使用不太成熟的ERP系統(tǒng)再加上比重較大的二次開發(fā);
純粹按照企業(yè)需求定制開發(fā)。
一個(gè)不爭的事實(shí)是,幾乎每個(gè)ERP廠商的老總都有這樣的感慨:明明是經(jīng)過幾個(gè)月的初期討論和項(xiàng)目分析,在用戶的認(rèn)可下做好了的ERP系統(tǒng),結(jié)果由于企業(yè)要求的“二次開發(fā)”,系統(tǒng)變得越來越復(fù)雜,與最初期望的效果越來越遠(yuǎn),最后猛然一看,系統(tǒng)已經(jīng)完全“變味”了。因此,把握二次開發(fā)的原則很重要。