Custom Software vs. Off-the-shelf Software
September 08, 2022 / Katarina Rudela
Reading Time: 10 minutes
Software can become outdated just like any other business tool, often as the result of an organization’s requirements outstripping the capabilities of its existing system. This occurrence can adversely impact the software’s control, functionality and speed, causing a domino effect on project deadlines and overall business performance. Once a company decides that it needs new software, the next step is usually choosing between paying to develop custom software and buying commercial-off-the-shelf (COTS) software.
Your organization’s requirements should be the driving factor in this decision. If these requirements are truly unique and not merely a variation on those of many other businesses in your industry, custom software may be the only practical option. However, custom software also requires a capital expenditure (CAPEX), whereas the pricing model for enterprise software is usually an operational expenditure (OPEX) in the form of recurring licensing fees. Future prospects and long-term business objectives are also factors to consider when choosing between a solution that can easily adapt to changing needs and a one-time solution. Making the right choice on this decision is thus paramount to keeping customer satisfied and remaining competitive.
Software development is particularly sensitive to technological trends and is often an early adopter of new technology. For example, it shifted its focus from mainframes to websites beginning in the late 1980s as well as mobile apps in the early 2000s. Software development is currently adopting a variety of other technologies, according to a 2021 survey of software developers by GoodFirms. The following chart shows these trends in greater detail:
Fig. 1: Software Development Trends Survery
Artificial Intelligence (AI) is the strongest trend in the above chart, with about 69 percent of respondents reporting that that AI is a driver for their clients’ software requirements. Common software applications for AI include business automation, chatbots, machine learning (ML) and smart assistants.
Blockchain technology is the next highest driver of software development, with around 56 percent of respondents citing it as one of their clients’ driving factors for new software. These developers often build prototypes demonstrating the use of blockchains for social and economic organizations.
About 47 percent of respondents are adopting the Internet of Things (IoT) in their software. These applications often run on wearable devices that provide users with assistance in their daily lives. This growing trend will allow IoT developers to continue writing code for edge devices that enhance user experience.
Additional technologies receiving additional responses in the GoodFirms survey include big data at 31 percent, cloud computing at 29 percent, artificial reality (AR) and virtual reality (VR) at 27 percent and cyber security at 24 percent.
Transition to Custom Software
The rise of cloud computing has strongly favored the use of custom software. This transition moves core business functions closer to external customers and also increases the requirements of internal customers. Both customers and employees have higher expectations of the technologies they work with and greater demands on the value they provide. As a result, software is increasingly likely to have a direct connection to revenue, giving companies a stronger incentive to maximize profits with custom software.
Traditional waterfall-based methodologies are often unable to keep pace with the rate of changes in today’s operating environment. The increasing use of software to generate new business models and products means that developers of custom software must use agile methodologies to reduce implementation time. This capability is essential for ensuring the software can be delivered to the customer before its capabilities become obsolete.
Many COTS solutions are ready for users to integrate into their existing infrastructure right out of the box. This process isn’t necessarily immediate but it rarely takes more than two weeks, which is insignificant compared to the time needed to develop software from scratch. COTS is the best choice when you need a quick solution, assuming it also meets your other requirements.
The time needed to implement custom software depends largely on its scope and complexity. Implementation time is particularly sensitive to changes in scope that occur during development, a process commonly known as scope creep. The methodology used to develop software is also a significant factor in determining development time. For example, the traditional waterfall methodology divides the creation of software into distinct phases like requirements, planning, design, development, testing and deployment, such that each phase must be completed before starting the next one. This regimentation of tasks is much less rigid with agile technologies, resulting in a shorter implementation time than with the waterfall method.
The typical time frame for implementing custom software ranges from one to nine months, according to the GoodFirms survey. The average is about 4.5 months, although the variance is quite high. The following chart breaks down software implementation time by percentage of respondents:
Figure 2: How Much Time it Takes to Develop a Software
Note the variability in respondents across implementation time. Only about 8 percent of responding developers claimed to deliver software with basic features in less than two months. A significantly larger portion of 38.5 percent of respondents deliver software within two to three months, with a majority of 62 percent providing an average development time of four to six months. Another 11 percent deliver software in 6 months or more, although this category likely includes developers who also provide ongoing maintenance and support. These figures total well over 100 percent, indicating many respondents selected more than one category.
Pricing is also a significant factor to consider when choosing between custom and packaged software. Enterprise COTS is usually available through a monthly subscription, which can be preferable in some cases. However, the ongoing OPEX can also pose a prohibitive financial burden.
A Customer Relationship Management (CRM) provides a common example of the pricing differences between customized and generic software. Assume for this scenario that an organization needs a new CRM system to improve its sales and plus boost profits. This organization can buy one of the many CRM COTS solutions already available or invest in developing its own solution. Developing a custom CRM solution is a large, complex project that can cost over $200,000, depending on its scope and specifications.
Salesforce is currently one of the most popular CRM solutions currently available. Its cost ranges from $25 to $300 per user per month, depending on the specific version. Assume for this example that your organization needs the Unlimited Edition of Salesforce, which costs $300 per user per month. Assume also that your organization's sales team has 30 members, resulting in a cost of $108,000 every year.
In comparison, custom software involves making an up-front investment. It may also require a separate maintenance fee, but this is generally quite small in comparison to the licensing fees that an enterprise typically pays for COTS. The cost of developing custom software often ranges between $3,000 and $120,000. Furthermore, respondents in the GoodFirms survey reported that pricing is highly dependent on factors such as the base technology used and the features that need to be integrated into an organization's existing systems. Additional pricing factors include the following:
- Brand recognition
- Code quality
- Developer experience
- Project duration
The average cost of developing custom software is $36,000, according to the GoodFirms survey. This figure assumes basic features and utilities, but doesn't reflect additional costs such as extended support, maintenance and upgrades. The following chart provides pricing information for custom software in greater detail:
Figure 3: Custom Software Development Costs
About 46 percent of the respondents claim to develop basic software for less than $20,000. The most common price range was between $20,000 and $40,000, which included over 61 percent of respondents. Complex projects typically cost between $40,000 and $60,000, according to over 38 percent of respondents. Over 23 percent of respondents offered projects costing more than $60,000.
Flexibility is another major difference between custom software and COTS. Commercial software can only provide standard features that meet the needs of the majority of customers, so it may be unsuitable for customers with unusual requirements. In the case of custom software, customers describe their specific needs to a dedicated team of developers, ensuring the final product does exactly what they needed to. Furthermore, custom solutions allow you to continue improving the product, whether it’s to fix bugs or add new capabilities. It’s often possible to use the original development team to make these changes.
COTS has limited flexibility in this regard. Commercial developers do release updates on a regular basis, but they decide when this occurs rather than the customer. As a result, updates for COTS are often spaced further apart than customers would like.
The quality of support you receive isn’t particularly dependent upon whether the software is custom-made or COTS. While COTS software routinely provides customer support, most custom software developers also offer an option to provide continuing support after delivering the initial product. One factor to consider is that you are the only customer that a COTS developer has. In this case, the developer typically requires multiple complaints about an issue before attempting to address it. For custom software, customers often get a faster response since the developer doesn't need to consider the needs of other customers.
Software quality is more dependent upon the particular developer rather than whether the software is custom or generic. Choosing the right developer requires you to consider a number of factors, especially what other customers say about them. Online reviews of software developers are readily available, so you can easily gather this information from current and former customers.
In the case of COTS, you know exactly what software you are getting. Most vendors offer trial versions of software, allowing you to evaluate it at no cost. The license for trial software typically expires after a reasonable evaluation. In some cases, trial software has limited functionality instead of an expiration date. For custom software, you can't evaluate the actual product, so you need to focus on the vendor. Look for a developer with a long history of delivering quality software to multiple customers.
Scalability is often a factor that organizations should consider when choosing between custom software and COTS, especially those that expect to grow quickly in the foreseeable future. Custom software is generally easier to scale up and down than COTS, since it will include the exact features you need. You can also ask developers to add new features at any time as your business grows. In the case of commercial software, the solution routinely includes features that are completely irrelevant for your organization. Furthermore, it may also lack features that you need.
A number of use cases exist that favor COTS or custom software.
The most common scenarios for selecting COTS include a need for fixed expenses. COTS solutions have more predictable pricing because the cost is usually a flat monthly fee or a fee based on resource usage. Furthermore, developers can defuse this cost across multiple customers, resulting in a lower overall cost. In addition, COTS developers generally assume responsibility for maintenance and upgrades on their products. COTS software that's a good fit for your company's requirements is also a good reason to consider this type of software, especially when you have observed it working successfully under real-world conditions. Custom software poses a greater risk, since you can never be completely certain about the final version's capabilities.
In some cases, there simply isn't any COTS available that meets your organization's requirements. The ability to completely customize software means that you can implement features and provide user experiences that no COTS offers.
Custom software can also be a better choice when your business process has a strict workflow that you can't change. This acquisition method can cater to your particular operating environment, as the developer can design it to eliminate your organization's unique workflow challenges. Assuming the software is properly designed, it can provide a nearly ideal solution for a business problem. In comparison, obtaining the maximum benefit from COTS solutions almost always requires users to change their workflows.
Another scenario that strongly favors the use of custom software is when your core business includes the creation of new software. A software development company routinely develops software for its own use because it typically less expensive than either using COTS software or paying another developer to build custom software. Software developers also have the in-house resources needed to maintain and update the software. This approach still requires the significant time investment of custom software, even when a company’s own developers are doing the work.
The choice between custom and COTS software depends on factors such as the type of business. An industry where companies use similar business processes favors the use of COTS, which will tend to implement the most popular features for that applications. However, organizations with highly specific requirements are more likely to benefit from custom software that can meet all those needs, especially if they can afford the up-front investment. On the other hand, companies that need to spend money as OPEX instead of CAPEX often have little choice in using COTS. The need to implement a solution quickly can also make the decision to use COTS an easy one.