ERP systems are theoretically based on industry best practices and are intended to be deployed "as is". ERP vendors do offer customers configuration options that allow organizations to incorporate their own business rules but there are often functionality gaps remaining even after the configuration is complete. ERP customers have several options to reconcile functionality gaps, each with their own pros/cons. Technical solutions include rewriting part of the delivered functionality, writing a homegrown bolt-on/add-on module within the ERP system, or interfacing to an external system. All three of these options are varying degrees of system customization, with the first being the most invasive and costly to maintain. Alternatively, there are non-technical options such as changing business practices and/or organizational policies to better match the delivered ERP functionality.
Key differences between customization and configuration include:
- Customization is always optional, whereas the software must always be configured before use (e.g., setting up cost/profit center structures, organisational trees, purchase approval rules, etc.)
- The software was designed to handle various configurations, and behaves predictably in any allowed configuration.
- The effect of configuration changes on system behavior and performance is predictable and is the responsibility of the ERP vendor. The effect of customization is less predictable, is the customer's responsibility and increases testing activities.
- Configuration changes survive upgrades to new software versions. Some customizations (e.g. code that uses pre–defined "hooks" that are called before/after displaying data screens) survive upgrades, though they require retesting. Other customizations (e.g. those involving changes to fundamental data structures) are overwritten during upgrades and must be reimplemented.
- Improves user acceptance
- Offers the potential to obtain competitive advantage vis-à-vis companies using only standard features.
- Increases time and resources required to both implement and maintain.
- Inhibits seamless communication between suppliers and customers who use the same ERP system uncustomized.