When it is about buy v/s build, you may select buy in order to save time and “money”. However, there is no product out there in the market that is one-size-fits-all. You will have to engage with the product vendor (or a partner) to implement the gaps.
With over 22+ yrs of experience in industry, I have seen 100s of projects succeeding, I have seen quite a few of them failing; especially when implementing off-the-shelf products. Straight out of my experience, I have gathered some failure points and have detailed them below with the hope that it helps CIOs & Senior Managers to take more informed decisions.
There is no product on face of this earth that is one-size-fit-all. You will certainly find gaps between your requirements and the features that off-the-shelf product offers. In fact many a times it happens that the off-the-shelf-product has 100 features that you don’t need and does not have 10 features that you need.
In such a case any customization will cost you heavy. The product specialists are rare and expensive. Real good experts who know the product ins-and-outs are pretty rare and all the more expensive. For e.g. it is pretty difficult & expensive to get experienced professionals on Oracle Integration, Liferay, Alfresco, Oracle ERPs etc.
If you are already hooked on to some off-the-shelf product since few years and now want to migrate to some other product, it will be extremely costly. You will have to hire agencies that know both the products. The schema, the structure, the architecture is so very different that migrating from one product to another is anything but straight forward.
For e.g. migrating from Liferay to Oracle WebCenter and vice-a-versa can be a daunting task. I was consulting for a large bank in Singapore who wanted to migrate from a locally purchased CMS to Liferay. The architecture of the two product was way apart. It took good amount of time and money to migrate.
These products do offer support. However, the support does not include enhancement requests. The enhancements will be anyway charged additionally. Additionally, the product companies do keep enhancing their own product and the day they come up with a version which has an architectural change, upgrading to new version can be extremely costly. Worst, the product company stops support for earlier version and you have no choice, but to upgrade. I can provide list (on tip of my fingers) of companies that have spent more than 300K to upgrade to newer versions of a particular CMS Portal.
One of the U.S based companies that I know, have actually spent close to 600K for just an upgrade from one version of a CMS to newer version. The newer version had fantastic new features, but hardly any of them were of use to the customer. But…. they had to upgrade !!! More than anything else, the reason for upgrade was that the the product company was withdrawing support for earlier version
Almost all products usually charge year-on-year subscription. If you are extremely happy with the product and the support from the product company, the year-on-year recurring wouldn’t pinch. Otherwise, it does pinch. There are many companies who have moved out of off-the-shelf product for high recurring costs without adding much to their benefit.
Most of these product companies do not implement their product(s) themselves. They have partner companies that do the implementation of their products for the customer. You must be extremely cautious while selecting the partner; you need to check with the partner whether their best hands are available for your implementation. More often than not, the partner team members are not very well versed and lack expertise on the product; this takes serious toll on the timelines, cost and quality of the implementation.
So you have to incur the cost of year-on-year cost of the product + implementation cost + support cost from the implementation partner.
Most of these products have been developed quite a few years back and has architecture which is not inline with modern standards. Most of them are monoliths and have been developed using technology stack which was in vogue 5 years back.
Modern applications are based on on micro-services architecture which scales extremely well, maintenance is a charm and performance is marvelous. Most of the off-the-shelf products lack this kind of architecture that precludes vertical scaling.
So if not buy off-the-shelf, then what ? Here are my 2 cents : You must buy off-the-shelf the product if 95% of your requirements are met and if you are 100% sure that your requirements won’t change or scale substantially in future. If this is not the case, then you will end up spending more money and time in implementing off-the-shelf product than custom building as per your requirements.
For custom software development, you must select a company that has the implementation of security, error handling, notifications, document management cms, persistency, search, workflow etc. kind of architectural mechanisms already implemented in the form of reusable services. Such a company will be able to build your software solution fast and in a very cost effective way by reusing these architecturally significant services in your application.