壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1641|回复: 7

ERP实施手记:生不如死的二次开发【转载】

[复制链接]
发表于 2008/5/31 22:08:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
作者:潘少红  2007-12-05 网友评论 10 条
【IT168 专稿】无休止的ERP实施加班后,我终于迎来了难得的半天休息,在家舒服地看了电影《特洛伊》让我感受至深——古希腊神话中所向披靡的勇士阿喀琉斯最怕脚后跟受伤,成为其致命的“命门”,其实ERP也有最怕触及的“命门”,这就是二次开发。

    多数情况下,二次开发都会演变成一个对ERP系统无休止的修改过程,最终会把用户和厂商都拖进泥潭难以自拔,而开发和实施顾问则会心力交碎,生不如死。

固执己见的客户

    在我做ERP实施顾问的第一天,上司告诉我第一条准则就是要以用户需求为驱动。然后,上司又告诉我第二条准则:作为实施顾问要坚决不赞同用户进行太多的二次开发,过多的二次开发不仅会增加软件的不稳定性,还会延长实施项目的周期,从而增加项目成本,要用尽各种各样的办法把用户需求向ERP软件已有的流程上走。这两个看起来相互矛盾的准则,令我在近期一个ERP项目实施过程中感到生不如死,左右为难。

    用户是一个老国企,在界面上和操作上提出非常多的特殊要求,固执地要求按他们的习惯进行二次开发,以满足他们原有的操作模式。一般来说,我们的ERP软件产品为了具有较强通用性,软件功能已经比较标准,流程设置也相对规范化。虽然通过参数可调的形式可以部分满足不同用户的需求,但很多情况下这种“轻度”灵活会失效。

    用户的固执或偏见主要是表现在这几面:

    ①不愿意改变现有的操作习惯。用户想把现在的手工流程、手工作业一成不变地搬到ERP中去,而这恰恰是换汤不换药的做法。当我对用户分析ERP现有的流程与用户原有的流程的优劣性比较时,用户一句话就把我顶住,说我们一直是这样做,而且还做得不错,我们就是用这样的管理手段得到发展,并且获得了上你们ERP系统的资金,以后还打算一直用我们习惯的方式去管理。

    用户除了在业务流程等方面具有个性化需求外,往往还存在着一些不涉及业务流程的、由企业的特殊性而产生的个性化需求,例如单据/表格的格式。一般ERP都会提供通用的单据格式,而用户又有自己习惯的一套单据格式。因此在实施时,企业上来就问能否按这个格式打印。其实,这是本末倒置,只要该有的内容有了,没有必要一成不变的按原由的格式。

    这样的问题在我参与的实施中时常出现,与用户沟通常常让我费尽心力,舌根冒火才勉强说服用户同意先试用单据格式。这样不但容易造成项目延期,而且还把大家注意力转移到无关系统的边缘流程上,吃力不讨好现象时常发生。

    只有当碰到无法通过调节参数来完成;或者报表功能真是不适应用户需求时导致报表样式、内容要改变,这些情况才应该通过二次开发来实现。这种因操作习惯提出的二次开发主要针对用户各类报表系统的查询,打印格式和字段标准化等方面。

    ②不合理的管理制度造成的特殊流程需求。用户有些二次开发需求,是原先不合理的管理制度和流程所造成的。因此,我们首先要做的是判断其要求的合理性,然后深入到一线去找出真正的需求。而无数的事实证明,大量由于不合理的管理流程需求提出要二次开发的案例最终都失败了。
  
    ③ERP软件确实无法满足需求。当然,每个用户确实都存在着一些ERP无法满足的个性业务流程需求,毕竟ERP是一个套装软件,而不是根据用户量身定制的。针对这种需求,即使通过各种各样的实施方法后,也没有找到更好的处理方式,那只好进行二次开发了。


二次开发的风险

    当用户明确提出要二次开发的时候,则很容易出现项目延期、开发的程序不稳定容易报错等问题;或者用了一段时间后想再做修改,才发现原来当初这样做是不对的,但可能涉及当初拍板决定的各方领导利益问题,所以也没人敢改了,因此导致二次开发的程序成了鸡肋,扔也不是,不扔也不是。

    ①修改报表格式或用户查询系统等不涉及程序代码改动的需求相对简单,因为软件一般都具有报表生成功能,任何业务人员不需要有很多计算机知识就可以自行设置,这种情况在实施时经过实施顾问组与用户充分沟通一般比较容易解决。

    ②当用户需求具有个性化,并涉及改动程序代码时,工作就很复杂了,往往需要ERP系统提供支持二次开发的工具,还可能需要有厂商软件的源程序支持,这些大都要支付额外费用。

    当用户提出需要代码级二次开发时,实施顾问必须清楚与用户沟通,否则更易陷入泥潭,因为代码级二次开发可能会使ERP系统变得越来越复杂,变成一个“四不象”的浮肿庞杂的ERP系统。

    一般来说,代码级二次开发主要有以下三个方面的风险:
  
    ①易造成系统的不稳定或崩溃。ERP系统是个错综复杂的系统,各个模块是个有机的整体。若要修改其中的一个功能,其影响的不单单是现在这个功能,还可能影响到其他功能。目前实施顾问一般对ERP代码级二次开发的一个观点是:能不做就不要做。因为ERP系统就像人的血脉那样错综复杂,在二次开发的时候,如果因为增加的用户个性化功能触动了ERP原有的大动脉,否则会大大影响其整个性能,并且开发、调试的费用也是非常吓人的。
  
    ②严重影响项目实施周期。代码级二次开发的时间短则几天,长则半月、一月,甚至也可能长达几个月,很容易延误项目实施进程,这个因素应该在签定合同或者说制定项目实施计划时包括进去。
  
    ③后续维护和升级风险大。改动软件后还会影响以后的软件版本升级。如果不升级,新版本的长处无法应用。如果升级,则面临着重新进行二次开发的可能。因为ERP软件供应商在进行新版本的ERP系统开发时,可能根本不会考虑某个特定的用户在旧版本上所作的二次开发。因此,在进行二次开发前,要做认真的分析对比。究竟是修改软件,还是改革现行管理程序,还是两者都作一些修改,对修改的必要性、效果和代价要心中有数。

反思ERP二次开发的得失
  
    无论是实施顾问还是用户都可能产生过这样的感慨:明明是经过几个月的初期讨论和项目分析,在用户的认可下做好了的ERP系统,结果由于“二次开发”,系统变得越来越复杂,与最初期望的效果越来越远,最后猛然一看系统已经完全“变味”了。因此,把握二次开发的原则很重要。

  
    ①在观念认识上,实施顾问应要让用户清醒认识到,不应过多强调用户自身的特点,ERP软件中的管理流程是从许多企业中提炼出来的,具有先进性和合理性。许多用户的特殊之处都是由于流程自身的不合理产生的,应该通过ERP的实施,对企业进行业务流程优化或重组,而不是一味修改软件以适应不合理的流程。

  
    ②当需要二次开发时,实施顾问和开发顾问应该要严格遵守不修改核心代码这一条基本原则。如果必须进行二次开发,则应尽量使得二次开发做出的功能模块独立于原来的ERP系统。这样当ERP系统版本更新时,二次开发出来的模块无需修改或者只需较少的修改就可以应用于高版本的ERP系统。

    ③二次开发的需求必须控制好,尽量不要在ERP系统的功能还没有充分了解是否配合用户管理需求之前就进行二次开发。因为用户的业务流程并不是一成不变的,ERP软件中流程一般比较抽象,大的方面与用户业务流程通常可以套上,细节部分不作修改也可以。同时,ERP软件不是给一个人用的,每个用户都可能有自己想法,不可能都满足的。部分要服从大局。项目按时、按预算完成实施,上线运行是实施阶段的大局,哪些二次开发必须要做,哪些可以不做,要看会不会影响大局。可做可不做的,坚决不做。
 楼主| 发表于 2008/5/31 22:13:38 | 显示全部楼层

解读

【 用户是一个老国企,在界面上和操作上提出非常多的特殊要求,固执地要求按他们的习惯进行二次开发,以满足他们原有的操作模式。一般来说,我们的ERP软件产品为了具有较强通用性,软件功能已经比较标准,流程设置也相对规范化。虽然通过参数可调的形式可以部分满足不同用户的需求,但很多情况下这种“轻度”灵活会失效。】

用户的习惯是根深蒂固的,在他没有获得变更习惯带来的好处时,是不会轻易的去改变自己,
我感觉出现这个情况时,一般是软件或者软件实施者并没有让用户真正体会到变更的好处,软件可以自动化执行任务,肯定比他形成的习惯要高效,但是这个高效不能是开发者或者实施者的感受,而应该让客户真真切切的感受到好处。如果客户感觉你的功能没有他形成的习惯高效,那只能证明软件在这一方面存在问题,做的不够完善。
此时要注意分析一下这个问题是不是主要因素,是不是关键路径,运用四象限法去分析一下,为客户讲解清楚,然后进行选择。

这样不至于进行盲目的拒绝修改或者盲目的去修改而迎合客户
 楼主| 发表于 2008/5/31 22:14:54 | 显示全部楼层
看着这篇文章说的不错,就贴在这里供大家阅读,并试着拿其中一些内容进行分析和解读,
也欢迎大家一起来解读这篇文章中的内容,也算是对自己经验的一个小小的总结吧:)
发表于 2008/6/1 00:49:14 | 显示全部楼层
我做项目的一个原则,除了报表,一定说服客户尽量少客户化。
实在不行了,就直接告诉他,过多客户化,一个是增加成本,再一个,由此造成的风险,也很巨大。
发表于 2008/6/1 00:49:52 | 显示全部楼层
软件没有完美的,追求完美,就要付出成本。
很多公司,客户化都是直接另外收费的
发表于 2008/6/10 14:21:23 | 显示全部楼层
解读:【 ③后续维护和升级风险大。改动软件后还会影响以后的软件版本升级。如果不升级,新版本的长处无法应用。如果升级,则面临着重新进行二次开发的可能。因为ERP软件供应商在进行新版本的ERP系统开发时,可能根本不会考虑某个特定的用户在旧版本上所作的二次开发。因此,在进行二次开发前,要做认真的分析对比。究竟是修改软件,还是改革现行管理程序,还是两者都作一些修改,对修改的必要性、效果和代价要心中有数。】

这一点我是深有体会的,对于没有个性化需求的项目升级级维护,工作量很小,并且风险也相当小,程序相对稳定;如果需要升级的项目是有过二次开发的(或者有个性化需求修改过的),那么每一次的升级过程,都想是在重新进行一次二次开发(当然对于二次开发的内容可移植性强的模块,要好点),然后就是所有常用功能的测试,看是否有冲突等等。。

但是话也说回来了,对于个性化的需求修改如果是针对与集团的大项目,我觉得就应该分开分析了,对于大项目来讲的个性化需求修改项目,这对项目本身的长期性来讲是有好处的。

不过总之还是一个“度”的问题,适度的开发,适度的引导需求。
发表于 2008/6/16 18:01:48 | 显示全部楼层
总是在强调软件的标准如何如何好,要用户去适应软件,根本是自欺欺人。不说别的,就以MRP模块来说,有几家ERP产品能真正把那些业务技法包融进来?
发表于 2008/6/16 20:43:23 | 显示全部楼层
同感同感啊,现在我们实施的项目就是出现这个问题。乙方的项目经理自认为自己很懂ERP,提出很多客户化的要求,我们做得是叫苦连天的,原系统被修改得面貌全非,稳定性大大折扣啊。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/30 03:45 , Processed in 0.014535 second(s), 14 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表