Over the years that I have been in the software development profession, I have watched solutions evolve dramatically. The progress has gone from code to libraries to frameworks and now configurable systems. However, there are trade-offs to consider when you look at a configurable system instead of one that allows for customization with code. This is becoming a more common dilemma for businesses. Thus, it is good to look at the pros and cons of each approach. Here are some points to consider when measuring configuration vs. coding.
The Power of Configuration
Let’s start with the positives a configurable system brings to the table. Configurable customization is where software of all sorts is heading. Part of it is likely due to changing interfaces and keyboards becoming relics of the past. However, there is far more value included. I have found that the most significant value companies place in these systems is the lower cost of maintenance. A configurable system constrains how changes are made. Thus, it is easier to test those options thoroughly. You also are less likely to have typo related issues. The inputs can be highly constrained and validated. For example, a drop-down selection item is not susceptible to a typo.
There is also a lower technical threshold for configurable systems. Administrators can often learn all they need to know with a few days of training. As opposed to years required to build stable and scalable code. This approach has the side effect of reducing the number of points of failure in many cases. Less information has to be communicated across departments. Thus, for example, a marketing employee can make changes to the system. The alternative is to relate them to a developer to code. Business users can focus on their business rather than how to communicate to the technical staff.
Coding is Here to Stay
With all that configurable systems have to offer, there is still a level of control given up. The limits that make these systems so powerful also keep them from doing precisely what is needed. A customer is also at the mercy of the vendor for these systems. A required feature may be a long time coming, and critical functions may disappear. These may be worst-case scenarios, but that is enough for many to choose a custom coded solution.
Every business is different, and coding allows for software to be built to precise specifications. Your priorities can be crafted into the software. Then, it can change as your business needs change. There is also ownership of the product to consider. A custom solution is owned by the creator and not a vendor. You can change it as needed and do not need to worry about the future stability of the vendor. Better yet, any problems that occur are your own. There is one place to look for solutions. Thus, no time wasted on support calls to get a response to meet your schedule.
Configuration vs. Coding – The Bottom Line
I could list dozens more pros and cons for each side. However, the decision is pretty simple. A configurable system is the better solution in most cases. One has to recognize that the 80-20 rule holds for these systems. Therefore, configuration is an excellent choice. The configurable piece of the solutions often allows a company to get 90-95+ percent of its needs met adequately while avoiding the costs and headaches of custom software. It also allows you to buy the experience of the teams that created the software. They used their expertise to solve common problems. This may not get you to one hundred percent coverage, but it will provide tested solutions for eighty-plus.
Finally, do not underestimate the value of fixed cost solutions. Your vendor is providing you a solution that is complete. There are no concerns of improper estimates, scope creep, or schedule overruns. Therefore, the focus is on using the solution, not creating one.
Leave a Reply
You must be logged in to post a comment.