When you buy a machine for your factory, do you customise the heck out of it? Probably change the chassis material for added strength? Modify the gear train because it will result in better energy efficiency? Add 10 PLC modules to enable control and monitor of the machine through web from anywhere in the world? Most likely not. And for good reasons. The machine has been designed and tested by its manufacturer to perform certain tasks in certain ways pretty well. If there’s a lot about the machine you’d want to change, you should buy other machine from other manufacturer which already has the features you wanted instead.
A research by Standish Group International, Inc found that only 16% of software projects are successful. 16%! What a horrible success rate. No other project fields has that low success rate. It’s a shame. This research found that among top 3 reasons why the other 84% weren’t successful is incomplete or changing user requirements. For commercial software, that translates to a lot of customisations.
Does customisation have virtues? Of course. The military, for example, sometimes order a generic helicopter and ask its manufacturer to customise it for military use. Do these kind of customisations fail? Yes. An example would be a recent famous debacle for Royal Australian Navy when it asked Kaman Corp to customise Seasprite helicopters for more advanced naval uses. How about in factories? Machines in factories are sometimes customised, but only wisely minor ones. For if heavy customisation to it results in break down, then the company will incur additional costs because some work would have to be subcontracted out. How about car tuning? Isn’t that customisation? Some of them can be really intricate, yet the failure rate are seemingly very low. Well, it’s because most of car tuning, even the most intricate ones, are usually largely cosmetics. Only the very adventurous ones would, for example, tinker with the drive train, pistons, or fuel injectors, and those are not without great risk to the car’s long term usability.
From observation, the main reason why clients customise their software is just because they can. That’s not a wise reason. You can customise machines too. But customise it too much and you’ll face break down risk and possibly revocation of warranty or support from its manufacturer.
So, what a customer should do when buying commercial software? It should firstly be very meticulous in screening its supplier. Write down the features you want from the software, probably noting which ones are must and which ones are optional. Then ask the suppliers to prove their suitability to the requirements. Have them perform a demo of the features. Most of the time, you should be able to find products that satisfy all the must have requirements. In rare cases, you’ll find minority of the compulsory features missing from all the products in the market. When this happens, choose the product with the least missing compulsory features and once the project is under way, only customise for the missing compulsory features. Do not customise further than this.