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.
Pros and Cons
- Typically, very configurable
- Shorter implementation timelines
- Highly customizable
- Provides a competitive advantage due to uniqueness
- Limited to no customization capabilities
- Customized COTS has long implementation timelines
- Highly configurable solutions typically have high up-front consultation and implementation costs.
- Longer implementation timelines, when not compared to Customized COTS
- Configuration capabilities can increase TCO
Read on in Part III, where I discuss the true Total Cost of Ownership when talking about COTS and Custom Software.
About the author
Chad Ross is a Senior Business Analyst with our User Experience & Design practice and is based in Edmonton, Alberta. He is a seasoned professional with 17+ years of IT related experience and has knowledge in both the technical and business aspects of technology. He is an avid science fiction fan and enjoys seeing how sci-fi has introduced new technologies which have also become realities. From Star Trek communicators (mobile phones) to Artificial Intelligence, he is excited to see what advancements are yet to come. Connect with him on LinkedIn!
About the artist
Jennifer Forth is a freelance Illustrator from Edmonton, Alberta. She works mainly digitally but enjoys working in a traditional art medium from time to time. Her work is generally of the fantasy genre and she enjoys seeing where her imagination will take her.
For this piece she writes, "I just let all of the things I think of when it comes to software and computers flow onto the canvas and just let myself have fun with it."