Many applications right out of the box don’t do what a company needs. Tweaks here and there are needed to make the software do things the way the company does things. Customization is a great way to get what you need out of today’s software, but how much is too much?
We had one client a few years ago that needed a different security scheme to support multiple physical locations. They wanted a location view, a division view and a rolled up HQ view that the application could not support natively. So they paid a firm several thousand dollars to build a custom security model for their financial system. Now, every time the company has to update the software to the new version, they have to pay this same firm to perform the upgrade and re-add all the custom code back into the system. This happens every year and as new technologies and integration methods come to market, the impact of this customization can end up costing the company tens of thousands of dollars more.
As it turns out, the last 3 versions of the software supported the security requirements of the company. It took a little more money to remove the customization initially, but the payback period was less than 2 years. Using automated update routines produces predictable results. Results that the software vendor is able to test vigorously before releasing the update to its customers. Additionally, the company can now adopt a more aggressive update/upgrade cycle to take advantage of new features as they are released.
Lessons about customization:
- Make sure you really need the software to do something different than the way you do things.Validate against a “Nice To Have” vs. “Must Have” decision criteria.
- It is not just the cost of the initial customization that you have to think about. Ongoing maintenance and testing with every software upgrade can cost as much, if not more than the original development of the customization… and it happens every time you upgrade!
- The fewer the number and lesser the complexity of system customizations, the easier and less expensive (and less error-prone) updates and upgrades become.
Principium Technologies advises its clients to perform regular systems architecture reviews that take into account these customizations. As software matures, custom code can usually be removed and functionality returned to the native code of the application. This keeps updating and upgrading simple and much less expensive over the long term.