COTS vs SDK: 5 Factors to Help you Choose
by Greg Batenburg, on April 25, 2019
It’s an age-old question for any company: should you build your own software application or are you better off buying a pre-packaged commercial-off-the-shelf (COTS) solution? Each option has its own allure. One offers speedy deployment whereas the other promises greater flexibility and control. If you need a real-time voice and video application, choosing between a COTS and commercial SDK can be difficult.
While both software options have their place, here are 5 key factors you need to consider in your decision-making process.
But first, let’s define some terms:
Commercial SDK, defined
A commercial software development kit (SDK) is a set of tools, software libraries and examples provided by hardware or software vendors that may be licensed for use in developing your own hardware and software applications. SDKs usually focus on the client side of an application and are generally comprised of a set of software libraries with well-defined application programming interfaces (APIs), sample code, and documentation. They are designed to allow developers to add complex functionality without being an expert in complex subject matter (like the networking protocols required for video conferencing).
Commercial-off-the-Shelf (COTS) defined
It is important to note that there is some disagreement within the business community on what the term commercial-off-the-shelf really means. While it can be a completely turn-key software solution (ex. word processing software), for the purposes of this article we are going to define it as a software product with a common set of functionality that can be used by customers with minimal setup, but can, for a cost, be optionally branded, configured or somewhat modified to suit unique business needs. Most COTS products serve a specific business purpose such as virtual clinics, online learning management systems, and call centre software.
Factor #1: Cost
Cost calculations for build or buy software decisions are very complex. While COTS software often comes with a lower upfront cost, the purchase price is only one factor. Anyone considering a software purchase should also consider the cost of current and future customizations, software support, licensing fees, and usage fees. It is important to do the math because ongoing costs of a COTS product can exceed that of a customized solution built with a commercial SDK, especially when you are paying for features in the COTS product that you are not using.
Factor #2: Integrations
In today’s marketplace, software does not exist in isolation. No matter your business, your software will need to integrate cleanly with other software and devices. If two programs are unable to communicate effectively, your organization’s productivity will be affected. COTS products generally come with a limited set of software that you can integrate with. On the flip-side, if you build your own application with a commercial SDK, you will have a much broader range of integration options.
If you are considering a COTS product, be sure to discuss in detail the integration capabilities of the software. It is important to consider both your immediate and future needs as you do not want to be locked down to a specific suite of software if another may be more suitable for your business.
Factor #3: Ownership
With a COTS option, ultimately, you do not own the product, the vendor does. As a result, you do not have control over their future development priorities. This means that if there is a feature that you want to add or a workflow you want to adjust, you are at the mercy of the vendor. Some vendors may allow you to pay to have features added but these changes often come at a premium. Depending on your use case and how influential the software is to the success of the business, this may or may not be an issue for you.
When you build your own software with a commercial SDK, you get full control over the product and can develop it in a way that best suits your business.
Factor #4: Features
COTS products are designed to meet many of the needs of most clients. As such, they tend to come with an impressive list of product features directly out-of-the-box. Commercial SDKs also come with a wide array of features and functionality, however, developers will need to do some additional work to build them into the application. That said, you get to choose which features apply to you and which do not. In this way, applications built with SDKs are usually more streamlined and more closely match your business objectives.
While COTS products are feature-rich, they are also at a greater risk for software bloat that can disrupt your business. This commonly happens when application efficiency is de-emphasized in favour of adding additional features. This, in turn, can negatively affect CPU & memory utilization in your hardware and also create distracting configuration options and menu items that are not integral to your employee workflows. If you are considering a COTS product, be sure to assess how well it works, not just how many features it has.
Factor #5: Customization
The last and most important consideration in your build or buy decision is the degree of customization needed. No off-the-shelf solution will perfectly match the way your organization does business. At best, it can only come close. This means that your organization will either need to build your own software on top of an SDK or adjust your business practices to fit the COTS software.
The greater the influence the software will have on the success of the business, the more you should consider building your own solution. A virtual health clinic, for instance, depends on their video software to connect with their patients. As such, using an SDK that has the ability to integrate with existing systems (Electronic Medical Records, medical peripheral devices, telephony systems, etc...) may be the better choice as they will be able to build it exactly how they want.
As a rule of thumb you shouldn’t consider a COTS product that doesn’t contain at least 80 percent of your functional requirements. Even then, depending on what customization is required, developing the last 20 percent could still be cost prohibitive.
COTS software has its place and is worth considering if your current workflows and project requirements match very closely with the product and if the software has been thoroughly vetted. However, if your software is the foundation of your business and you need maximum flexibility and control, building your solution with a commercial SDK is always the best choice.
Need to build a custom video conferencing solution? We've got you covered. Check out LiveSwitch -- the massively flexible, highly scalable video conferencing SDK that can take your application to the next level.