When you go to a tailor to purchase a suit, do you prefer a suit that fits you 100%, in size and taste? Or would you rather get a semi-fitted suit, which is not quite your size (baggy…) and only close to the color you wanted? I’m pretty sure the unanimous answer is a 100% tailored suit – nothing less. In off-the-shelf software however, I recommend the opposite: tailor the software as little as possible.
Suit vs. Software
Upgrade. That’s the difference between a suit and software. Nobody thinks their suit will be upgraded annually so the expectation is to leave the store with a 100% fitted suit (which can also cost a fortune…). As opposed to a suit, you can count on having to upgrade your software regularly; when you buy software from a 3rd party, you expect it to be upgraded for bug fixes and future features. You even prepare for an upgrade by trying to estimate annual maintenance costs during the purchase process. Enterprises want the upgrade process to be as simple and fast as possible; this is why they are willing to compromise on certain features and capabilities during the implementation phase.
Easy Customization vs. Hard Customization
Customization is basically making sure that off-the-shelf software works according to the taste and desire of a specific organization. Although a report by Panorama Consulting claims that 23% of organizations implement vanilla ERP software with little to no customization, I have never witnessed a client that didn’t customize its ERP software (and the same goes for Xpandion’s software…). The only question is how much customization is required and how will it impact future upgrades.
When I say easy customization I mean adjusting the product’s look & feel and functionality according to customer requirements – without having to change any codes. Switching user interface colors to fit customer’s brand, including other logos or adding steps to workflow processes – are all examples of easy customization. Don’t be fooled by the word easy. Easy customization can include many activities and take a lot of time. Still, since all customization actions are built-in possibilities, easy customization hardly affects the upgrade process. From the software’s point of view, it’s really easy.
Hard customization usually involves coding, and when dealing with coding you should definitely expect difficulties in the upgrade process. Adding codes for additional validation checks, changing database queries, extending tables with additional fields or converting data in tables to emails – are all examples of hard customization. Just imagine the problems you would face if the next software version didn’t include the modified table or if data in the database changed to a new format. Examples like these are the reason why some organizations are traumatized by the process of upgrading their software.
My Recommendation: Keep it Simple
If this recommendation rings a bell then 2 points for you; yes I strongly believe in the rule if it ain’t broke, don’t fix it. When you start the implementation process try to focus on easy customization and avoid hard customization as much as you can; even if this forces you to compromise and adapt to the standard version of the software. Remember, hard customization means more difficulties during an upgrade, and many more resources needed for completing the upgrade.