影響ERP系統品質的第2個因素是業務功能的可擴充性。
稱得上ERP系統的前提之一是:軟體本身必須允許用戶的MIS人員自行擴增和修改業務功能。不允許用戶這樣做的軟體,不是ERP系統,而是30年前賣到現在的套裝軟體。套裝軟體不允許其用戶的規模成長、不允許其用戶改變其營運與產品內容,它要求其客戶向軟體商納稅至永遠。
軟體本身必須允許用戶自行擴增和修改業務功能只是基本要求,還必須允許用戶的MIS人員無縫整合其開發的新業務功能到既有的操作介面(UI)。
為因應這兩項矛盾:
* ERP系統的「業務功能齊全」必然伴隨「複雜難用」
* 「用戶永遠有ERP系統不能滿足的需求」的缺陷
,我們可以從下列選項擇一而行:
* 開發open source的ERP系統
* 開發「允許使用人從事二次開發」的closed source ERP系統
「允許使用人從事二次開發」的closed source ERP系統至少要具有下列特質:
o 用戶的MIS人員容易接手
一般而言,用戶的MIS人員不喜歡重新學習新程式語言。即使願意,也少有人願意去摸索別人的程式。如果用戶必須使用C、Java、4GL、C++、.NET、MONO、Delphi、PHP...等程式語言和開發工具去接手一套ERP系統,則可以想見這個客戶必須投資大量的金錢聘顧高級程式設計師,否則MIS人員不願意進來,而且容易離職。而程式設計師因為透過這些程式碼去摸索ERP系統十分艱苦、不敢擅改系統,所以承受的壓力也非常高,於是ERP系統的上線過程和結果一團亂。
既然成千上萬個開關的「萬能ERP系統」是笑話一則,又不宜給客戶的MIS人員C、Java、4GL、C++程式碼這類「天書ERP系統」,那麼,到底要怎樣做才能兼具高「業務功能的可擴充性」與「低承接複雜度」?
可行的設計策略是:儘量彈性到讓用戶的MIS人員可以透過設定資料字典的方式達成其需求。
o 給用戶寬廣的擴充空間
最理想情況是:用戶的MIS人員可以為所欲為,任意修改或擴增系統功能。但是,這種期望不可能成真,除非客戶用的是open source軟體。
o 用戶的二次開發成果完全整合進既有UI:
+ 選單
+ 畫面(供user輸入、查詢資料)
+ 報表
+ 資料匯入、匯出
+ 附掛檔案在指定的data record裡
+ 線上說明
如果用戶的MIS人員所設計出的新功能獨立在您所設計的ERP系統之外,那麼,他們的新增功能就不能說是「無縫整合」,而是「外掛」。市面上既有的ERP軟體要求其用戶另外購買報表軟體,就是典型的「外掛」。終端用戶使用外掛功能,其手續煩雜,電腦開好幾個窗;對用戶的MIS人員而言,分發新功能、管理軟體和報表版本的工作也複雜。非「無縫整合」的「外掛」型ERP軟體不是高品質的系統,對用戶有不良的影響。不要再設計這種ERP軟體。
* 堅守「定型ERP系統」的堡壘
不允許用戶自己修改的軟體,不是不能賣,反而在台灣市場非常成功。但是就我所知,這種軟體只能在下列情況下運作:
o 你的公司招牌夠大,剛好遇到的客戶是:不看軟體品質,只會丈量軟體商的招牌尺寸。
o 一套售價6000元台幣的「進銷存」軟體。不允許客戶的企業規模成長,不允許客戶的營業內容出現大變化。
o 客戶的荷包滿滿,而且相信你永遠有足夠的人力與熱忱,願意隨時幫他們修改你賣給他們的軟體。
擴增彈性越高、無縫整合MIS人員開發的新功能的ERP系統,其品質越高。ERP系統設計者應朝此目標前進。