ERP实施致命伤:过度二次开发
【 专稿】 在经过长期无休止的ERP实施加班后,终于迎来了难得的半天休息,能在家舒服地看完电影《特洛伊》。其中让我感受至深的是:古希腊神话中所向披靡的勇士阿喀琉斯最怕脚后跟受伤,因为这是他的致命“命门”。其实ERP实施也有最怕触及到的致命“命门”,就是过度二次开发。
作为一个ERP实施顾问,目前我正协助客户上线ERP项目,这是客户有史以来最大的IT项目。经过大半年的实施,此ERP项目却陷于困境。原因是客户对ERP实施二次开发的误解和随意性,使项目陷于前无进路,后无退路的局面。据有关数据统计表明,ERP实施最大的一个致命伤是过度二次开发。因为随意性的二次开发最后都会演变成一个对系统无休止的修改过程,最终会把客户和实施厂商都拖进泥潭难以自拔,而开发人员和实施顾问则会心力交碎,痛苦不堪。
客户固执己见是过度二次开发的导火线
在我做ERP实施顾问的第一天,上司告诉我两条基本准则:第一条准则是要坚持以客户真实需求为驱动力;第二条准则是作为实施顾问,一定要坚决不赞同客户进行太多的二次开发。因为过多的二次开发不仅会增加软件的不稳定性,还会延长项目实施周期,从而增加项目成本,故必须要用尽各种各样的办法把客户需求向ERP软件已有的流程上走。
这两个准则看起来相互矛盾,但在经过这个项目后,我才深刻的理解到它的本质含义。在这个项目中,客户固执的认为只有进行二次开发才能真正发挥它们个性化的流程潜力。但这却是一个很大的误区,客户的固执或偏见主要是表现在以下方面:
(1)不愿意改变现有的操作习惯
一般来说,ERP软件产品为了具有较强的通用性,软件功能是比较标准,流程设置相对规范化。因为对于任何ERP软件来说,通用性是首要考虑的问题之一。但这个客户除了在业务流程等方面具有个性化需求外,还存在着一些不涉及业务流程的、由企业的特殊性而产生的操作习惯需求。
客户是一个老国企,在界面习惯和操作习惯上提出了非常多的特殊要求,客户领导固执的认为一定要按他们的习惯进行二次开发,以满足他们原有的操作模式。例如,一般ERP软件都会提供通用的单据格式,但这个客户却有自己习惯的一套单据格式。在ERP实施时,客户第一个问题就是问能否按这个格式打印。其实,这是本末倒置的,只要该有的内容有了,没有必要一成不变的按原有的格式。也许ERP系统提供的格式更加合理,就算是二次开发,也许等格式修改好了,客户也许早就适应了这个新的格式。
但这样的操作习惯问题在实施时是经常出现的,在与客户沟通这些无关痛痒的问题上常常让我费尽心力,舌根冒火才勉强说服客户同意先试用单据格式。结果不但造成项目延期,而且还把大家的注意力转移到无关的次要流程上,吃力不讨好现象时常发生。实际上,只有当碰到无法通过调节参数来完成,或者报表功能和格式真的是不适应时,才应该通过二次开发来实现。
(2)不合理的管理制度造成的特殊流程需求
主要表现在客户想把现有的手工流程、手工作业一成不变的搬到ERP中去,其实这是非常不正确的,这是换汤不换药的做法。当我与客户领导进行沟通时,分析ERP现有的流程与客户原有的流程的优劣性比较时,客户用一句话把我顶回来了,就是他们一直都是这样做的,而且还做得不错。他们就是用这样的管理手段才得已发展到目前的规模,而且以后还打算一直用他们习惯的方式去管理,因此必须要进行二次开发以配合它们就算是看起来不合理的特殊流程。
(3)ERP软件确实无法满足的需求
当然,有时客户确实存在着一些个性的业务流程需求,ERP系统是无法满足,毕竟ERP是一个套装软件,而不是根据客户量身定制的。针对这种需求,即使通过各种各样的实施方法后,也没有找到更好的处理方式,就应该进行二次开发了。
在针对客户频繁的二次开发需求,我们把利弊向客户陈述清楚,并说明无数的事实证明过度的二次开发的案例最终是会失败的。而且许多开发需求已经超出ERP软件厂商应该负责的部份,需要额外签订二次开发合同和增加费用。最后,财大气粗的客户领导决定扩充原有的IT部门开发组,由客户自行进行二次开发。
无节制过度二次开发的弊端
ERP软件在实施的过程中总会遇到这样那样的问题,其中最让实施顾问头痛的是客户领导一时意气用事,好高骛远而造成的无节制的二次开发。这不但成本过高,而且越改越让ERP项目难以实施,陷入进退两难的困境。
(1)无节制二次开发,ERP系统容易走样
客户老总在ERP实施前就为实施定了调:现有的业务流程不能大改,只能逐步优化。因此,作为实施顾问的我在与客户业务部门讨论解决方案前采取了如下应对策略:先培训客户尽快熟悉ERP系统功能,劝说客户采用系统已有的相似功能,减少一些无谓的开发,系统没有的功能才考虑是否要开发。因为软件已经在数百家企业使用,管理思想是非常先进和合理的,而且大量二次开发不但会有开发的风险,延长了实施周期,还会对系统升级带来诸多不便。但客户坚持开发的理由是:①目前使用的流程是经过实践检验了的,只是需要更进一步完善;②ERP流程或许先进,但现有流程不可能因为实施ERP而大改,太大的调整将导致上下衔接不顺。
就这样,实施小组和业务部门讨论、协商、争论了个把月,结果是一大堆的二次开发需求摆在面前。然而,过度二次开发后的结果是:项目延期,开发的程序不稳定,容易出错。用了一段时间后,发现还不能满足业务流程的需要,于是再做修改。实际上,这样二次开发就会存在两大问题:第一是由于二次开发过多,系统变得越来越复杂,与最初期望的效果越来越远,最后猛然一看,系统已经完全“变味”了。第二,由于客户二次开发能力有限或者系统柔性度较差,造成客户在这方面的投入很大但产生的效益甚微,后者也正是客户在二次开发中陷入窘境的主要原因。