In the era of software product modernization, businesses tend to look at the feasibility of COTS (commercial off-the-shelf) vs. custom software development, and strategize on the best course of action based on the required effort, cost, time to market, and other relevant attributes.
In this article, we explore the optimal strategy for software development based on modern reusable component frameworks, and highlight how it can help control cost and time, and yet provide custom-fit software for any software development need.
In today’s competitive market, an enterprise cannot afford to have the same solutions as their competitors. To gain that competitive edge, an enterprise should create solutions that put them ahead of the rest of the field. Simply put, software has to support innovation that drives growth.
On an economic scale, enterprises are struggling to keep CAPEX & OPEX of software to a minimum. The aim is to minimize effort and maintenance cost.
This is the challenging part. How does one procure said software? Is buying a COTS product the best option? Will building a custom software that matches the required specifications provide the best value?
To answer this, businesses have to establish a complete picture of what they require from the software, and also determine the total cost of ownership (TCO) associated with all options. This may be feasible in case of building software for simple systems, but may not be true for complex business systems, where neither all software requirements nor associated costs are identified beforehand.
2. PROBLEM DEFINITION
Developing software requires ‘make or buy’ decisions for each subsystem, whether to develop a custom solution or purchase COTS product.
Taking the right approach is a critical step in the development process as it affects cost, schedule, maintainability, extendibility, and risk.
- SIMPLE SYSTEM REQUIREMENTS: A custom solution would exactly fit the business need, as one does not have to pay for unnecessary functionality. In addition, the intimate understanding of a custom solution can help in better maintainability.
- COMPLEX SYSTEM REQUIREMENTS: For a complex system, the effort and cost to develop a custom solution can be significantly high and involves risk. Therefore, a COTS product can be a better option here. However, when the degree of reusability is recursive, a custom solution would be more viable than a COTS solution in terms of cost.
- AVAILABLE OPTIONS IF COTS ISN’T A FIT: During requirement analysis, if any of the COTS products under consideration aren’t a perfect fit, the choice is between the following options:
All of the above options have hidden costs and risks. Larger upfront, hidden costs in custom software, cost of customization with COTS products, and modifying any business processes or requirements can all result in additional challenges. Therefore, it may not be viable as a standalone option.
- Building a custom product from the ground up
- Modifying a COTS product with a partial fitment
- Modifying the business processes and requirements
BENEFITS OF COTS SOLUTIONS: Cost and time to develop a custom solution cannot be estimated beforehand; hence it carries a degree of risk, whereas the cost and time associated with a COTS solution are available upfront. In addition, the built-in configurability of a COTS solution for different needs without significant investment in R&D and testing is a big plus.
DISADVANTAGE WITH COTS: Steep learning curve associated with COTS solutions makes them risky, as they require extra time for development and testing involving special training, prototyping etc.
Hence, the ideal solution is to chalk out a middle path that controls the cost and effort required for design, quality assurance, testing, development, and extension of the custom software while ensuring that it fits both the business and IT requirements. These activities dramatically influence the TCO of software.
3. HIGH-LEVEL SOLUTION
A viable solution is to build a tailored, custom-fit software based on modern solution frameworks that is customized via configuration with support for seamless extensibility.
OPTIMA Suite of Reusable Component framework helps develop a tailored software adhering to business requirements with the competing effort and cost similar to that of using a COTS product