Custom Software: Expectations vs Reality for Businesses (pt. 2)
Previously, in Part I of this series, we discussed the differences between Commercial Off the Shelf Software, or COTS, and Custom Developed Software. Now we will dive a little deeper and look at the differences in Configuration, Customization, and Integration capabilities of each of these types of systems.
Configuration, Customization, and Integration. These three (3) terms are used throughout the software industry and are often confused by the lay person. While all of these will allow for a software solution to be changed and/or enhanced, the changes and enhancements are done in very different ways.
Software configuration is about settings that developers have exposed via user interface and allows the users of a solution to do things such as enabling features, customizing display of data, setting user permissions, and much, much more. Configuration does not allow you to change everything about a solution, rather only the options that have been made available. Both COTS and custom software can have Configuration available. With COTS, the more configurable the solution is, the more features, power, and complexity the solution should have.
With custom developed software, Configuration is typically only provided when business needs dictate them, which means Configuration does not indicate the features, power, and complexity of such a solution. This is due to the nature of custom developed solutions that are designed to meet the business needs rather than relying on Configuration to tailor a more generic solution to more closely fit those needs.
Software customization typically happens in one of 3 ways: 1) Integrated Scripting Support, 2) Highly Complex Platform Editors, or 3) Changing of Source Code. With COTS, the ability to edit source code is not an option. The exception to this would be COTS solutions that are considered Open Source, meaning there is a community that built the solution, and the source code can be changed under the Open Source licensing agreement it is published under. Not all COTS solutions provide scripting support nor platform editors, so it would be something to look out for when differentiating ability to change the solution.
It should be noted that Customized COTS solutions and COTS solutions are not in the same league when it comes to cost and effort. Even small customizations to COTS solutions can incur large timeline increases, significant development overhead, and higher costs due to limitations imposed by COTS solutions. Highly customized COTS solutions can even be more expensive and complex than a full custom developed solution.
Custom developed solutions typically mean you own the source code the solution is developed with. This means you have full control to customize the solution to meet your business needs. While a custom solution can have scripting support and platform editors added, this is typically not done as the return on investment is very low when compared to changing the source code. This means you can customize the solution as much as you want.
When it comes to software, integration refers to having external software communicate with the system to either pull or push data. How interactions are done is dependent on the platform the software was built on. For example, web versus desktop versus mobile. Integrations are typically used to extend functionality of one system by using prebuilt functionality from another system. This can be seen in a scenario where your software is used for managing projects and you want to extend it by integrating with an accounting system to track costs and produce invoices.
While both COTS and custom software can have integrations, not all systems are designed with integration in mind. Many COTS solutions do not offer integration capabilities and custom software needs to have integrations built from scratch. This means if integrations are crucial to your business, you will need to consider the options and costs associated with either COTS or custom software solutions.
Commercial Software Pros & Cons
- Typically, very configurable
- Shorter implementation timelines
- Limited to no customization capabilities
- Customized COTS has long implementation timelines
- Highly configurable solutions typically have high up-front consultation and implementation costs.
Custom Software Pros & Cons
- Highly customizable
- Provides a competitive advantage due to uniqueness
- Longer implementation timelines, when not compared to Customized COTS
- Configuration capabilities can increase TCO
In Part III, I will discuss the true Total Cost of Ownership when talking about COTS and Custom Software.