When configuration can't do the job, the traditional way of implementing changes in a payment system is through adding code. This could manifest in many forms depending on the system architecture. An external message protocol may be coded as a plug-in. A component may allow user exits to be written. If code for core components is available, end users may hack away at it and change the system behavior to implement their requirements (a practice that they universally regret in the years to come).
At the business spectrum, end users don't like code changes for several reasons.
- They usually take a disproportionate amount of time to implement and thoroughly test.
- They carry a financial cost.
- Custom code tends to cater for uncommon situations and is generally not well covered by patches and upgrades.
- When piled up, custom code may erode the system in a kind of spaghetti state.
To the user, scripting seems like a panacea but is it? It's true that a scripting facility offers some advantages.
- The interpreted nature of scripts makes it easy to dynamically inject them in the authorization process without downtime.
- Some customizations are very easy to implement with a script.
- Implementation of a script generally requires less time and resources than a code change.
- Scripts can be much more easily implemented by end users than code changes can.
- By default, execution of scripts is an order of magnitude slower than execution of code.
- Just as with configuration, the scripting model places restrictions to the customizations that are possible with a scripting language.
- Making it easier to implement changes doesn't necessarily translate to a more manageable situation. Instead of code spaghetti you could have a script spaghetti of the same complexity, especially with script-happy users.
- The burden of script maintenance and proper alignment with system patches and upgrades is generally on the end user.
No comments:
Post a Comment