“Build or buy?”
It’s a common question in business:
- Do we build a new factory or office building, or buy an existing one?
- Do we build a product or technology from scratch, or buy a startup company that’s already doing something similar?
- Do we develop and promote senior leadership from within (build), or hire outsiders (buy)?
The same question comes up regarding enterprise software systems: Do we build a custom software solution from scratch, or do we buy commercial off-the-shelf (COTS) software? If the latter, do we customize it to meet our specific requirements?
It’s important for a business to choose the software path carefully. Software can represent a major investment in time and money. Making the right choice can mean the difference between seeing a return on that investment and writing it off as a loss.
Today we compare the pros, cons, and risks associated with each choice.
COTS software is designed and developed for distribution to many different customers. To make it attractive to the widest possible market, COTS development companies try to include as many features as they can. They strive to avoid turning it into “bloatware” (loaded with sets of features only narrow segments of the market will actually use).
COTS developers have to strike a balance. They must include enough features to entice customers to buy, but including too much may dissuade customers. It can have too many features customers don’t need.
Many COTS companies solve this dilemma by modularizing products: Every customer buys a “base” product that has the foundational technology and the most commonly used features. They can then select one or more specialized modules to meet the needs of specific market segments.
In addition to these models, some COTS products have APIs (application programming interfaces) customers can license. These APIs enable customers or third-party developers to customize the COTS software to meet specific needs.
All clear on that? Good—here are the pros and cons of COTS:
- Because many customers are buying the same software, the COTS company’s costs are spread across many customers. This lowers your costs and may reduce startup expenses.
- Most COTS products are sold either on a subscription basis (The subscription price includes support and updates.) or with a maintenance option as an add-on cost. Either way, when something goes wrong there is a dedicated technical support team you can rely on to diagnose and fix the problem. The technical support team can draw on its extensive experience; it’s rare a problem comes up they haven’t seen before.
- Startup costs for COTS can be highly favorable when the product meets all a customer’s needs without the need for customization. Complex enterprise software will likely still need some setup and configuration, but if no development is needed, the implementation cycle can be much shorter.
- A COTS product locks you into a relationship with a particular provider. If that relationship turns sour, your only real option is to dump the product and start over with a different COTS product or a custom solution.
- Depending on the product’s complexity, setup and configuration can be time-consuming and expensive, almost as much as a customized solution. If customization is needed, the development work needs to be planned, funded, and executed as a custom development project.
- Finding developers with expertise and that product’s API may be difficult. You might end up hiring a developer and paying that person to attend training or spend several weeks learning the API.
- For COTS products with APIs, the product sometimes isn’t architected with customizations. If a new version of the product changes the API, any custom code could stop working properly (or at all) when the underlying product is upgraded to the new version. Well-architected COTS products are designed to minimize or eliminate this problem.
- Some COTS development companies “sunset” older versions of their software. After a certain date they will no longer provide support or updates for a specific version. This forces customers to upgrade to the latest edition, for which they might not have the time or budget. Sticking with the older version comes with risks, especially security vulnerabilities.
- Some COTS products don’t have APIs. This forces you to buy something that doesn’t quite meet your needs, or another product that includes features you’ll never use. This can be the case even for modularized software. (Another alternative is to buy something that’s not quite what you need, and develop a separate, custom solution to fill the gap.)
Custom software is designed and built using your requirements and specifications. Some custom software is developed by in-house software teams. Some are developed by external consultants or contract software development shops.
Custom software has its own advantages and disadvantages:
- Custom software can be designed with a future roadmap in mind for implementing the new and enhanced features you anticipate.
- Custom software can grow and evolve with your business.
- Custom software is designed and built by a team that (ideally) understands your business model, what you’re trying to achieve, and the problems you’re trying to solve.
- You own the source code, so if your relationship with the original developer ends, a new one can take over.
- You pay for and get only what you need.
- A 100% custom software solution may not be cost-effective in cases where a comparable COTS product is available that meets most of your needs.
- Because you are starting from scratch, a custom software project may take longer to implement than an equivalent off-the-shelf product.
- Custom software typically does not come with any ongoing technical support beyond a “hypercare” period immediately after the initial launch. If technical support is provided, it often is available only during the provider’s business hours, which may not be the same as yours.
The Bottom Line Is…the Bottom Line
Ultimately, the choice of build or buy comes down to cost. For any major software investment, it pays to look at both options and to get multiple proposals for both COTS and custom solutions. Because a COTS solution may have a custom component to it, this option should be considered as well.
Some questions to ask when making the final decision include:
- For customizable COTS products, does the product architecture support version upgrades without impacting the custom code?
- What is each provider’s reputation for quality, service, and support? Honest, independent feedback from actual customers is invaluable here.
- What is the time horizon for this solution? That is, how long do you expect to be using it? A shorter term implies a smaller investment is warranted.
- What is the total cost of ownership for each option, including licensing, setup and configuration, and ongoing maintenance and support?
Modern enterprises rely on their software systems to run the business and make informed decisions. The choice to build or buy a major software system cannot be taken lightly. It requires intense, careful evaluation of the available choices. Armed with good information gained by detailed due diligence, you can make the right choice and get a solution that will serve your needs, now and in the future.