There are two options available for closing gaps once the solution has been chosen; process change or customisation; obviously, the preferred option is for process changes but there will occasions when customisation cannot be avoided.

There are techniques can be used to reduce the negative impacts of customising:

  • Inability to remain on the upgrade path or incurring huge costs each time a new version is
  • Vendors refusing to support a customised product
  • Incorporating error-prone components into the standard product due to limited understanding

Here are a few techniques that can be used to mitigate the negative aspects of customisation:

Technique Description Benefit
Shadow tables Additional data that is identified during customisation is stored in separate database tables instead of adding columns to existing tables.  These additional tables are known as ‘shadow tables’ and use identical index keys to those used in the tables that they supplement. Standard data structures are not damaged, the benefits of this include:
  • Impact on standard functionality is reduced
  • Data changes introduced during upgrades can be readily incorporated
Popup forms Instead of modifying standard forms, any additional data required by a customisation is accessed through an additional form. Standard forms are not damaged, benefits include:
  • Impact on standard functionality is reduced
  • Form changes introduced during upgrades have no impact
Scripts All changes, data and forms, are incorporated using automated scripts. Six types of script must be available;
Those that make functional changes to the standard product
  • Those that reverse functional changes
  • Those that make changes to data structures
  • Those that reverse changes to data structures
  • Data backup scripts
  • Data loading scripts
Use of scripts can bring huge benefits:
  • The product can remain on the upgrade path
  • Vendors will be much more willing to support the product as the standard configuration can be presented for remediation
Loose-coupling Integration points between the product and other systems are not hard-wired and use messaging techniques for communications. The main and ancillary systems can often continue to operate independently of each other meaning that:
  • A fault in one of the component systems does not cause others to fail
  • Upgrades do not necessarily have to happen at the same time
Good development techniques There are many techniques that should be used during customisations, these include:
  • Good program structure
  • No hard-coding
  • Use tables to populate drop-down lists
There are many techniques that should be used during customisations, these include:
  • Good program structure
  • No hard-coding
  • Use tables to populate drop-down lists