When to build custom software and when to buy COTS (commercial-off-the-shelf) software?
Whether to build a custom software on your own, or buy COTS software that is fitting your business to great extent. In fact, many manufacturing industries face this difficult question while implementing IT projects like MES, regardless of whether they are large industries or small industries. They will be in a dilemma to determine which option to choose. However, it’s not always clear what the differences are between these two implementation paths. Furthermore, while good COTS systems can be fairly expensive and incur ongoing costs, custom built software, after the initial investment, can actually turn out to be cheaper and great solution in the longer run!!!
Every industry has its unique business needs and not every COTS Software can fulfill all their needs. On their way to boost productivity, industries continuously innovate and improve their business processes by leveraging best-in-class technology solutions to develop customized business applications. At a point, every business is stuck to choose between Custom software and COTS applications. Hence with this blog, we will get deeper into the roots of custom software development & buying COTS software, with an elaboration on the pros and cons of both.
Speaking specifically of the Software development industry, the reason for lagging behind could be “Customization” possibilities in the software they develop. Many industries these days consider customization as top priority. Long years ago, Software development was considered as a method to improve the efficiency of business against their administrative employees putting long tedious hours in handling tasks manually and paper based. Now that the times have changed but the agenda is still same. In manufacturing industries, software solutions have been found as enablers for digital transformation and process automation. Therefore, softwares are implemented to improve the efficiency of the industry using two types of software development methods – Custom Application Development and COTS software solutions that serve the purpose of business.
What is custom software & why organizations go for it?
Custom Software is a software which an organization develops on its own – tailored as per the business needs. organization will development custom software either using its in-house IT team or by oursourcing to 3rd party software agency. In-house software development will generally be made to restrict 3rd party software agencies from reselling it. Custom software development process is aimed to serve a particular set of business requirements of a typical industry. In other words, it starts with the basic functionalities and later the additional functionalities are added based on demand by business (likewise new products or customized products development), and this is not possible to handle in COTS so easily.
Most importantly, custom softwares are not developed like generic software or product that can fit multple customer business. The generic COTS softwares can be frustrating at times because of lack of control over generic/customizable/configurable features and functionality development and sometimes it will not deliver impactful results in customer business and this might hinder the overall business performance.
Custom applications are designed in a way that upgrades the current level of application performance and maximizes the output. Their implementation allows businesses to reap maximum rewards from the app developed with customization, offering minimal risks and beneficial outcomes. For organizations with unique or varying needs — Custom Software development is an ideal option and businesses can narrow down their request based on specific parameters such as cost comparisons, usability, need enhancements, feasibility, and security. Not ignoring the benefits that off-the-shelf apps offer, let’s explore why businesses opt for off-the-shelf apps and what benefits it is capable of offering.
Many a times, many customers believe that custom built software solutions have greater benefits due to below reasons :
1) “Must have” & “Nice to have” features
The 80/20 rule is a guideline used by many organizations while considering COTS as a software system for their business. Organizations must evaluate COTS against below 3 categories of features while choosing it :
- Category #1: Features in COTS that exactly match their business requirements.
- Category #2: Features that exist in COTS but requires some level of customizations, which can be made very quickly by COTS vendor either through configurations or by writing minimal code with small cost implications.
- Category #3: Features which do not exist at all, hence requires custom implementation from scratch. This could be done by organization’s own IT team, otherwise vendor of COTS or 3rd party software agency.
Note that, timeline for COTS implementation (including category #1, 2 & 3) should be significantly lesser than customer software development, which otherwise is a serious concern & organization must think carefully about going for COTS. According to the rule, if you can’t find a product that satisfies at least 80% of your business requirements (that includes category #1 & 2), you probably need to think about below 2 points seriously :
- Easeness of customizability in COTS software, who can do this, how much it costs, how soon this can be done etc.
- Develop a custom software by investing more money and time — If customization & implementation of COTS is likely to take almost same time as custom software development, you would get into big dilemma of where to invest money. Of course, custom software development will have lot of flexibility in terms of technology choice, priority of features to develop (based on budget flow) and customization possibility. These are discussed in more detail in below paragraphs.
You might think that COTS software is more secure, but the reality is that widely used software is often a prime target for hackers. A weakness discovered in COTS products is valuable because it can be used in the commission of many crimes. As a result, the more widely used a program is, the more attention it draws.
Custom built software generally gets less attention because no one knows the source code outside of the developers themselves. However, this does not necessarily make it more secure, as most software today is built upon widely used technology that presents a potential path for the determined hacker. Therefore considering security related features implementation using various techniques in the beginning of a project will reduce chances of security breaches, thereby protecting access control.
It’s reasonable to expect that COTS application is customizable for your organization. Many COTS softwares claim they can be customized, but it’s important to evaluate the degree of customization possible in the COTS that satisfies your industry needs. You may find that the customization you need is difficult or impossible to implement, or that the required effort is too great compared to developing a custom solution. If your business requires too frequent customizations in software which could arise due to custom products development, then you must seriously think about who can do this – whether your own IT team (or your software service provider) or vendor of COTS due to “vendor lock” existence in COTS software. Many a times, vendor support is found as very expensive and thereby hitting your operational or running costs very badly.
Because COTS software is built for the mass market, it will become inherently inflexible when customization is not possible to the extent customer needs. As a result, it’s quite common for third-party applications to appear and offer plugin functionality for more niche business processes, or for integrations with complementing software platforms. However, if there’s no third-party plugin to address your specific problem, then you’re stuck. Many a times there exists vendor locking and you will need to go to vendor of COTS for every customization and this will lead to larger operational costs.
Custom software doesn’t have this problem, as changes to the original software can be factored-in during the initial stages of development, or picked up at a later point in time. In addition, because you are already very familiar with your own code, the time to implementation will be relatively easy and quick.
4) Capital and operational costs
Our general perception is that custom solutions always cost more, but this is not correct always. Factoring in ongoing COTS expenses like licenses, upgradation costs, customization costs, specific infrastructure procurement and upgradation costs (as per COTS vendor recommendations) – all these may balance or outweigh the upfront cost difference between COTS and custom software.
For COTS, you will either buy perpetual license by investing huge money in the beginning, or renewed year-on-year, thereby ending up in too much operational costs. You must also think about upgradation costs when vendors builds COTS using new technology. Technology is moving very fast in today’s world, however it is not so easy for a vendor of COTS to migrate technology. This way, many COTS in today’s world are still monolithic solutions developed in classical style programming language.
In case of custom software, you will invest large money and time in the beginning of implementation phase, however custom build softwares will have either smaller operational cost if 3rd party components were used, otherwise zero operational costs, but excluding customization development costs. Anyways we all know that, customization costs exist in both COTS and custom software.
Another important thing is that, since COTS systems typically target the widest possible audience, you may find that you are paying for a lot of features you never use. Depending on the number of unwanted features provided, this could mean additional training requirements and process workarounds for your industry. Most organizations are worried of extensive process workarounds since their total effect can be difficult to predict. In case of custom software, if you have tied-up with software supplier, you will do a cost-benefit analysis and implement only the features that make good sense for your business.
5) Ownership of software
COTS software is essentially rented, not bought – especially with the trend towards software being made available through the cloud. However, should the COTS vendor terminate the product or go bust, customers run the risk of being abandoned, which in turn jeopardizes everything they do, and in some cases has led businesses to pay for extended support for an out-of-date system.
However, with a custom software development project, you would own the product entirely, and could decide how and where it should be implemented. So instead of paying for software per license, you pay for it’s development – allowing you to install it across as many PC’s or networks as you needed, without restriction! In addition, as a bespoke item, it will never get out-of-date until it stops doing the job you originally wanted it to do – so there’s no forced updating whilst you’re happy with the performance.
6) Hardware Efficiency (where software is hosted / deployed)
Typically, COTS vendors will tend to make broad stroke decisions regarding the evolution of their software, which can be user interface (UI) design tweaks that alienate existing users, to puzzling restrictions in previously available functionality. COTS software usually also makes heavy demands on the operating system, requiring the customer to have up-to-date hardware running the latest operating systems – which, for smaller to medium sized companies, isn’t always viable because of the large capital costs involved.
In comparison, custom software is written to support the interface that client prefers, and optimize performance around the customer’s current or projected hardware needs.
Whilst a COTS solution might be quicker to implement, it’s also likely to provide a limited solution to your problem, or force some change in your business administration to shoehorn COTS features to your existing working methodology.
Custom software, on the other hand will, by definition, be designed to fit perfectly around the way your business works, your existing business structure and usage scenario – which in the long term is probably more beneficial than the initial speed of deployment.
What is COTS software & why organizations go for it?
In a manufacturing industry or in any other type of industry, change in business is essential. Therefore, a growing and forward-thinking industry needs to become adaptive to such changes. Organizations in the IT sector embrace technology change because it keeps them ahead with a competitive advantage. Generally, businesses are more inclined to use COTS softwares provided technology used in COTS is also getting upgraded time-to-time.
A good example of custom software development vs a COTS system is the process you go through when shopping for a suit. In this analogy, custom software is similar to having a tailored suit – it’s made from agreed fabrics and fits perfectly. Whereas COTS software is similar to an off-the-rack suit – it’s a mass-produced item that comes in standard sizes, rarely fits perfectly and may not fare well over time.
COTS is also known as Ready-made applications or packaged apps that are already available in the market for use. Examples of such off-the-shelf software applications are Adobe applications, Microsoft applications, ERP systems etc. These types of generalized applications are used for commercial use and sold to hundreds and millions of users. However, off-the-shelf applications are a conventional and simplistic way to address business needs without any hassle.
Due to below benefits, many customers have gone for COTS:
- COTS is relatively affordable in budget and economical for businesses where 80% of its functionality fits customer’s business need.
- If COTS is a cloud-based software then vendor will normally sell it as SaaS where he would charge monthly or yearly basis (with restriction on number of users) to the customer.
- COTS is highly preferred where customization (addition/modification of functionality) requirement is infrequent (vendor of COTS can do) or easy to customize by customer himself in case of very frequent customization is needed.
- COTS is highly configurable and scalable like SAP and Oracle EBS kind of ERP applications.
- COTS customer base is too huge across globe and they are very much satisfied with its ‘out-of-the-box’ features, good support available from COTS vendor across globe, it’s proven as stable/highly scalable/secure.
Custom software vs COTS software - Pros and Cons
To choose among these two, you must carefully study and understand positives and negatives of both in all angles (as discussed above). The reason why we are discussing the pros and cons of custom software development and COTS software is to provide a larger picture for businesses feeling ambiguous in choosing from the two. Below details pros and cons of both, and this might help you to choose one among them.
Pros of custom software development
- As the name suggests, custom software is developed considering specific business challenges in mind and will thrive through all the critical business scenarios with profits. It is designed to solve the problems and will serve the purpose.
- The partner custom software company is always available to support custom software development.
- Custom software can be modified at any given instance as per evolving business changes.
- Other than just developing once, this customized application can be enhanced during the evaluation phase and for more feasibility of the application, you can add features to the existing application.
- Custom software offers a superior user experience.
- Integration with external IT systems is easily possible and feasible for all custom-developed applications.
- Custom software development can be termed as a one-time investment with no per-user cost and no extra license fees.
- As mentioned, it can be easily modified as per business need. If there is some technology advancements or software upgrades, then it can be easily incorporated in custom software apps.
- Custom software simplifies your regular processes and offers a competitive advantage over peer firms.
Cons of custom software development
- Generally, cost of investment in Custom development is higher than COTS.
- Developing a custom application from a third-party will make businesses dependent on them. However, in such case, reliability of 3rd party in market is very important to consider.
- Thorough testing is required to check bugs after each added feature.
- Innovation takes time and so sometimes it may cost you higher than the estimated time and budget.
- If you want a quick fix to a specific business problem, then developing a customized app is not an efficient option. Many small or large complexities should be addressed through custom app development or else it would turn to be a costly investment.
- The biggest roadblocks one can face in custom software development depends on the kind of business or third-party company you choose to outsource. If the chosen custom software development firm has less expertise, then the developed app will be inefficient and unproductive.
- Higher time invested and delayed the process. There can be situations where the technology vendors support you 24*7 and with their conceptual understanding, you may resolve issues faster and easier. It’s how you choose your development partner.
- There wouldn’t be any ownership rights, even if there is a minute issue, it needs to be taken to the third-party app developer to resolve.
Pros of COTS software
- COTS is comparatively cheap and easy to run. Means, it is relatively inexpensive and affordable to buy and implement.
- Minimum training cost and approachable community support.
- Simpler to use, easy to maintain, sophisticated and secure.
- Saves time, money and resources on product development & testing.
- COTS does not require resources to spend time on training as it comes with a manual easy to understand and decode.
- Trusted packed products are used and implemented by many online and you can also check for more options of similar types of products, their rates, and reviews online.
- COTS is universally accepted and so in case of any glitches or barriers, there are industry experts readily available to help.
- User manuals are easily available online.
Cons of COTS software
- Packaged COTS softwares are risky to use because of the hidden costs involved. Initially, you may feel it is a one-time investment which it is not. It comes with a recurring cost that involves customization cost, up-gradation costs, etc.
- Not all off-the-shelf apps come with modification options and hence it hinders the growth of the organization and it will become technically laggard.
- Off-the-shelf is the same system used by the competitors and so it is equally challenging to gain a competitive advantage.
- For instance, if the application is upgradable and is upgraded too with new features and functionalities but now if it isn’t compatible with the existing browsers or Operating systems then the upgradation will demand some extra costs for advancing the systems.
- In case of requiring support, the response time may vary for each individual depending on the community approached for help.
- Very little scope for innovation in Software development.
- Since COTS is developed keeping a mass audience in mind, many of the functionalities of COTS may not be useful for specific users.
The decision to make or buy is multifaceted and complex because all ramifications can never be fully foreseen and all the advantages and pitfalls cannot be predicted when the choice is made. When the matter comes to determining whether to build custom software or buy COTS, some industries choose combination of both. Rather than assuming the solutions are mutually exclusive, a better way to view the two possibilities is on a spectrum where choosing a solution that utilizes the right amount of both options sometimes foreshadows the likelihood of success. Therefore; sometimes it is impossible to choose between only using COTS or creating a custom software because some level of both methods is required to set up a working system in some industries. Setting the dial at the precise point on the spectrum between COTS and custom development is the best way to ensure success of software implementation in an industry.
Last but not the least, the decision to invest in COTS software is never as straightforward as installing and turning the “ON” switch. The implementation of most COTS softwares today requires a significant amount of efforts for its configuration and integration with other IT-OT systems in manufacturing industries.