Software technology has undoubtedly been a boon to business productivity over the past several decades. Companies have streamlined data collection and automated workflows. They have access to more information than ever before, along with powerful analytical capabilities that drive valuable business insights.
What’s even better, – technology continues to improve at a rapid pace. Two decades ago, integration and customization were difficult and expensive. In fact, with many applications, these things were impossible just a few years ago. Fortunately, the industry has evolved to offer better, faster, cheaper, and more powerful ways of tailoring software to fit the unique needs of your company.
One very important shift in that evolutionary trend is the transition from software customization to configuration. There is an enormous difference between the two, in terms of initial implementation expenses, ongoing cost of ownership, and the capacity to adapt to change. Let’s explore the concepts of customization and configuration to better understand the differences.
What does Customization Look Like?
To understand customization, it’s helpful to begin with some basic concepts. Most modern software includes something called “application programming interfaces” (APIs). These are essentially the set of instructions that are available to computer programmers, enabling them to customize the software and integrate it with other applications or data sources.
In order to customize software, you need a programmer who has a knowledge of the programming languages, database technology, and other aspects of the foundation upon which the software is built. Those kinds of skills are broadly available, but they can be relatively expensive. There are additional skills required, though, – namely, each programmer must then learn the specific APIs for the application you want to customize. That implies a learning curve, and generally speaking, you’ll either need to pay programmer for that on-the-job learning, or you’ll pay a higher price for someone who already has that specialized expertise.
When the people who need customizations start working with a programmer (or multiple programmers), they will first need to document and communicate their requirements. That, in turn, opens the door to miscommunication or gaps in the process. Very often, business users will express what they need, only to discover later that there were one or two more things that they simply didn’t think of initially. This kind of process often leads to the feeling that “I wish we could just do it ourselves.” (Spoiler alert: With configuration, you can do it yourself.)
Once the code is written, you have to test it. Very often, something turns out not to be working quite right. Did requirements get communicated properly? Was there something the programmer didn’t consider when they wrote the code? Errors are virtually inevitable. That means you’ll need to test for unforeseen problems, document them, and communicate any issues to the programmer(s). After edits have been made, that process needs to happen all over. All of this can be very time-consuming, and therefore expensive.
To top things off, customization often makes it more difficult to upgrade to a new version of the software. Although software companies generally do their best to avoid “breaking” customizations with the changes they introduce a new version, – it’s virtually inevitable that it will happen for at least some of the company’s customers. What does that mean to you? The upgrade process becomes a bit more challenging. There needs to be a testing process to ensure that nothing has broken as a result of the upgrade. That, in turn, usually means setting up a test environment in which to try out the new version and make sure your customizations still work properly.
What Does Configuration Look Like?
Now let’s explore the concept of configuration. Perhaps it’s best to illustrate this by example. Years ago, I worked with a business application that in many respects was ahead of its time. It enabled its customers to create simple customizations to streamline the application and make it easier to use. One of the simplest possible customizations was renaming a field. If I wanted to change the “Project ID” field and instead all it the “Job Code”, I would need to engage a programmer to write a fairly simple snippet of software code that would automatically change the name of that field whenever a particular screen was loaded. Those changes would then need to be installed on every workstation that accessed the software.
A few years later, I was working with a competitive product that took a very different approach. Their system allowed an administrator to change the name of the field simply by double-clicking on the field name (e.g. “Project ID”), entering a new value (e.g. “Job Code”), then clicking the “Save” button. That person didn’t need any specialized technical skills. No programmer was required, and the process of rolling out the change to all of the companies users was automatic. That’s configuration.
Configuration is quick and simple. One person can do it, and that person doesn’t need any specialized expertise. If something isn’t quite right, it’s easy to change.
Following the onset of the COVID-19 pandemic in 2020, there has been a renewed focus on his agility and adaptability. Companies need to be able to pivot quickly and adjust to new circumstances. Changing a business process, or adding a new business process, should be easy. Configuration gives you that. Customization does not.
Comparing Customization & Configuration
Let’s review how customization and configuration differ when it comes to real-world impact.
• Initial implementation cost is much higher wherever customization is involved. Many software vendors will deflect questions about whether or not the software can deliver certain features that their prospects need. They do this by replying that the software can easily be customized. Unfortunately, customization is rarely easy, and it inevitably adds cost to your initial software implementation project. If your software vendor cannot show you how to make the changes you need, that might be because it involves considerable time, effort, and expense.
• Business agility is more important than ever in today’s rapidly-paced global economy. How quickly can you adapt? With customization, every change to the software constitutes a project, with at least two participants, and often more. Changes take time. It will often be the case that “nice to have” changes will never get done at all because they are simply too involved, requiring too much time and expense. Configuration, in contrast, can generally be done quickly and easily by one person, with significantly less opportunity for error.
• Upgrades are significantly more complicated when you have customized your software. With customization, every upgrade requires thorough testing and a dedicated test environment, as well as potential code changes to those customizations. Configuration changes, in contrast, are designed around a stable core, without custom programming that could potentially break something.
• Total cost of ownership (TCO) is much higher for software that requires customization. This is a function of all three of the previous points, – higher initial implementation costs, slower and more expensive changes to the system over time, and a host of potential upgrade challenges.
At Intellect, we have made extreme configurability a core tenet of our QMS software. Our aim is to deliver quality management software that can quickly and easily be adapted to fit the way you work, rather than forcing you to fit your business processes to the software. With Intellect, you can get exactly what you want, without a team of programmers on staff.
To learn more about Intellect, to schedule a demo, or to talk to one of our QMS specialists, contact us today.