【IT68 信息化】
大家都知道ERP是以生产为核心的,而生产的核心是物料需求计划-MRP,实现MRP的关键技术就是BOM(BILL OF MATERIAL-物料结构表)。这种方法于60年代出现,用最朴素逻辑,在计算机帮助下按产品BOM和工艺流程逐级推演,得到了在一般平稳生产条件下可以应用的生产计划方法,流行了近40年。但是MRP方法存在着两个重大的缺陷:
1:BOM从本质上是一种静态的方法,无法表现出生产过程这个运动和变化的过程。
2:没有资源约束和生产能力约束,给出的计划既无法实现合理,也无法实现优化。
这样的缺陷在企业应用过程中将导致什么样的后果呢?我们结合一些真实案例来做一个简单说明。
1:BOM不能满足资源约束和生产能力限制。
由于BOM功能上的不足,企业必须用人工方式或者用利其他工具才能决定生产多少和什么时间开始生产,MRP再根据这个人工结论用BOM制定相应的物料需求计划。而对绝大多数企业来说最需要解答的问题类似于:这段时间能不能完成这个生产任务?或者,完成这个生产任务最早是在什么时间?在这方面,MRP无法给企业提供生产决策的任何依据,它总是假设企业有无限生产能力,再以此为基础做物料需求计划。因此回答这些问题必须还要靠人的估算和经验。换一种说法,用户下达的所有生产要求,MRP都会一概接受,无论这个要求是多么不合理,因为它自己没有判断能力。
典型案例:上海某医院办制药企业,生产过程非常简单,实施ERP生产半年多以来一直是人工给出生产时间和数量,再使用MRP制定物料需求计划。直到有一次出现了操作错误,同一个生产请求在同一时间被重复下达多次,但是系统都全部接受并生成了相应的计划,造成不小的损失。这时候企业才发现这个系统的功能与他们想象的并不一样,他们一直认为:ERP给出的计划是‘自动并合理’的,不合理的生产要求计算机会给出提示,或者自动安排在合理的时间进行,而实际上,生产计划的这种合理性要用户自己解决。用户在实施半年多以后才发现这对他们来说恰恰是最关键的功能。于是用户很快与软件厂商交涉,但是这时候提出交涉已经太晚。
软件厂商一开始同意解决,但是很快发现这个问题不是想象的那么简单。因为对某些产品,在某种情况下,相同的生产请求在相同时间多次下达是正确的。但是什么时候正确?什么时候不正确?正确的时候能下达多少次?不正确的时候每次应间隔多久?这就必须考虑其他计划对设备、人员、厂房等的占用情况,这里面有太复杂的判断和计算,BOM的功能仅仅是给出物料需求计划,没有对这么多复杂情况进行分析处理的能力。开发商明确表示无法完成这种功能。此时项目款已经几乎付清,经过多方交涉,最终不了了之。
这样的例子并不少见,这是MRP的本质缺陷导致。为了弥补这种缺陷,一些MRP类型的软件做了很多功能。例如人工设定关键资源、人工设定生产提前期等,但是这些方法的本质都是人的经验和估算,计算过程也只是简单的逻辑判断和四则运算,是把传统手工方法的能力判断移植到计算机上完成,不是以先进算法考虑全部资源能力和约束条件来解决复杂的实际问题。一般说解决类似问题只能依靠‘APS-先进生产排程’类型的软件解决。这类软件超越了BOM的限制,但是目前只与国外大ERP软件集成。对此本文不做详述。
2:BOM无法让企业得到详细的作业计划。
BOM理论的最终目标就是得到物料需求计划,而不是生产作业计划。但是物料需求计划与生产作业计划是紧密相关的。利用BOM可以回答‘需要什么物料、需要多少物料’这样的问题,但是从理论上无法回答‘在生产中怎样投入这些物料’的问题。这必须靠人的经验和手工制定作业计划的方法。有些企业的产品比较单调,生产过程相对简单,对作业计划没什么高的要求,手工可以很容易制定出来,MRP-BOM方式就可以基本满足这类企业的要求。但是并非所有企业都是如此,现在激烈的市场竞争使得品种、成本、价格、时间因素成为越来越多企业的追求目标。多品种小批量按时交货的生产方式逐步替代大批量单独品种的生产。这种变化造成生产工艺流程日益复杂,对计划的要求也逐步提高。没有与物料需求计划相匹配的生产作业计划,就不能满足企业的要求。
典型案例:上海某中型模具加工厂,产品种类很多,没有产量很大的品种,一个产品从不连续生产,很多产品都是很长时间才生产一次。因此企业没有一个常用的生产流程,必须随时根据生产请求制定一个作业计划。他们长期以来的计划方式是计划部门下达一个新的生产任务,各个部门分别制定自己的作业计划。问题是不同的部门之间的连接很不顺畅。一个部门在制定工作计划的时候根本不知道其他部门是如何计划的。常常是A部门这样的方式很顺,但是导致B部门必须加班加点,B部门的计划顺了,C部门又要等待。于是生产调度不断根据各部提出的意见来回进行调整,整体计划也就不断改变。这种方式表面上满足了各部门的要求,同时加入了人工优化的效果,但是实际上计划工作效率很低,计划执行效果也不佳,部门间矛盾不断。不合理的加班加点、停工等待成为困扰企业的严重问题。企业上下都强烈反映必须改变这种工作方式,
在ERP项目谈判的时候,软件商先是大包大揽,并以先进的理念和复杂的专业名词说服了企业领导相信他们可以完成企业的要求。但是等到进销存财务模块实施完成,开始生产实施的时候,软件供应商才进行了详细的生产系统调研。发现要想实现用户的生产模块的要求必须对每个工序,每个资源都进行详细的计划,同时还要完成复杂的优化调整,起码达到手工调计划的水平,才能满足多个部门多种资源的合理安排,否则就无法代替手工计划,而这是BOM方法根本无法完成的任务。不得已,软件商在调研报告中详细说明无法完成这个目标。原本期待值很高的企业方面对此反应强烈,认为软件商故意隐瞒实情,要求退回前面已付的部分款项;而软件商认为企业的认识偏离了ERP的基本定义,要求停止实施生产模块从而结束项目。双方经过长达一年的交涉,最终达成了停止实施生产,软件商免费维护其他模块的协议。
在这个案例中,企业的要求其实就是在物料需求计划产生的同时,给出合理的作业计划。合理的作业计划首先不能有资源冲突,这本质上是一个TOC约束理论问题;其次要满足资源优化方面的要求,则是APS先进生产排程的功能。都不属于BOM能解决问题的范围。软件厂商的无奈在于商务谈判中许诺太多,把用户对 APS方面的要求也一起答应下来,当用户真的认真执行的时候只好表示无能为力。从客户方面来说,如果深刻理解了MRP-BOM方法的本质,也就不会强求以 BOM为核心的软件完成他们的生产要求。认识上的差距导致的这种案例的发生,同样情况也在很多项目中发生。
3:以BOM为核心的物料需求计划没有详细的时间安排。
用BOM方法得到的物料需求计划只是数量和品种上的‘需求计划’,而不是时间上的‘需求计划’,也就是没有详细的物料需求时间。其本质还是由于没有资源约束——导致没有作业计划引起的。
物料的需求时间可以理解为生产过程中‘投入物料’的时间。这个‘投入物料’是一个工作过程,一定是在某个工序中完成的。而只有在作业计划中才有每个工序的详细时间,所以没有作业计划也就意味着没有物料的详细需求时间信息。所以BOM给出的物料需求时间只能是以整个生产过程的时间范围为范围。比如一个生产过程是1号-2号2天时间,那么这个生产过程中需要的每个物料的需求时间范围都是1号-2号,具体某个物料在这两天内的哪个时段,几点几分就无从得知了。这对那些价值低、对库存管理要求不高的物料来说没有大的问题,但是在生产周期长的情况下,对那些价值高、库存管理要求高的企业就无法满足要求。
比如,一个关键物料在库存中放置一天需要1000元费用。如果一个生产过程的时间范围为两个星期,那么这个物料在这个生产时段中的具体哪个时间需要就直接关系到生产成本。只有给出详细的物料需要时间:在星期几的几点几分需要这个物料?采购和库存按照这个时间进行准备才能最大限度降低库存和生产成本。这也是 SCM供应链管理必须以APS为核心的最关键原因。没有详细的作业计划以及精确的物料需求时间就不可能把供应和需求连接成一条连续不断的链。
典型案例:广西某饲料企业,是最早使用用友财务软件的一批用户,是企业信息化坚决的执行者。但是这个企业从94年以来一直没有上ERP。虽然用友长期跟踪希望他们上用友ERP,同时还有多家ERP厂商跟踪这个项目,以各种公关手段试图拿下这个项目,但是至今没有结果,原因在于饲料行业独特的生产方式。
饲料业的生产基本上是把大量的原料入库,以各种组合方式混合搅拌以后再大量发出。能否完成一个生产任务的关键因素在于有没有放置原材料的库存位置,因此饲料业的生产计划以库存容量为重要原则。所以该企业提出的一个基本需求是:(在采购计划和当前库存已知的前提下)下达完一个计划以后,立即得知在以后的任何一天精确到小时的库存情况,包括哪个库位是满的,哪个是空的,某库位还能装下多少库存量。只有这样才能下达其他计划。否则,不考虑库存量的生产计划很可能由于没有地方存放原料而无法执行。
该企业制定计划的工作一直都是由几个非常熟悉生产流程和库存管理的资深调度人员手工完成,企业发现这几个人对公司的生产至关重要,某人请假几乎无人能替代。所以他们对ERP软件首先要求解决这个问题。
这样的要求提给所有跟踪项目的ERP公司,但是没有一家有能力满足这个要求。原因很简单,这个要求的本质在于物料需求计划要有详细而且精确的时间,不能只给出数量和一个大致的时间范围。这就又回到制定作业计划上,用户有很多设备和班组,在生产过程中有复杂的关系和生产要求,作业计划中必须考虑这些生产资源的约束条件、生产能力的约束、和对作业计划进行优化调整,否则无法代替手工计划。先有合理的作业计划才有精确的投料时间才有精确的预计库存量。这明显不是 BOM能解决的问题范围。因此很多ERP公司的热情逐步降低,甚至一开始很热情的软件公司不再接用户询问的电话。
应该说这个用户的态度非常谨慎,不象某些企业大致了解一下理念,听了高深的讲解以后就拍板决策。他们每次接触一个软件就详细了解它的理论和功能,通过演示来了解这个软件到底能不能实现他们的要求,以及如何实现?效果怎样?不轻易下结论。否则也会象很多项目一样留下一大堆无法解决的遗留问题停在那里不了了之。所以作为用户,对自己的需求和对软件的功能和理论都要有深刻的认识,才能避免自己成为失败的ERP案例中的主角。
这个案例表面上是物料的投入时间问题,本质上还是BOM无法产生合理的作业计划,还是BOM基础理论和技术上的缺陷所导致。
4:BOM无法进行灵活的调整,无法适应随时变化的生产模式。
BOM的基础是一个静态的物料构成表,目的是把产成品分解成为多个原材料。但是这种‘分解’是一种静态的分解,不考虑动态的生产过程。因此,只有在生产工艺中的物料构成发生变化的情况下,BOM才能作出相应的改变。其他的变化,比如工序时间、工序顺序的变化都无法反应到BOM中。因此BOM不能完全响应企业的生产过程和生产方式的变化,无法根据生产过程的变化而进行一对一的相应调整。实际上很多生产过程的改变都是直接在生产地点手工完成的,与ERP无关。
如果企业的生产方式的改变涉及到物料结构的变化,那么BOM是不是就一定能作出相应的反应呢?答案是否定的。因为BOM不仅是一种静态数据,而且其算法和针对的生产模式都是固定的。一般一种BOM只能解决一种固定类型的生产模式——物料结构的变化不能超越这种模式,否则还是无法对变化作出反应。根本原因也是由于它的静态数据的本质引起,因为BOM方法的理论基础就是把不同种类的动态的生产过程固化为不同的静态的状况,分别予以解决。
典型案例:上海某制药企业,90%的生产过程都是一个工艺流程产生一个产成品,但是10%的工艺是产生多个产品。主要集中在中药的提取和加工上。其中一种中药材在加工过程中,产生的部分原浆经过提纯和装瓶,直接做成液体药剂出售;剩下的原浆经过浓缩和添加其他药物,制成药丸出售。这两种药物的最终比例可能会随着计划的不同而随时发生变化。这样的生产流程首先要求BOM能满足一个工艺流程有多个产成品,其次要求BOM的物料构成数量按照要求随时发生变化。
在项目的实际实施过程中,这个要求是在生产实施进行了一半才提出来的,软件厂商事先并不了解用户有这种要求,因此没有做准备,也没有签协议,出了事情以后,先是答应开发完成,后来反复拖延,直到最后,软件厂商明确表示放弃开发,没有回款的部分也不了了之。
这个例子还可以换一种说法:假如用户原来只有一个产品的工艺流程要求进行改进,变成有多个副产品和协产品,软件同样无法满足变化。这个案例的本质在于,用户总是倾向于要求自己来设定自己的生产模式,希望软件随时按照这种设定的模式执行。但是对软件厂商来说,BOM是一种静态模型,算法已经固定在其中,数据可以改变,已经固定了的算法很难再进行调整变化。满足用户的要求意味着彻底的改变算法和重新开发生产模块,而用处十分有限,这对单独的项目来说是不合算的。
实际上,几乎所有的BOM都是把生产过程固化成一些标准模式,比如合成型、分解型、流程型、离散型,或者干脆单独某种行业的生产模式。ERP厂商也按照这些模式来确定自己所属的市场范围,其产品只能针对某几种生产类型的企业满足它的生产要求。用户的生产过程也就被限制在BOM已经固定的模式上。对现在大多数ERP软件来说,都不能以单独产品单独满足所有要求。而重新开发满足新的BOM模式是一件很复杂的工作。在这个例子中,实际上软件商提供的是一种‘合成-流程型’的生产模型,可以满足用户90%的生产要求,但是10%的流程中出了多个产成品,就变成了‘分解-流程’型的模型。相当于要开发一种全新版本的生产模块,供应商当然无法满足这个要求。
随着管理的进一步发展以及SCM的出现,越来越多的企业要求把生产过程与很多其他工作流程比如采购、销售、运输、质检,甚至是其他企业的生产流程相连接。因此企业生产管理出现了向多种模式发展的趋势,要求软件能同时解决多种生产模式,打破BOM对单一生产模式的限制。用户自己设定生产模式,软件自动满足这种变化的要求已经成为下一步ERP升级的必然方向。但是没有基础理论突破性的进展,现有的BOM方法根本不可能完成这个任务。
5:MRP缺少对中间品的细致管理。
首先,这里所说的‘中间品’并非BOM理论的中间物料层级的概念。我们首先确认这样一个中间品定义:任何物料,一旦经过一道工序,这个物料就变成一个新的物料,如果这个新的物料如果不是产成品,那么就是我们所说的‘中间品’。
比如制陶工业中的一个陶坯,经过人工目测,确定没有表面瑕疵,虽然在这个过程中陶坯本身没有任何物理的和化学的变化,但是这个陶坯已经不再是原来的陶坯,对企业来说,变成了‘目测后陶坯’这个全新的物料。它的身份、性质、成本、保存、运输方式都不同,此后的管理方式也会有很大的不同。所以‘中间品’与工序紧密联系,只要经过新的工序,就是新的物料,而与它的物理、化学性质没有直接关系。中间品的天然属性不是它的物料特性而是它所在工艺流程中所处的位置,还有与其他中间品的相对关系。很显然,中间品的种类、数量都远远大于原材料和产成品,结构更复杂,管理更困难。
对中间品的严格控制可以实现很多目标,比如生产过程更加规范化、质量管理更加细致和高效、生产计划更精确和更满足实际需要、库存管理更精确、成本核算更精确等等。不是所有企业都要求对中间品进行管理,但是越来越多的企业需要对中间品进行更细致更严格的管理。这是由于企业对生产过程控制、库存管理的要求逐步提高、对质量管理要求逐步严格、对成本核算要求更精确所引起。
BOM方法没有对工序的定义,自然也不可能有中间品这样的概念存在,因此也无法对中间品进行有效的管理。本质上说,中间品是一个动态过程的附属品,一个静态的结构无法给出中间品所在的位置。所以对一个中间品的定义要点是在一个动态的工艺流程中给出它的相对位置,而不是它的代码、名称、规格型号或者物理化学性质。
典型案例:某国营大型制药企业,生产多种比较敏感的药品,都与‘麻黄素’这个原料有关。对这个原料国家有严格控制,企业生产过程一旦管理不严造成任何原料、半成品流失都属于生产事故。所以企业要求在每个生产计划中,对每一道工序,每一个中间品有严格的批号、时间、数量、出入库的计划功能,这个计划要经过上报、批准、留底保存,最后实际的生产执行结果要与计划对比,找出所有不相符的地方。曾有多家ERP软件前去演示,但是所有软件的核心功能都是针对解决物料需求计划建立BOM,没有完整的包含全部工序的工艺流程,因而也就没有中间品的位置,更没有严格的中间品管理,最终这些软件全部被否定。至今为止该企业没有上生产模块,仍然延续手工管理方式。
类似的要求对于所有使用高价值或者敏感原料的企业都是必须的管理过程,常见于制药、军工、印钞等企业。其他不使用敏感原料的企业,对中间品的管理要求主要集中在质量管理、车间库存、成本管理等方面。特别是成本管理,一个中间品的成本取决于在它前面的所有投入物料、资源消耗,如果没有详细的生产流程、生产计划和生产执行记录,无从计算一个中间品的成本。
对中间品的管理要求企业建立一种动态的生产工艺流程模型,这个模型把工序与资源与物料紧密连接在一起,中间品才能找到自己的位置,用户才能对中间品进行有效管理。而这些都不是BOM方法所能解决的。
6:BOM无法提供用户最需要的决策支持数据。
很多情况下,企业并不是要求管理软件来执行命令,而是希望软件给出建议,也就是决策支持功能。比如用户往往需要了解:已经下达的这个生产计划如果发生某种变化,会造成什么结果?一个计划如果取消,另外一个计划能不能提前完成,能提前多长时间多少?从什么地方入手,增加哪些资源,可以提高企业的生产能力?某个用户发过来的紧急订单最早什么时候能完成?类似的问题都有一个共同点,就是企业还没有决定要干什么,只是企业主管需要了解‘如果这样-将会如何?’,有了这个了解以后才能作出合理决策,所以这个功能主要就是给决策提供依据。
典型案例:
广东某灯饰品生产企业准备提升他们的ERP软件。灯饰品市场的特点是样式品种多样,有流行时效性。因此企业生产方式是‘多品种小批量严格限制时间’方式。企业接到的每个订单的产品都是不同的,而交货时间都要求非常严格。不同的产品意味着不同的生产工艺流程,不同的生产工艺流程意味着不同的时间参数。企业面临的最大问题就是必须不断调整和计算不同工艺流程的各种参数,然后不断根据这些参数回答用户的提问:某批订单什么时候能能完成?再增加某个品种减少某个数量以后什么时间能完成?不仅是用户,企业自己也是在不断问这样的问题,否则无法进行决策。企业为此设了几个人专职用手工方法计算这些数据,但是问题很多,第一是没有理论依据,要不断根据不同的情况和工艺流程随机应变;第二没有考虑全部约束条件,只是凭经验找几个关键设备进行估算;第三计算过程不严格,计算结果只能是一个估计值,不是严格的结论,企业要承担决策风险。这样的不足必然在实际工作中造成很多问题。而该企业一直使用的ERP软件只能用BOM制定一个物料需求计划,没有任何决策支持的功能,根本无法满足用户的要求。如何升级ERP成为该企业一件最难办的事情。
解决这类问题的关键是建立生产工艺模型,这个模型需要把工序、资源、时间、物料等所有生产相关要素的信息综合到一起,统筹考虑,并经过复杂的计算,才能在实际工作中给出有意义的决策支持信息。这是决策层上的功能,与MRP-BOM以运作层面为主的工作方式大不一样。所以当前的MRP-BOM类软件无论从技术上还是理论上,都无法满足这类需求。
7:MRP的操作过程过于复杂,不满足用户对高效管理的要求
对于这个问题可谓仁者见仁。有些企业只强调功能,对于操作难易认为是次要因素。但是不要忘了,真正拥有强大功能的软件操作起来一定是很简单的。因为智能的和自动的功能越多,需要人控制的地方越少。而操作的复杂一般都源于软件功能的缺陷和设计能力上的不足。
典型案例:某台资企业,老板是留美MBA毕业,熟悉国外ERP软件现状。一次看某国产名牌ERP演示其产品,当演示和讲解完毕后,老板要求演示人员把企业实际的生产过程录入到ERP系统中,做一个解决实际工作问题的演示。而且给他们的实际生产流程并不复杂,只有六道工序,5-6个原材料和一个产成品,以及很简单的几个要求。但是两个人销售人员在演示现场设置了半天无法看到结果。让他们回去再继续,两个人经紧急与公司总部联系以后,用了一整天的时间仍然没有看到结果,一直等到第二天才看到演示效果。最后解释的原因是销售人员对软件不熟练,遇到了一些操作顺序上的问题不会解决。但是该软件操作之复杂,设置之繁琐,在这个过程都展现无遗。最终台湾老板否定了这个软件,很大原因在于老板认为:过于复杂的操作很难在日常工作中顺利运用。
提到生产模块和MRP,很少有企业介绍自己的软件操作‘简单’。因为BOM从本质上是以固定不变的简单算法解决复杂动态的实际问题,所以不得不在设置和操作上搞得非常复杂。用户必须要掌握一整套的使用和操作技巧,才能解决一些实用问题。其实质仍然是手工方法与软件的结合。而用户期待的是一种通过简单操作得到复杂计算的ERP软件。
今后的发展方向:
以上几个案例形象说明了BOM方法的缺陷和不足,这些缺陷都是基础理论和核心技术方面的‘关键缺陷’,如果在这两个方面没有本质突破,BOM单靠自身完善是无法解决这些问题的。而理论和技术的突破也意味着BOM方法的被淘汰。当然BOM作为一种方法的被淘汰并不是否定‘BOM-物料结构表’本身的存在价值。BOM是企业的一个基础数据,从一个特定的角度反应企业生产中的物料构成,任何时候都是有存在的必然和价值的。只不过它作为一种生产管理的核心算法将被淘汰出局。也就是说BOM没有能力再担任生产模块核心算法的重任,它只能用于与物料需求相关部分的运算。它的最大的变化主要是以下两个方面:
第一:BOM的生成方式不能再是人工了解物料结构、手工录入这样的方式。以后的BOM必须与生产流程限制、优化的计划模式、合理的资源分配、特定的工序顺序相结合。所有这些数据都紧密联系在一起组成一个整体系统,由于手工无法解这个整体系统,因此,BOM的产生形式不允许再手工计算和录入,而是在一个包容全部生产信息的整体系统中,计算出整体的解决方案以后,BOM作为这个方案的一个部分自动生成。它在产生的同时就保证了与资源约束、工艺流程限制、时间优化等各个方面的协调一致,同时它本身也被赋予了精确的时间、详细的品种数量、全部的中间品、复杂的逻辑关系等更丰富的信息。这与手工方法得到的BOM不可同日而语。
第二:BOM不再起到生产计划核心的作用。BOM本身就是‘先进生产排程’这种核心技术的计算结果,它与作业计划、生产排程、资源优化等结果同时产生。它产生以后所起到的作用主要是在快速计算物料构成、计算投料计划、计算采购计划、计算长期物料需求等方面。显然不再具有整个计划核心的地位。
淘汰BOM方法的关键在于找出能够解决‘生产计划中遇到的多种复杂因素’的数学模型。有了数学模型就有了核心技术,靠核心技术才能支持理论的进一步发展。总之,发展是必然趋势,而且已经迫在眉睫。尽管国内计划所有ERP软件企业还都在靠BOM吃饭,但是技术的发展速度不以我们的意志为转移。国外多种APS 类型的软件已经在向我们的市场逼近,同时大量的中国企业还在等待从BOM功能上升级换代。发展有自己知识产权的核心技术,彻底解决BOM问题是整个中国管理软件产业的当务之急。