有一段時(shí)間,我受雇于一家企業(yè),幫他們實(shí)施一個(gè)開(kāi)源的ERP項(xiàng)目。經(jīng)歷了半年多的折騰,以前我對(duì)于開(kāi)源軟件的一點(diǎn)熱情都被徹底消滅了,讓我看清了開(kāi)源ERP軟件的面目。我想,我以后再也不會(huì)用開(kāi)源的ERP軟件了。我采用的是號(hào)稱(chēng)最大的開(kāi)源ERP軟件-Compiere。 一、開(kāi)源ERP的軟件BUG,讓我“頭疼不已”。 像ERP這么復(fù)雜的管理軟件,有幾個(gè)BUG也是難免的事情。但是,若一個(gè)軟件到處是BUG,到處是陷阱,那可真的讓人受不了。開(kāi)源的ERP軟件,漏洞之多,實(shí)在出乎我所料。 如在產(chǎn)品基本資料處,有個(gè)屬性的字段,但是,奇怪的是,這個(gè)屬性竟然不能夠帶到采購(gòu)單、領(lǐng)料單等相關(guān)單據(jù),讓人想不通,后來(lái)讓專(zhuān)門(mén)的服務(wù)商進(jìn)行測(cè)試,說(shuō)是軟件的BUG,但是因?yàn)檫@是開(kāi)源的軟件,所以,這個(gè)費(fèi)用還是要企業(yè)自己來(lái)承擔(dān)。 如某個(gè)材料有多個(gè)供應(yīng)商,而不同的供應(yīng)商價(jià)格又有所不同。如某個(gè)原材料A,其有兩個(gè)供應(yīng)商甲與乙,價(jià)格分別為6.6元與6.7元,企業(yè)設(shè)定的標(biāo)準(zhǔn)價(jià)格與列表價(jià)格為6.5元(采購(gòu)參考價(jià)格),但是,在實(shí)際生成采購(gòu)單時(shí),無(wú)論是向甲供應(yīng)商還是向乙供應(yīng)商采購(gòu),帶出來(lái)的價(jià)格竟然都是6.5。這是在讓我想不通,軟件設(shè)計(jì)者為何如此設(shè)計(jì),我想,這應(yīng)該是一個(gè)軟件的BUG。沒(méi)辦法,我只好來(lái)做一回產(chǎn)品設(shè)計(jì)工程師,把這個(gè)BUG解決了。 這些漏洞真是數(shù)不甚數(shù)。在軟件的測(cè)試階段,時(shí)常讓我頭疼不已。每測(cè)試一個(gè)流程,都是提心吊膽的,擔(dān)心,不知道哪里又有陷阱。 二、功能不足讓我“廢寢忘食”。 我從來(lái)沒(méi)有見(jiàn)過(guò)Compiere功能如此不全的ERP軟件。雖然其實(shí)開(kāi)源的,但是,功能如此不全,也讓人意料不及。 如我采購(gòu)價(jià)格想保留更改歷史,但是無(wú)論如何配置,都無(wú)法實(shí)現(xiàn)。有些單據(jù)時(shí)可以保留歷史變更記錄的,如產(chǎn)品基本信息,但是,材料價(jià)格卻不行。后來(lái)發(fā)現(xiàn),只要單據(jù)中有兩個(gè)關(guān)鍵字的頁(yè)簽,都無(wú)法保留歷史更改記錄。而原材料采購(gòu)價(jià)格處,有兩個(gè)關(guān)鍵字,一是關(guān)聯(lián)原材料基本信息,二是關(guān)聯(lián)供應(yīng)商信息,所以,就無(wú)法保存歷史變更記錄。 如沒(méi)有專(zhuān)門(mén)的單據(jù)變更單。如我因?yàn)槟承┰颍少?gòu)單需要變更采購(gòu)數(shù)量或者采購(gòu)交期,但是沒(méi)有采購(gòu)變更,需要把原有的采購(gòu)單作廢掉或者重新撤銷(xiāo)審核(系統(tǒng)還沒(méi)有直接撤銷(xiāo)的功能,要在后臺(tái)數(shù)據(jù)庫(kù)中更改),我真是要叫上帝保佑了。企業(yè)需要怎么辦呢?只好自己動(dòng)手,先探尋各個(gè)單據(jù)之間的關(guān)系及數(shù)據(jù)庫(kù)的結(jié)構(gòu),然后再開(kāi)發(fā)出一個(gè)采購(gòu)變更單頁(yè)簽,實(shí)現(xiàn)采購(gòu)單變更功能。生產(chǎn)變更單、銷(xiāo)售變更單等也都沒(méi)有,我也只好熬幾個(gè)通宵,把這些單據(jù)開(kāi)發(fā)出來(lái)。 再如,倉(cāng)庫(kù)成品入庫(kù)時(shí),竟然不能分批入庫(kù),這真讓人哭笑不得。如一張生產(chǎn)訂單我有10000個(gè)產(chǎn)品,能夠保證一次性入庫(kù)嗎?難道要生產(chǎn)部門(mén)把生產(chǎn)完成的產(chǎn)品暫時(shí)放在車(chē)間,等生產(chǎn)全部完工后,再一次性入庫(kù)嗎?這用戶(hù)可不會(huì)答應(yīng)。如何辦呢?進(jìn)行二次開(kāi)發(fā)了,還能怎么辦呢。先要把原先的入庫(kù)單功能屏蔽掉,然后再新建一個(gè)入庫(kù)的單據(jù),設(shè)計(jì)能夠從生產(chǎn)訂單自動(dòng)生成入庫(kù)單,并且,在入庫(kù)時(shí)對(duì)領(lǐng)料數(shù)量、入庫(kù)數(shù)量進(jìn)行檢驗(yàn),判斷有沒(méi)有超領(lǐng)、多入庫(kù)的情況,同時(shí),入庫(kù)的數(shù)量還要更新生產(chǎn)訂單的完工數(shù)量。小小的一個(gè)入庫(kù)單,就要我加入如此多的功能,這是煩心。 一個(gè)項(xiàng)目下來(lái),開(kāi)源軟件在功能開(kāi)發(fā)前后可是大變樣,大概增加了50%左右的功能!皬U寢忘食”用來(lái)形容我當(dāng)時(shí)的努力,可是一點(diǎn)都不過(guò)份。 三、缺乏服務(wù)技術(shù)支持,讓我“求救無(wú)門(mén)”。 開(kāi)源軟件雖然是開(kāi)源的,免費(fèi)提供源代碼,但是,相關(guān)的技術(shù)文檔確實(shí)少的可憐,中文參考資料更是鳳毛麟角。我有點(diǎn)懷疑,他們開(kāi)發(fā)這么復(fù)雜的開(kāi)源ERP系統(tǒng)是怎么實(shí)現(xiàn)的,難道沒(méi)有系統(tǒng)設(shè)計(jì)文檔嗎,還是他們故意不拿出來(lái),想憑此賺錢(qián)? 我公司在實(shí)施這個(gè)開(kāi)源的ERP項(xiàng)目時(shí),花了萬(wàn)把塊錢(qián)買(mǎi)了一個(gè)軟件的實(shí)施文檔,其他資料,如開(kāi)發(fā)指南等沒(méi)有購(gòu)買(mǎi)。所以,什么資料都要我自己去網(wǎng)上查詢(xún),但是,資料實(shí)在是少的可憐。沒(méi)有辦法,只好自己研究源代碼,研究數(shù)據(jù)庫(kù)結(jié)構(gòu)。 雖然市場(chǎng)上已經(jīng)有不少的公司在打開(kāi)源Compiere軟件的主意,他們付費(fèi)提供Compiere的實(shí)施開(kāi)發(fā)服務(wù)。但是,我找了幾家公司,效果實(shí)在不滿(mǎn)意。一方面,他們顧問(wèn)能力不強(qiáng),我們提出一個(gè)需求,他們反而讓我提供解決方案,這真讓人哭笑不得呀。一般情況下,我們提出一個(gè)需求,對(duì)方實(shí)施顧問(wèn)給我解決方案,然后我們判斷是否可行。現(xiàn)在倒反過(guò)來(lái)了,能不讓我感到奇怪嗎?而且,收費(fèi)又比較貴,讓他們提供服務(wù)與技術(shù)支持的話(huà),就失去了開(kāi)源的好處了。 怎么辦呢?我只要自力更生,閉門(mén)造車(chē),研究了一個(gè)月,總給我弄出來(lái)一點(diǎn)門(mén)堂。還好我在之前有比較豐富的ERP實(shí)施經(jīng)驗(yàn),對(duì)于ERP實(shí)施中可能出現(xiàn)的一些問(wèn)題有所了解,在事先做了比較充分的準(zhǔn)備工作,不然,在如此情況下,實(shí)施ERP項(xiàng)目,沒(méi)有外部的支持,肯定是要出亂子的。 如我在事先,對(duì)于員工的需求做了具體的調(diào)研,做的非常的詳細(xì)、具體,在后續(xù)的實(shí)施過(guò)程中,盡量減少了需求的變更。如此,是為了減少以后二次開(kāi)發(fā)的數(shù)量。雖然如此做,時(shí)間浪費(fèi)了一點(diǎn),但是,后來(lái)回頭來(lái)看看,花點(diǎn)時(shí)間在需求調(diào)研上,對(duì)以后項(xiàng)目的順利開(kāi)展還是很有幫助的。 四、實(shí)施、開(kāi)發(fā),集與一身,讓我“心力交瘁”。 一開(kāi)始,公司雇傭我時(shí),說(shuō)讓我做ERP實(shí)施顧問(wèn),負(fù)責(zé)企業(yè)的ERP實(shí)施。但是,沒(méi)有想到,在后來(lái)實(shí)施的過(guò)程中,開(kāi)發(fā)占了我大部分的時(shí)間。這讓我這個(gè)不是技術(shù)出身、沒(méi)怎么接觸過(guò)軟件開(kāi)發(fā)的ERP實(shí)施顧問(wèn),英雄無(wú)用武之地。 上面我說(shuō)過(guò),無(wú)論是開(kāi)源ERP軟件本身的BUG,還是因?yàn)槠涔δ艿膰?yán)重缺乏,都需要我們進(jìn)行大量的二次開(kāi)發(fā)。而因?yàn)槿狈ν獠康姆⻊?wù)與技術(shù)支持,還出于項(xiàng)目實(shí)施成本的考慮,所以,我這個(gè)實(shí)施顧問(wèn),不得已,只得兼任程序開(kāi)發(fā)員,負(fù)責(zé)ERP軟件的二次開(kāi)發(fā)。 在這個(gè)開(kāi)發(fā)的過(guò)程中,資料缺乏、沒(méi)有外部支持、沒(méi)有開(kāi)發(fā)經(jīng)驗(yàn),一切從零開(kāi)始。如此熬了幾個(gè)月后,終于有所成就。但是,這個(gè)過(guò)程,讓我心力交瘁。 一般的開(kāi)源ERP軟件,肯定需要進(jìn)行很多的二次開(kāi)發(fā),而企業(yè)本身決定使用開(kāi)源的ERP項(xiàng)目,本來(lái)就是出于節(jié)省項(xiàng)目成本的考慮,所以,他們不可能把二次開(kāi)發(fā)外包給專(zhuān)門(mén)的軟件公司,不然項(xiàng)目成本比那些商業(yè)的ERP軟件來(lái)說(shuō),不會(huì)便宜多少;同時(shí),企業(yè)本來(lái)就不是專(zhuān)門(mén)的IT公司,所以,也不會(huì)專(zhuān)門(mén)雇傭程序開(kāi)發(fā)人員,來(lái)協(xié)助你。所以,一切都只有靠我自己來(lái)完成。 經(jīng)過(guò)半年的努力,雖然開(kāi)源的ERP系統(tǒng)基本上線(xiàn)了,但是,其使用效果根我以前實(shí)施的商業(yè)軟件還是有一定差距的。有了這段經(jīng)歷后,我對(duì)開(kāi)源的ERP軟件有了新的認(rèn)識(shí)。以后若讓我選擇商業(yè)軟件還是使用開(kāi)源ERP軟件,我想,我絕對(duì)會(huì)選擇商業(yè)軟件。對(duì)開(kāi)源的ERP軟件項(xiàng)目,我會(huì)退避三舍。