When choosing software to run your business, for your own safety, it may be wise to avoid creating dependencies on other companies. Those dependencies create specific types of risk that can lead to undesired consequences down the road.
Off-The-Shelf Software Dilemma
When choosing an off-the-shelf software package, you do not own the product in any way, shape or form. This means you do not have control over its future. It may do what you want it to do now, but there is no way to know for certain what it will turn into later or how long it will last before being sold to another company or simply discontinued.
We had a customer years ago needing quick help to build a custom ERP solution after having used another popular industry-specific off-the-shelf product for many years that was abruptly discontinued. The product was purchased by another company who then immediately discontinued it and tried to force its clientele onto another completely different (and expensive) platform without giving them much time to come up with an alternate solution. While we can hope that most companies will not resort to this type of unethical behavior, it does illustrate what can happen when you don’t control the product you use.
Aside from that extreme example, other common complaints include:
We had a customer years ago needing quick help to build a custom ERP solution after having used another popular industry-specific off-the-shelf product for many years that was abruptly discontinued. The product was purchased by another company who then immediately discontinued it and tried to force its clientele onto another completely different (and expensive) platform without giving them much time to come up with an alternate solution. While we can hope that most companies will not resort to this type of unethical behavior, it does illustrate what can happen when you don’t control the product you use.
Aside from that extreme example, other common complaints include:
- Unwanted changes to your product are suddenly forced through, sometimes causing disruption to your business.
- You may want specific changes that you can never get approved. This means you are not free to change anything within your company when you’d like to. Any major changes within your business may require a completely new software package.
Custom Software Can Be Better, but...
By commissioning your own custom software, you can stay in better control. You can change the product whenever you’d like, and you won’t ever be subject to unwanted changes. There are still some things to watch out for, though.
3rd Party Tooling Within Your App
It’s a good idea to try and limit any 3rd party tooling being used within the app. There can be a tendency to try to plug in pre-built components into your app to save some time and money. Sometimes this is still the right thing to do, but some of these tools are so simple that it may be easy to build them yourself so you aren’t subject to the same problems described above with off-the-shelf software packages, albeit on a smaller scale.
A while back, we were using a popular database technology internally within some of our custom software applications we’d written for various customers, and one day that technology was purchased by a large firm to be used internally and was taken off the market completely. This left our customers in an emergency situation and they needed quick help to adapt.
A while back, we were using a popular database technology internally within some of our custom software applications we’d written for various customers, and one day that technology was purchased by a large firm to be used internally and was taken off the market completely. This left our customers in an emergency situation and they needed quick help to adapt.
Maintainable Code
The quality of the source code is another critical factor that is often overlooked. Custom software should be clean and architected in a way that makes it easy to maintain/change later when you need it to. How to accomplish this as an architect and developer is a large topic that has been evolving for years. There are literally thousands of books that have been published over the last many decades on this subject and the best technical people will always be looking for further improvement. It’s an important aspect of quality that ensures any future developer will be able to easily pick up and continue working on the platform when needed. This reduces the risk of being locked into a single development firm and allows for smoother transitions if you decide to change providers.
Source Code Ownership
Another thing to make sure of, is that you retain the ownership of the source code itself. We still occasionally have customers find us after paying quite a sum of money to another company to develop their applications, only to find out later that they didn’t own it and would have to pay much more to get their hands on the source code. This has led to many legal battles, so before starting a new project with a development firm, be sure to check the fine print. If you discover the clause that does not give you ownership, run for the hills. This is a relatively common, although disdainful and underhanded practice that says a lot about the firm.
If you follow this advice, you will always have the option to move on to another development firm in the future for any reason whatsoever. You may also want to bring the development in-house someday.
If you follow this advice, you will always have the option to move on to another development firm in the future for any reason whatsoever. You may also want to bring the development in-house someday.
Conclusion
Custom software solutions offer numerous benefits that help businesses maintain their independence compared to off-the-shelf software. By owning the source code and ensuring maintainable code quality, businesses can avoid unnecessary dependencies and retain control over their software. Consider custom software solutions to enhance your operational flexibility and control, and to stay ahead in your competitive market.
About Latitude 40
Latitude 40 integrates experienced on-shore software development professionals into your organization, forming collaborative teams with or without your existing developers. Together, we identify needs, create tailored software solutions, and instill best practices that drive continuous improvement and ensures agility.