產品

架構師這樣設計頂級ERP

發文:2019-12-31 編輯:2020-08-20

頂級企業也這樣選擇頂級ERP。

【ERP】這個名辭

以前,大家都說【電子資料處理,EDP】。專科學校在早期有開設【電子資料處理科】。

後來,可能【EDP】這個名辭太低階,於是有大學把【電子資料處理科】升級成為【資訊管理系】,這樣才能反應大學傳授的知識之高、大、上。

幾年後,可能有人認為【EDP】一辭缺乏管理精神,於是又出現【ERP】這個融合電子資料處理技術管理於一體的新名辭。

2019年初或更早,開始流行一個涵蓋範圍比【ERP】寬廣的新名辭 – 【數位轉型,digital transformation】。

新名辭層出不窮,多是舊瓶新裝、概念和名辭炒作。其實【商業資訊應用軟體系統,business information application software system】這個老舊名辭最樸實無華。但是它太長,今年少有人聽得懂,而且有點土。為方便溝通,於是入境隨俗,本文一致使用這一代人都聽過、簡短、尚未被時代淘汰的【ERP】這個名辭。

其實【ERP】這個名辭仍有爭議:

  1. 個性保守的張三認為:【ERP】僅限於軟體範圍。
  2. 李四堅持:有一款【ERP】,它不只是軟體而已,軟體商更加持高深、奧妙的世界一流管理理念在其軟體裡面,融合管理與數位科技二者。說它是「軟體」等於在貶抑管理科學的價值,說那些軟體只是昂貴DVD的人是在毀謗軟體商的清譽。
  3. 王五主張:【ERP】只是軟體,而軟體只是工具而已,其單獨重要性不高。一旦剝離管理,則【ERP】猶如殭屍,只剩下沒有精神的軀殼。最重要的是人。也就是說,用戶企業唯有禮聘管理大師做其顧問,佐以富含管理心法的上線輔導,【ERP】的作用才能有效顯現。否則,【ERP】專案把軟體推上線都有困難,何況期待發揮它對企業的管理效益!

因為本文聚焦於技術,所以【ERP】一辭在這裡專指商業資訊應用軟體系統,也就是第1.項的範圍之內,不論及管理。

ERP軟體品質決定ERP專案的成敗

理由:

  1. ERP軟體的核心品質無法於推動ERP專案過程中大幅度改良。
  2. ERP專案輔導顧問,可以隨時增加人數,也可以隨時用學歷更高、經驗更豐富的專家取代顧問團成員。
  3. ERP專案推動過程所採用的管理策略、品質保證和監督機制、溝通技巧和頻率、對使用人的訓練時數和品質,都可以隨時加碼、調整、改良,甚至重複實施。

大量案例證明:一旦ERP軟體的核心品質不良,則第2.和第3.項調整措施完全無效。那些採用劣質ERP軟體的ERP專案只有三種結果:

  1. 直接以失敗告終,軟體廢棄不用。
  2. 勉強使用會計和銷售等1~2個模組,但是對外仍宣稱「成功上線」。
  3. 企業用戶持續加碼人員和硬體,做困獸之鬥。

ERP品質最終將在其企業客戶的損益表和資產負債表上面呈現。ERP品質深遠影響其用戶的營運成本、成長動力、企業形象、研發與客服以及公關等各部門人員的士氣。

所以,ERP架構師必須兼顧下列角色的利益以設計【頂級ERP】:

ERP必備核心功能

再陽春的ERP也必須提供下列全部基本功能。

頂級ERP的特質

頂級ERP必須簡潔。它兼具下列特質:

  1. 萬用
  2. ERP平臺
  3. 高彈性
  4. 簡單、輕巧、低系統開發門檻
  5. 資料庫驅動
  6. 使用PostgreSQL
  7. 三層運算架構
  8. 高速後端軟體
  9. 客戶軟體輕巧
  10. 使用人容易操作
  11. 國際化
  12. 提供報表
  13. 高雅的會計模組
  14. 附掛檔案機制
  15. 提供簡單、高效率的API
  16. 具安全保護機制
  17. 預留SaaS和PaaS發展空間

1. 萬用

universal purpose ERP

設計出萬用ERP是架構師使命必達的任務,別無選擇

萬用ERP同時具備下列特質:

  1. 適合各種行業的企業使用,包括政府、學校、非營利事業…等。也就是具有「多產業」能力。
  2. 適合各種規模的企業使用,從一人公司到跨國集團。

1. 擺脫ERP只能應用在特定產業的傳統限制。

一套只適合特定產業使用的ERP,一旦硬塞給不同產業的企業用戶,其使用範圍可能被用戶企業縮減到剩下會計模組,甚至被架空成資料儲存中心。

唯有萬用ERP才有資格銷售給來自各種行業的企業和政府部門。

2. 擺脫ERP只能應用在特定規模企業的傳統限制。

ERP適合大企業使用。
因為過於複雜,小企業和一人公司用不起來。
ERP適合小企業和一人公司。
因為過於陽春且僵化,如果拿去給大企業使用,有太多功能短缺且不允許擴展。

2. ERP平臺

為達萬用目標,有多種策略被採用。

一、霰彈槍策略

這個策略又稱萬金油、萬靈丹策略。其極致發揮,就是盡其可能,根據經驗或猜測不同企業可能需要的全部軟體功能,一一預製程式或模組,等候企業客戶挑選或全部捆綁出售。

按照這個策略做出來的ERP預製品,體積龐大、複雜難用:

這種軟體具有下列缺陷:

二、程式產生器策略

在M$ DOS時期已經出現「程式產生器」概念。數日前有人主張用人工智慧(AI)產生軟體。

待解疑問:現在有哪些商轉程式產生器,其生成的軟體,

假設現在需要一個人事薪資模組如下,有沒有程式產生器或AI機器人能自動設計出來?

因為有諸多未解疑問,所以這種策略到此為止。

三、積木策略

很早以前就出現「CORBA」。不知何時出現「SOA」、「micro service」等名辭與之抗衡。

因為沒聽過有哪些ERP是採用這種策略而製成,所以無法評論這個策略。

四、平臺策略

這個策略以設計出能實現前述【ERP必備核心功能】的ERP平臺為目標。平臺也可以稱之為「框架,framework」。

本文自此以下專指這個ERP平臺

3. 高彈性

agile ERP

高彈性ERP平臺

ERP能萬用的前提是高彈性。那些預製的套裝軟體,無論有多少模組、多少開關、多少產業樣板、多少最佳配置方案、預製幾百萬列程式,都屬於霰彈槍之流,不能被歸類在高彈性系統,不堪用於「特殊」企業和政府部門。

這裡必須澄清一個觀念。「特殊」其實是錯誤用語。不應該只因為ERP不適用於非製造業,就指其他更多行業為「特殊」。

長篇大論之後,到底要怎樣架構ERP才能符合高彈性原則?

「你要高彈性?程式語言的彈性最高了!乾脆賣COBOL的兄弟姊妹、4GL、Java、Python、C語言、甚至組合語言給客戶,叫他們的MIS人員自己去開發其商業應用軟體好了?」

那不是筆者原意。使用程式語言去開發各行各業的應用系統,雖然確實具有最高彈性,但是因為它有一個重大缺點 – 最低生產力,所以這種策略不可取。

為求兼具高彈性高生產力,應架構ERP平臺

4. 簡單、輕巧、低系統開發門檻

PostERP is simple

簡單、輕巧等於高品質

小學生都知道:傻瓜總是把簡單的事情複雜化。

架構頂級ERP應該力求簡單而非複雜,輕巧而非龐大

只有簡單的ERP才會有高彈性

它節省企業客戶的硬體投資:
能在一般規格的硬體上面高速運轉,瞬間回應使用人。反之,一套複雜的軟體猶如恐龍:它在高檔硬體上面緩慢拖行。
它減少企業客戶開發應用系統的人力成本和時間:
因為容易維護、修改、擴充並投放在多種環境中運行,所以IT人員、系統整合人員、以及顧問具有高生產力。反之,一套複雜的軟體不聽MIS人員的指揮、拒絕被馴服、無法調校而導致全部參與者人心渙散、專案進度一再延後。
簡單
整套ERP只有少數元件構成。而非疊床架屋、千絲萬縷牽扯不清、原始程式碼數百萬列、安裝檔案達數百MB、資訊人員和軟體商自己都無法參透的那種複雜軟體。
輕巧
整套ERP的原始碼很小。例如:未經壓縮,小於300 KB的製造業程式,含成本、MRP等計算,任何資訊人員都能輕鬆維護。
低系統開發技術門檻
因為頂級ERP平臺具備少撰寫程式的開發平臺特質,所以資訊人員能輕鬆擴展和維護應用系統,而且平民資訊系統開發人員成為可能。換言之,企業也可以把「終端使用人」納入應用軟體開發成員。這裏的「終端使用人」可以包括會計部的人員、精算部的人員、銷售部的人員...等。

5. 資料庫驅動

ERP軟體必須電子化企業業務(作業、流程)。

筆者經驗:大部分的企業業務可以用CRUD畫面實現

以企業的銷售業務為例,其流程包括:

  1. 銷售訂單
  2. 出貨
  3. 銷貨退回

如果能設計3個CRUD畫面,提供使用人執行上述業務全部CRUD操作的話,則換言之,3個CRUD畫面已全部實現該企業的銷售業務流程。

這時候,如果ERP平臺可以透過簡單的定義方式,不需要撰寫任何程式就完成這3個CRUD畫面的話,則這套ERP平臺稱為「資料庫驅動」。

資料庫驅動」不是追求時髦或炒作新名辭,而是為了架構出具有最高生產力ERP平臺,讓技術人員能在它上面以閃電速度開發完成各種企業資訊應用系統,速戰速決,於短期完成ERP專案。

6. 使用PostgreSQL

PostgreSQL

PostERP使用PostgreSQL

ERP必須搭配使用資料庫管理系統(Data Base Management System,DBMS)。

頂級ERP平臺搭配PostgreSQL使用的理由:

7. 三層運算架構

整體而言,ERP運算架構可分為下列三種。

頂級ERP平臺採用三層運算架構

8. 高速後端軟體

PostERP runs lightening fast

架構簡單的ERP才能高速運轉

隨著客戶數的增加以及業務邏輯的複雜度提高,ERP伺服器軟體的冗長回應時間容易被詬病。緩慢運轉的ERP伺服器軟體浪費其使用人的寶貴時間,降低其工作效率。

稍具理智和自尊心的正常人不會盲目崇拜自己不懂的東西。但是資訊產業卻盛傳 「軟體越龐大、越複雜難懂,則其能力越強大」迷信,大師們極力灌輸普羅大眾奴才心態:「品質最高的軟體,就是你平庸之輩一生也摸不透、搞不定的那種」。

常識101:越複雜、龐大的ERP伺服器軟體,其運行速度越低,隱藏錯誤越多,耗用越多硬體資源。它是一套設計不良、過時的劣質ERP架構。

因為ERP伺服器軟體運行速度遲緩,一些ERP廠商轉而要求其客戶購買高檔主機以供其伺服器軟體在上面執行。這種安排,錯在這裡:ERP整體系統的運轉速度瓶頸在軟體而非硬體,所以ERP企業用戶投資金錢在硬體上面,其實對系統的整體運行效能改善不顯著

腦筋清醒的資訊產業人士都心照不宣的事實:有軟體商利用其軟體缺陷去哄抬其產品售價,搜刮其企業客戶的現金。

為甚麼一些ERP龜速?因為它們在伺服器軟體處理業務邏輯,所以具有無可救藥的先天缺陷:

這種ERP這樣運作:

把簡單的問題複雜化,再去發明一堆有的沒的神奇機關,都是枉然,其最終效益極可能呈現負數。

輕巧、簡單等於優良。設計高速ERP伺服器軟體的最高效策略就是

這種架構能以無人能敵的閃電速度運行:

  1. MRP、結會計帳、計算薪資…等業務羅輯全部在PostgreSQL functions執行。
  2. 接到客戶程式的請求後,ERP伺服器軟體即確認請求方的身份和權限。
  3. ERP伺服器軟體在快取搜尋所需結果。如果找到,則二話不說,直接回應此結果給客戶軟體。
  4. 如果ERP伺服器軟體沒在快取找到答案,則向DBMS轉送請求。從DBMS接到答案後,ERP伺服器軟體立即回覆客戶端程式。

優質ERP伺服器軟體就是扮演這樣單純的角色,不多也不少:

9. 客戶軟體輕巧

light weight PostERP client

頂級ERP平臺的前端是瘦客戶

客戶端軟體動輒4片CD的那種ERP早已落伍了。頂級ERP平臺的客戶應該這樣設計:

10. 使用人容易操作

容易操作的客戶軟體減少訓練工作,縮短系統上線期,提高使用人的工作效率,降低使用人對ERP的排斥。

減少CRUD畫面和菜單數量。
使用人容易上手。使用人在少數畫面操作ERP,就能完成其日常工作。避免迫使使用人開啟多個CRUD畫面,來回切換、比對、翻找畫面與畫面之間的資料、操作CRUD。
手冊頁數少。
使用人參閱數分鐘即可實際操作軟體。
以各種語系提供廣泛的線上說明。
畫面說明、欄位說明、報表用途說明、報表參數說明、業務邏輯處理器說明、業務邏輯處理器參數說明。使用人不必翻找年久失修的過期手冊。
每一個畫面外觀布局完全相同。
適應ERP的操作畫面需要時間。應該避免設計出這類系統:不同CRUD畫面,其欄位的位置安排隨性,按鈕、彈出窗等機制都不一樣。
容易搜尋資料。
例如:使用人可以就CRUD畫面上每一個欄位搜索紀錄。
畫面上顯示的紀錄都允許使用人下載。
提供選單給使用人。
避免強迫使用人背誦程式代號(「transaction」)。

11. 國際化

localized ERP

頂級ERP平臺具有國際市場競爭力

多語系多時區多曆法

12. 提供報表

完整的報表能力:
允許IT人員設計各種報表,以滿足使用人多樣、複雜的需要。
提供IT人員無可匹敵的報表製作生產力
IT人員在頂級ERP上面製作使用人要求的各種複雜報表。每份報表在幾分鐘之之內完成製作,而非數日。
頂級ERP整合報表能力:
IT人員設計完成一份報表之後,使用人立即在選單中挑選並列印報表。IT人員不必分發報表給各使用人。避免外掛報表功能,脫離ERP而獨立。
IT人員設計報表和最終用戶生產報表都不必使用第三方工具。頂級ERP零報表部署-IT人員設計報表後,全球另一端的終端用戶立即從菜單中選擇該報表並列印。 IT人員不必將報表分發給用戶。頂級ERP的報表功能自給自足,這意味著一流的ERP不需要獨立的第三方報表工具。
crosstab report

crosstab報表

13. 高雅的會計模組

14. 附掛檔案機制

為貼近無紙化目標,ERP應提供機制,讓使用人上傳檔案,附掛在資料紀錄之下,並允許日後下載。例如:

15. 提供簡單、高效率的API

IoT

頂級ERP平臺應提供優質API

ERP平臺應提供API。一套優質ERP有能力簡單、高效率、安全地與外界交換資料。

ERP伺服器軟體應允許客戶的IT人員以設定方式而提供RESTful API供諸如IoT和MES等外界設施呼叫,直接對指定的資料庫table操作CRUD。

基於生產力考量,技術人員都避免和學習曲線陡峭、需要嘗試錯誤的API打交道。

筆者推薦JSON,不推薦XML、SOAP。遠離ActiveX等專屬界面。

16. 具安全保護機制

secured PostERP

PostERP具高安全性

設計ERP平臺時,應該設想安全保護機制,例如:

17. 預留SaaS和PaaS發展空間

PostERP runs as SaaS and PaaS

PostERP平臺是SaaS、PaaS的基礎

頂級ERP平臺是SaaS和PaaS時代的唯一方案。

效益與風險

簡潔是架構頂級ERP平臺最重要的基礎。因為簡潔,所以才有前面提到的各項【頂級ERP的特質】。

架構師完成頂級ERP平臺之後,

這個頂級ERP平臺不是另一次空泛概念炒作,而是既成事實;它既是觀念復古,也是技術創新;它重回過去的簡單,形成IT產業的未來主流。

❮ 免費試用雲端ERP! ERP專案的失敗原因 ❯