产品

架构师这样设计顶级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项目的失败原因 ❯