As we have seen in our past blog entries on ERP system customization, there are many serious issues that must be carefully thought through when considering a modification to the core programs within your ERP system. In this wrap-up on the topic, we will shed some light on the areas of infrastructure and code maintenance.
First, ask yourself these questions: If you are planning on performing the customizations yourself, how much will the software development kit (“SDK”) cost? Do you have the product source code or must that also be purchased from your ERP vendor? Do you have the skill set to use the SDK once you have purchased it or do you have to bring someone on staff to write the code or hire a contractor? These SDK’s can run many thousands of dollars, depending on the tool used. If you have hired a contractor to do the work, will you be dependent on that contractor to maintain the customizations made? If using a contractor do you know if he is keeping good Source Code Control and version tracking?
Software development entails the development or use of a source code control system (“SCCS”). The SCCS ensures that, as changes are made to your custom project, earlier versions of these changes can easily be retrieved if needed, in case a new change to the code turns out to be faulty. SCCS stores copies of different versions of your program changes so they can be tracked, documented and retrieved, if necessary.
Anytime you begin the process of modification of software, it is imperative that changes made to base code are both written in, and tested against, an isolated environment that is not your live, production environment. In other words, the objects that run your program, and the database you test against, need to be copied to a completely separate environment so they are not corrupted and lost if the code does not work.
If done right, this will often entail additional hardware and software to adequately protect you from live data and code corruption. For example, a Relational Database Management System (“RDMS”) like Oracle or SQL Server for your live data will need to be copied somewhere else, so your customizations can be tested against your data without the risk of data damage in the live system. With most licensing schemes, installation of a second instance of database software requires an additional license fee for that second database.
It is never advisable to test custom code against a copy of your database on the same instance as your live, as erroneous programming statements may cause runaway processes or modifications to your live data. Should this occur on your live database instance, the entire system can be brought down, shutting your users out of your production system.
This replication of your data environment can easily run into thousands of dollars for hardware and database software. We have seen dozens of examples where the user, in an effort to cut costs, has brought down production systems while testing bad code. This left their enterprise without a system while the problem was resolved. Another method of accomplishing this replication of the environment is through the use of virtualization. Either virtual servers and/or clients may be employed to help isolate the development/ testing/data environment.
Another consideration when taking on a customization project internally is “What about support?”. You may find that you are stuck at the release level you are at for the ERP product, leaving you to support and upgrade the product internally.
The best solution will most often be working with your ERP vendor to provide the customizations you need and to be able to continue to support the product through updates. There may be additional costs involved for that support, but in the long run they should be minimal compared to the costs of taking this all on yourself.
As you consider customization of your ERP system, we hope this series has helped you understand the risks and costs of such projects, as well as how to evaluate your ERP vendor for the best fit possible within their standard code.Posted by Ken Hayes, Vice President, ProfitKey International