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