PostERP – 大企业自主管理、小企业云承租、可量身订做的ERP
架构师这样设计顶级ERP
发文:2019-12-31 编辑:2020-08-20
顶级企业也这样选择顶级ERP。
【ERP】这个名辞
以前,大家都说【电子资料处理,EDP】。专科学校在早期有开设【电子资料处理科】。
后来,可能【EDP】这个名辞太低阶,於是有大学把【电子资料处理科】升级成为【信息管理系】,这样才能反应大学传授的知识之高、大、上。
几年后,可能有人认为【EDP】一辞缺乏管理精神,於是又出现【ERP】这个融合电子资料处理技术与管理於一体的新名辞。
2019年初或更早,开始流行一个涵盖范围比【ERP】宽广的新名辞 – 【数字转型,digital transformation】。
新名辞层出不穷,多是旧瓶新装、概念和名辞炒作。其实【商业信息应用软件系统,business information application software system】这个老旧名辞最朴实无华。但是它太长,今年少有人听得懂,而且有点土。为方便沟通,於是入境随俗,本文一致使用这一代人都听过、简短、尚未被时代淘汰的【ERP】这个名辞。
其实【ERP】这个名辞仍有争议:
- 个性保守的张三认为:【ERP】仅限於软件范围。
- 李四坚持:有一款【ERP】,它不只是软件而已,软件商更加持高深、奥妙的世界一流管理理念在其软件里面,融合管理与数位科技二者。说它是「软件」等於在贬抑管理科学的价值,说那些软件只是昂贵DVD的人是在毁谤软件商的清誉。
- 王五主张:【ERP】只是软件,而软件只是工具而已,其单独重要性不高。一旦剥离管理,则【ERP】犹如僵尸,只剩下没有精神的躯壳。最重要的是人。也就是说,用户企业唯有礼聘管理大师做其顾问,佐以富含管理心法的上线辅导,【ERP】的作用才能有效显现。否则,【ERP】项目把软件推上线都有困难,何况期待发挥它对企业的管理效益!
因为本文聚焦於技术,所以【ERP】一辞在这里专指商业信息应用软件系统,也就是第1.项的范围之内,不论及管理。
ERP软件品质决定ERP项目的成败
理由:
- ERP软件的核心品质无法於推动ERP项目过程中大幅度改良。
- ERP项目辅导顾问,可以随时增加人数,也可以随时用学历更高、经验更丰富的专家取代顾问团成员。
- ERP项目推动过程所采用的管理策略、品质保证和监督机制、沟通技巧和频率、对使用人的训练时数和品质,都可以随时加码、调整、改良,甚至重复实施。
大量案例证明:一旦ERP软件的核心品质不良,则第2.和第3.项调整措施完全无效。那些采用劣质ERP软件的ERP项目只有三种结果:
- 直接以失败告终,软件废弃不用。
- 勉强使用会计和销售等1~2个模块,但是对外仍宣称「成功上线」。
- 企业用户持续加码人员和硬件,做困兽之斗。
ERP品质最终将在其企业客户的损益表和资产负债表上面呈现。ERP品质深远影响其用户的营运成本、成长动力、企业形象、研发与客服以及公关等各部门人员的士气。
所以,ERP架构师必须兼顾下列角色的利益以设计【顶级ERP】:
- 企业客户
- ERP项目实施顾问
- 自己任职的ERP供应商
ERP必备核心功能
再阳春的ERP也必须提供下列全部基本功能。
- 提供机制供IT人员设计CRUD屏幕,供终端使用人输入、读取、修改、删除资料。
- 提供机制供IT人员设计业务逻辑处理器,供终端使用人运行。例如:金钱交易生成会计分录、会计结帐、计算薪资、计算MRP、计算保费或理赔金额。
- 提供机制供IT人员设计报表,供使用人打印报表。
- 提供与外界交换资料的机制。
顶级ERP的特质
顶级ERP必须简洁。它兼具下列特质:
- 万用
- ERP平台
- 高弹性
- 简单、轻巧、低系统开发门槛
- 数据库驱动
- 使用PostgreSQL
- 三层运算架构
- 高速后端软件
- 客户软件轻巧
- 使用人容易操作
- 国际化
- 提供报表
- 高雅的会计模块
- 附挂文档机制
- 提供简单、高效率的API
- 具安全保护机制
- 预留SaaS和PaaS发展空间
1. 万用
设计出万用ERP是架构师使命必达的任务,别无选择
万用ERP同时具备下列特质:
- 适合各种行业的企业使用,包括政府、学校、非营利事业…等。也就是具有「多产业」能力。
- 适合各种规模的企业使用,从一人公司到跨国集团。
1. 摆脱ERP只能应用在特定产业的传统限制。
- ERP也许可以给业务性质单纯的工厂将就使用,但是不适用於出租车企业、人寿保险公司、连锁零售商、天然气公司、医院、银行、邮局、电力公司、晶圆厂、石油公司、轮胎工厂、自来水厂、货运代理、学校…等非制造业企业和政府部门。
- ERP也许可以给要求不高的制造业工厂将就使用,但是严格要求「批号」控管的药厂、鞋厂、服装工厂买它会很惨。
- ERP的架构不适合用来开发人力资源系统。
- 「鞋厂专用ERP」不能用在工具机工厂。
- 适合企业使用,不适合政府部门使用;或相反。
一套只适合特定产业使用的ERP,一旦硬塞给不同产业的企业用户,其使用范围可能被用户企业缩减到剩下会计模块,甚至被架空成资料储存中心。
唯有万用ERP才有资格销售给来自各种行业的企业和政府部门。
2. 摆脱ERP只能应用在特定规模企业的传统限制。
- ERP适合大企业使用。
- 因为过於复杂,小企业和一人公司用不起来。
- ERP适合小企业和一人公司。
- 因为过於阳春且僵化,如果拿去给大企业使用,有太多功能短缺且不允许扩展。
2. ERP平台
为达万用目标,有多种策略被采用。
一、霰弹枪策略
这个策略又称万金油、万灵丹策略。其极致发挥,就是尽其可能,根据经验或猜测不同企业可能需要的全部软件功能,一一预工序序或模块,等候企业客户挑选或全部捆绑出售。
按照这个策略做出来的ERP预制品,体积庞大、复杂难用:
- 屏幕多、程序(「transaction」)多、开关多、参数多。
- 隐藏机制多、连动机制多、机制互相牵制或排斥。
- 文档和在线说明难以清楚涵盖,文档错误或过时、与软件不一致。
这种软件具有下列缺陷:
- 预制品未能满足一些企业的「特殊」或边缘需求。
- 因为复杂,所以可能不存在那种打通奇经八脉,完全弄懂ERP全部甚至单一模块的顾问,导致使用ERP的企业常年在「急徵顾问」。
- 因为ERP架构具有重大先天性缺陷,软件商自己和实施顾问也无法按照计画时程开发完成商业应用软件以即时交付企业用户使用。
- 因为难用,所以对使用人训练的过程艰辛,使用人产生排斥,项目出现强大阻力,导致上线困难甚至失败。
- 因为程序庞大甚至系统架构僵化,所以IT人员不易扩增或修改ERP功能。导致IT部门人数居高不下,形成企业的沈重人事费用负担。
- 后端软件跑不快,迫使企业用户购买昂贵硬件、设置庞大的基础设施(infrastructure)IT人员。
二、程序产生器策略
在M$ DOS时期已经出现「程序产生器」概念。数日前有人主张用人工智慧(AI)产生软件。
待解疑问:现在有哪些商转程序产生器,其生成的软件,
- 能否用来处理各行各业的商业信息?
- 能否取代现有ERP软件?
- 运行速度是否比目前手工打造的传统软件高?
- 能否人工介入除错、强化、扩展?
假设现在需要一个人事薪资模块如下,有没有程序产生器或AI机器人能自动设计出来?
- 三班制:07:00 ~ 15:00, 15:00 ~ 23:00, 23:00 ~ 07:00
- 大夜班有点心。
- 迟到30分钟以内,扣薪500元。
- 记2次大功者,颁发3日工资做为奖金。
- 迟到1 ~ 4小时者须请半日假。
- 旷职扣2日工资。
- 提供全勤奖金。
- 记警告1次扣一日工资。记大过1次扣3日工资。
- 除了经理级以上人员以外,全员刷上、下班卡。
- 工厂有职级 – 薪资表。
- 外籍劳工提供住宿。
- 提供折价餐给现场人员。
- 实施劳保、健保、薪资所得扣减机制。
因为有诸多未解疑问,所以这种策略到此为止。
三、积木策略
很早以前就出现「CORBA」。不知何时出现「SOA」、「micro service」等名辞与之抗衡。
因为没听过有哪些ERP是采用这种策略而制成,所以无法评论这个策略。
四、平台策略
这个策略以设计出能实现前述【ERP必备核心功能】的ERP平台为目标。平台也可以称之为「框架,framework」。
本文自此以下专指这个ERP平台。
3. 高弹性
高弹性ERP平台
ERP能万用的前提是高弹性。那些预制的套装软件,无论有多少模块、多少开关、多少产业样板、多少最佳配置方案、预制几百万列程序,都属於霰弹枪之流,不能被归类在高弹性系统,不堪用於「特殊」企业和政府部门。
这里必须澄清一个观念。「特殊」其实是错误用语。不应该只因为ERP不适用於非制造业,就指其他更多行业为「特殊」。
长篇大论之后,到底要怎样架构ERP才能符合高弹性原则?
「你要高弹性?程序语言的弹性最高了!干脆卖COBOL的兄弟姊妹、4GL、Java、Python、C语言、甚至组合语言给客户,叫他们的MIS人员自己去开发其商业应用软件好了?」
那不是笔者原意。使用程序语言去开发各行各业的应用系统,虽然确实具有最高弹性,但是因为它有一个重大缺点 – 最低生产力,所以这种策略不可取。
为求兼具高弹性与高生产力,应架构ERP平台。
4. 简单、轻巧、低系统开发门槛
简单、轻巧等於高品质
小学生都知道:傻瓜总是把简单的事情复杂化。
架构顶级ERP应该力求简单而非复杂,轻巧而非庞大。
只有简单的ERP才会有高弹性。
- 它节省企业客户的硬件投资:
- 能在一般规格的硬件上面高速运转,瞬间回应使用人。反之,一套复杂的软件犹如恐龙:它在高档硬件上面缓慢拖行。
- 它减少企业客户开发应用系统的人力成本和时间:
- 因为容易维护、修改、扩充并投放在多种环境中运行,所以IT人员、系统整合人员、以及顾问具有高生产力。反之,一套复杂的软件不听MIS人员的指挥、拒绝被驯服、无法调校而导致全部参与者人心涣散、项目进度一再延后。
- 简单
- 整套ERP只有少数元件构成。而非叠床架屋、千丝万缕牵扯不清、原始程序码数百万列、安装文档达数百MB、信息人员和软件商自己都无法参透的那种复杂软件。
- 轻巧
- 整套ERP的原代码很小。例如:未经压缩,小於300 KB的制造业程序,含成本、MRP等计算,任何信息人员都能轻松维护。
- 低系统开发技术门槛
- 因为顶级ERP平台具备少撰编程的开发平台特质,所以信息人员能轻松扩展和维护应用系统,而且平民信息系统开发人员成为可能。换言之,企业也可以把「终端使用人」纳入应用软件开发成员。这里的「终端使用人」可以包括会计部的人员、精算部的人员、销售部的人员...等。
5. 数据库驱动
ERP软件必须电子化企业业务(作业、流程)。
笔者经验:大部分的企业业务可以用CRUD屏幕实现。
以企业的销售业务为例,其流程包括:
- 销售订单
- 出货
- 销货退回
如果能设计3个CRUD屏幕,提供使用人运行上述业务全部CRUD操作的话,则换言之,3个CRUD屏幕已全部实现该企业的销售业务流程。
这时候,如果ERP平台可以透过简单的定义方式,不需要撰写任何程序就完成这3个CRUD屏幕的话,则这套ERP平台称为「数据库驱动」。
「数据库驱动」不是追求时髦或炒作新名辞,而是为了架构出具有最高生产力的ERP平台,让技术人员能在它上面以闪电速度开发完成各种企业信息应用系统,速战速决,於短期完成ERP项目。
6. 使用PostgreSQL
PostERP使用PostgreSQL
ERP必须搭配使用数据库管理系统(Data Base Management System,DBMS)。
顶级ERP平台搭配PostgreSQL使用的理由:
- PostgreSQL是全球最先进的开放原代码DBMS,其性能满足优质ERP平台的要求。
- 企业客户免除购买DBMS授权和维护费用。
- PostgreSQL提供极佳品质的文档。
- 容易取得高品质的技术服务。
7. 三层运算架构
整体而言,ERP运算架构可分为下列三种。
-
二层运算架构:
DBMS←–→应用程序运行档
这种运算架构具有下列缺点:
- 当DBMS连接大量客户软件时,其性能快速下降,占用大量内存。
- 如果在公开网络上运行ERP,则DBMS在公开网络暴露,易遭恶意攻击。
- DBMS与应用程序二者之间的资料传输量高,远程ERP使用人感觉系统回应速度缓慢。
- DBMS与应用程序二者之间的资料传输不加密,无机密保护机制。
-
三层运算架构:
DBMS←–→伺服器软件←–→客户软件
-
四层以上运算架构:DBMS←–→后端服务软件←–→前端服务软件←–→客户软件
这种运算架构不允许前端软件连接DBMS。后端服务软件提供大量且复杂的API供前端服务软件呼叫。该架构因为叠床架屋而具有下列缺点:
- 学习曲线陡峭,开发业务应用系统的困难度高。
- 整套系统复杂、不易维护,容易出错错误。
- 运行速度缓慢。
- 需要高硬件投资。
为了赶流行,一些中国大师们於2018年起开始为这种运算架构取了一个全球独一无二的新名字「中台」并且大做文章。
顶级ERP平台采用三层运算架构。
8. 高速后端软件
架构简单的ERP才能高速运转
随著客户数的增加以及业务逻辑的复杂度提高,ERP伺服器软件的冗长回应时间容易被诟病。缓慢运转的ERP伺服器软件浪费其使用人的宝贵时间,降低其工作效率。
稍具理智和自尊心的正常人不会盲目崇拜自己不懂的东西。但是信息产业却盛传 「软件越庞大、越复杂难懂,则其能力越强大」迷信,大师们极力灌输普罗大众奴才心态:「品质最高的软件,就是你平庸之辈一生也摸不透、搞不定的那种」。
常识101:越复杂、庞大的ERP伺服器软件,其运行速度越低,隐藏错误越多,耗用越多硬件资源。它是一套设计不良、过时的劣质ERP架构。
因为ERP伺服器软件运行速度迟缓,一些ERP厂商转而要求其客户购买高档主机以供其伺服器软件在上面运行。这种安排,错在这里:ERP整体系统的运转速度瓶颈在软件而非硬件,所以ERP企业用户投资金钱在硬件上面,其实对系统的整体运行效能改善不显著。
脑筋清醒的信息产业人士都心照不宣的事实:有软件商利用其软件缺陷去哄抬其产品售价,搜刮其企业客户的现金。
为甚么一些ERP龟速?因为它们在伺服器软件处理业务逻辑,所以具有无可救药的先天缺陷:
- 伺服器软件龟速运行。
- 伺服器软件和DBMS之间占用大量网络带宽。
这种ERP这样运作:
- 从客户端程序接到运行MRP的请求后,伺服器软件首先从DBMS读取资料。伺服器软件接著扫描读进来的资料。在扫描每一笔资料时,伺服器软件又再对DBMS读取更多资料记录。这样一直层层反覆深入,连锁地向DBMS读取资料。这种资料处理策略当然低效率:
- 伺服器软件尽可能从DBMS读进大量资料,越多越好。所以它吃掉大量RAM和CPU。
- 如果伺服器软件和DBMS不在同一部硬件主机的话,那么,企业用户就必须投资高档的网络设备以供大量资料在伺服器软件和DBMS二者之间高速往返。
- 在伺服器软件处理资料的效率,远低於让DBMS直接处理。其理由非常简单–全部台面上的DBMS,尤其是PostgreSQL,都会优化其处理资料过程。DBMS就是知道如何、何时、是否该读进哪些资料,以耗费最低的CPU、RAM、和硬盘的成本。但是伺服器软件就是少有能力控制这些资源。
把简单的问题复杂化,再去发明一堆有的没的神奇机关,都是枉然,其最终效益极可能呈现负数。
轻巧、简单等於优良。设计高速ERP伺服器软件的最高效策略就是
- 业务逻辑交给DBMS运行
- 伺服器软件扮演客户端软件和DBMS二者之间的仲介角色
这种架构能以无人能敌的闪电速度运行:
- MRP、结会计帐、计算薪资…等业务罗辑全部在PostgreSQL functions运行。
- 接到客户程序的请求后,ERP伺服器软件即确认请求方的身份和权限。
- ERP伺服器软件在快取搜寻所需结果。如果找到,则二话不说,直接回应此结果给客户软件。
- 如果ERP伺服器软件没在快取找到答案,则向DBMS转送请求。从DBMS接到答案后,ERP伺服器软件立即回覆客户端程序。
优质ERP伺服器软件就是扮演这样单纯的角色,不多也不少:
9. 客户软件轻巧
顶级ERP平台的前端是瘦客户
客户端软件动辄4片CD的那种ERP早已落伍了。顶级ERP平台的客户应该这样设计:
- ERP客户软件应有高相容度。以浏览器为基础的ERP客户软件短期内应该不会消失。
-
如果设计桌面ERP客户软件,则应该遵循两项原则:
- 轻薄短小,压缩其体积到10 MB以内。
- 单一运行文档,使用人直接双击运行。使用人无须安装,信息人员无须分发、部署客户软件。
10. 使用人容易操作
容易操作的客户软件减少训练工作,缩短系统上线期,提高使用人的工作效率,降低使用人对ERP的排斥。
- 减少CRUD屏幕和菜单数量。
- 使用人容易上手。使用人在少数屏幕操作ERP,就能完成其日常工作。避免迫使使用人开启多个CRUD屏幕,来回切换、比对、翻找屏幕与屏幕之间的资料、操作CRUD。
- 文档页数少。
- 使用人参阅数分钟即可实际操作软件。
- 以各种语系提供广泛的在线说明。
- 屏幕说明、字段说明、报表用途说明、报表参数说明、业务逻辑处理器说明、业务逻辑处理器参数说明。使用人不必翻找年久失修的过期文档。
- 每一个屏幕外观布局完全相同。
- 适应ERP的操作屏幕需要时间。应该避免设计出这类系统:不同CRUD屏幕,其字段的位置安排随性,按钮、弹出窗等机制都不一样。
- 容易搜寻资料。
- 例如:使用人可以就CRUD屏幕上每一个字段搜索纪录。
- 屏幕上显示的纪录都允许使用人下载。
- 提供选单给使用人。
- 避免强迫使用人背诵程序代号(「transaction」)。
11. 国际化
顶级ERP平台具有国际市场竞争力
多语系、多时区、多历法:
- 多语系
- 一套程序支持全部语系。不是那种相同功能的程序写4个版本:版本一支持正体中文、版本二支持简体中文、版本三支持英文、版本四支持越文。
- 客户软件允许使用人在线切换语系,不必先登出再登录。
- IT人员设计完成一份报表之后,使用人以各种语系打印报表。
- 支持阿拉伯文、波斯文、希伯来文等,由右至左书写文字。
- 多时区:以【出货日期】为例,伦敦的ERP使用人看到2019–12–25 11:09:03.356505+00,台北的ERP使用人看到2019–12–25 19:09:03.356505+08。
- 多历法:同时支持Gregorian历法和Solar Hijri历法
12. 提供报表
- 完整的报表能力:
- 允许IT人员设计各种报表,以满足使用人多样、复杂的需要。
- 提供IT人员无可匹敌的报表制作生产力
- IT人员在顶级ERP上面制作使用人要求的各种复杂报表。每份报表在几分钟之之内完成制作,而非数日。
- 顶级ERP整合报表能力:
- IT人员设计完成一份报表之后,使用人立即在选单中挑选并打印报表。IT人员不必分发报表给各使用人。避免外挂报表功能,脱离ERP而独立。
- IT人员设计报表和最终用户生产报表都不必使用第三方工具。顶级ERP零报表部署-IT人员设计报表后,全球另一端的终端用户立即从菜单中选择该报表并打印。 IT人员不必将报表分发给用户。顶级ERP的报表功能自给自足,这意味著一流的ERP不需要独立的第三方报表工具。
crosstab报表
13. 高雅的会计模块
14. 附挂文档机制
为贴近无纸化目标,ERP应提供机制,让使用人上传文档,附挂在资料纪录之下,并允许日后下载。例如:
- 研发人员上传加工说明图档,附挂在项目item A之下,供加工现场下载参考。
- 专利事务所人员上传往来书信,附挂在项目申请进度日期2020–1–1日之下,供日后查阅。
15. 提供简单、高效率的API
顶级ERP平台应提供优质API
ERP平台应提供API。一套优质ERP有能力简单、高效率、安全地与外界交换资料。
ERP伺服器软件应允许客户的IT人员以设定方式而提供RESTful API供诸如IoT和MES等外界设施呼叫,直接对指定的数据库table操作CRUD。
基於生产力考量,技术人员都避免和学习曲线陡峭、需要尝试错误的API打交道。
笔者推荐JSON,不推荐XML、SOAP。远离ActiveX等专属界面。
16. 具安全保护机制
PostERP具高安全性
设计ERP平台时,应该设想安全保护机制,例如:
17. 预留SaaS和PaaS发展空间
PostERP平台是SaaS、PaaS的基础
顶级ERP平台是SaaS和PaaS时代的唯一方案。
效益与风险
简洁是架构顶级ERP平台最重要的基础。因为简洁,所以才有前面提到的各项【顶级ERP的特质】。
架构师完成顶级ERP平台之后,
- IT技术人员在这个平台上面帮来自各产业的大、中、小、微企业量身订做100%符合业务需求的ERP应用系统。
- 使用这个平台在大企业推动大型ERP项目,其失败的可能性趋近零。
这个顶级ERP平台不是另一次空泛概念炒作,而是既成事实;它既是观念复古,也是技术创新;它重回过去的简单,形成IT产业的未来主流。