当前位置:首页 > 资讯&知识 > 企业信息化 企业信息化

开源ERP项目选型实施的冷静思考

导读:现在开源ERP软件已经不是纯粹的开源项目了,用一句话来说,开源ERP软件已经有了“很浓的商业色彩”。像现在有多企业,都是以开源ERP为基础,在上面提供商业支持。如广州的COMPIERE...

  笔者从商业ERP软件出来,到开源ERP项目团队从事开源ERP项目的实施,已经有一段时间了。为此,笔者对商业软件项目与开源软件项目的选型可以说都有比较深刻的了解。下面笔者就谈谈如何企业准备上开源的ERP项目,则在项目选型时该注意点什么,以及跟商业的ERP软件有哪些区别等等。

  也许有些人会说,开源ERP反正是免费的,有什么好选的呢,不行了再换就可以了呀。其实不然。由于开源软件天生有种种缺陷,这就决定了在选型开源ERP项目的时候,更加需要注意。

  思考一:开源ERP项目有否商业支持团队?

  笔者对于开源ERP行业的了解,笔者认为,其实,现在开源ERP软件已经不是纯粹的开源项目了,用一句话来说,开源ERP软件已经有了“很浓的商业色彩”。像现在有多企业,都是以开源ERP为基础,在上面提供商业支持。如广州的COMPIERE、恩信科技等等,都在为开源的ERP项目提供技术支持。

  既然ERP都是开源的,为什么这些企业还可以生存呢?

  这主要是因为:

  1、软件虽然是开源的,但是缺乏相关的技术资料,则即使企业的技术人员拿到全部的源代码,也是没有多大的作用。我们都知道,ERP项目是一个非常复杂的系统,其源代码的数量以及相互之间的关联系,都不是一般的复杂。就算一个有 ERP系统开发经验的人,要看懂这些代码并且找到相互之间的联系,也是需要一段时间的,更何况是没有ERP开发经验的企业技术人员呢。所以,为了能够短时间内掌握开源ERP项目实施与开发的技巧,若自己去研究源代码是非常吃力的,而且也是愚蠢的。最简便的方法就是购买其他公司研究出来的商业资料,如COMPIERE系统就有不少企业整理了实施文档与系统开发文档出来卖。虽然企业为此需要支付一定的资金,但是,相对于时间成本来说,还是值得的。

  2、开源ERP软件往往需要进行很多的二次开发,而且,有些是比较复杂的开发。这对于很多不是专门的IT行业的企业来说,让他们完成他具有一定的难度。而且,在原有系统架构的基础上,进行二次开发的话,比从无开始进行开发要困难的多。因为此时,需要首先对原有系统的架构与源代码比较精通,此时,才能够在原有系统的基础之上进行一些深入的开发。而这往往是实体企业所缺乏的。即使他们有很强的技术团队,但是,对于这个系统一及后台的关联可能并不是很熟悉,要掌握他们自己的内部联系,也不是一日两日就可以完成的任务。所以,有时候选择第三方为我们提供系统的二次开发是一个不错的选择。

  基于以上的种种原因,所以,笔者认为,企业在选择开源ERP软件的时候,就需要考虑这个ERP软件是否有足够多的商业支持团队。因为企业在开源ERP软件实施的时候,往往离不开他们这些商业团队的支持。他们能够为企业提供非常丰富的技术资料以及二次开发与项目实施的支持。这对于我们在最短时间内把开源ERP项目上上去具有非常大的帮助作用。同时,若有很多的商业团队在运作中,也可以从侧面证明,这个开源ERP软件还是有值得夸奖之处,不然的话,不会有这么多商业企业愿意在这上面进行投资。毕竟没有客户的话,他们是无法生存的。

  所以,笔者建议,当企业选择开源的ERP项目时,首先需要考虑,这个开源ERP软件是否有商业团队在运作。

  思考二:开源ERP系统的架构是否便于自助开发?

  即使是商业ERP软件项目,在项目实施的过程中,二次开发也是免不了的。那么,对于功能上面不如商业ERP软件的开源ERP软件来说,二次开发的数量更加是庞大的。笔者参与了很多的开源ERP项目,根据笔者的统计,大概二次开发的数量,起码占原有功能的15%以上,这还不包括一些小功能的完善。这是一个很大的数字了。若有时间了计算的话,笔者参与的几个开源ERP项目,平均二次开发的时间在40个工作日左右,而且这都是那些精通这个ERP的技术人员所需要花费的时间,也就是说,他们是不需要再花时间去了解原有的系统结构了。可见,这个二次开发工作量的庞大。

  二次开发工作量这么大,若都是靠技术人员一个字符一个字符的通过代码来实现,那显然是一件很痛苦的事情。而且,这也很容易出错,对于系统的稳定性是非常不利的。

  所以,企业若想上开源软件的ERP项目的话,则需要考虑这个ERP系统的架构,是否便于进行二次开发。若所有代码,甚至表单的格式都需要通过代码实现的话,那我的建议是,用户现在就可以放弃这个ERP了。否则的话,后续的工作量,可以用“恐怖”两个字来形容。

  在考虑这个问题的时候,主要需要注意以下的内容。

  一是开源ERP软件是否提供了一个免代码的开发平台。现在很多商业的ERP软件,都提供了一种开发平台。通过这个平台,ERP系统很多功能都可以实现零代码开发,也就是说,不需要通过代码编写就可以完成相关的功能。对于一些复杂的功能的话,也只需要编写比较少的代码即可。若开源ERP系统也有这个技术的话,则对于企业来说,是一个福音。如此,企业的技术人员在对原有的系统架构有一定的了解之后,就可以在这个平台上进行一些简单的二次开发。这无疑对企业来说,具有非常大的实际利益。如根据笔者的了解,compiere开源ERP系统就提供了一种叫做应用字典的技术,在应用字典这个平台上,可以不需要开发源代码,就可以实现一些简单的功能。如在表单中添加字段、后台数据库添加表格并关联到前台窗口、权限控制与记录刷选等等。

  二是需要考虑二次开发对于其他系统作业的影响。不同的编程语言,对于二次开发的承受力是不同的。有些编程语源的话,只要修改一个地方,就会对其他很多关联的地方产生影响。但是,有些编程语言则不是。如JAVA,它独特的模块技术,为这个提供了可能。利用JAVA语言编写的软件,每一个小的功能就相当于是一个模块,这个模块中之提供了传入的参数与传出的结构,而其内部结构都是独立的。也就是说,在二次开发的时候,不去改变这个输入输出的参数,只改变内部的业务逻辑,则对于整个系统就不会有多大的影响。这个特性,对于我们进行二次开发是非常有利的。一方面,我们可以边实施项目,边进行二次开发。因为我们编写的功能都是通过模块的形式添加到原有的系统中去的,所以,即使其他人正在用系统的话,也不会有多大的影响,只需要短暂的中断即可完成系统的升级工作。另一方面,由于模块内部业务逻辑的更改,只影响到ERP系统的很小一快内容,如果能够保证输入输出关联关系的准确的话,基本上不会对系统的稳定性造成威胁。不过,这最好还跟系统的设计,与程序开发人员是否有良好的编程习惯有关。总之,企业需要考察整个系统的架构设计,看看在原有系统上进行二次开发的话,对于系统的稳定性会产生多大的影响。从企业角度来讲,系统的稳定性有时会比系统的功能更加来的重要。

  三是有否跟其他开发工具的关联接口。就如JAVA程序来说吧。由于JAVA本身就是一个开源的项目。所以,在这个JAVA平台上,本身就有很多使用的开发工具。如报表。基于JAVA平台上,有很多开源的免费报表开发工具,而且有不少都是图形界面的,用起来是非常方便的。有了这个报表工具的支持,则我们进行报表设计的时候,就会非常的方便。现在的问题就是,这个利用第三方的工具所设计出来的报表,能否跟原有系统进行结合。若不能有效集成在一起的话,就是白搭。根据笔者的了解,基于JAVA平台开发的Compiere ERP 软件可以把两者很好的集成起来。不过,其现在的版本还有一个缺陷,就是无法跟系统原有的权限管理很好的合作。也就是说,利用第三方工具开发的报表,无法直接利用系统原有的权限控制方案,而是需要进行额外的权限控制。

  总之,企业若需要使用开源ERP软件的话,则就需要认真考虑这个问题。毕竟,对于开源软件项目来说,二次开发的工作量比项目实施的工作量要重的多。若在选型的时候,不注意这个问题的话,那么后果真的会很严重。一方面二次开发的时间会拖得很长,二次开发的成本也会水涨船高。另一方面,由于系统架构不是采用模块化设计,则二次开发对于系统的稳定性就会产生很大的影响。这些都是企业不希望看到的,而且要尽量避免的。

[返回]
沪ICP备12032527号-1 | 沪公网安备 31011002002007号