Is open-source the right choice for your project?
· 5 min read
Every day there are hundreds of new open-source products hitting the market. Picking the right product, or deciding whether or not open-source is even the best decision is becoming more and more difficult. To help guide your decision, we're going to break down open source into a non-comprehensive list of benefits and potential issues. We're pared this down to what we believe are the most important and key elements.
There are many different types of open-source products out there. Most are completely free to use, whereas others can charge a small fee for additional features to help keep the project up and running. If we use an example of PDF generation, there are many paid enterprise-grade out-of-the-box solutions. Some of the sticker prices on these products can quickly climb into thousands of dollars per year on licensing fees. On the flip side, there are a growing number of open-source products that enable a DIY-approach to PDF generation, such as hosting a free product on your own server architecture. In a case like this, it is extremely important to have a clear idea of what the final product should look like so that your team can identify any additional costs required to support an open-source piece of software.
Perhaps one of the greatest benefits of having access to such a vast selection of open-source products is the opportunity to validate an idea with only a small amount of development budget. We find that making the time for this step with our partners ends up saving quite a substantial amount of time and money for everyone involved. Our "validation project" usually ends up evolving into our final deliverable. If this isn't the case, we've at least identified that we need to focus our time on integrating either an entirely custom solution or begin investigating pre-existing paid products that meet all of the needs of our partners.
Generally speaking, well-established open-source products are very flexible and customizable. Pairing tools together has never been easier than it is today, and many products are backwards compatible with many different systems and environments.
Most open-source projects boast an MIT license for long-term peace of mind. It's always important to check the license agreement before you integrate any piece of software into your project, though.
As the development cycle begins, it is inevitable that software engineers run into issues or bugs when integrating the project. Unlike enterprise products, open-source projects typically do not have a direct line of support. With that said, the open-source community understands that engineers need to work together for the sake of keeping projects alive that can benefit everyone. Very rarely are there scenarios where an open-source community will fail to address an issue or work together to solve it.
It's extremely important to evaluate the author(s) behind open-source projects before you commit to using them for the long haul. Large companies have been wading into the open-source space for many years now. Typically these projects are the most stable and have the most opportunity for growth and future support. That's not to say that they're immune to having the plugged pulled, though. There are also communities of open-source developers who manage large projects under a team-driven structure. These projects are also less likely to die off. Most open-source projects that end up losing support are those managed by one or two independent developers or smaller software firms that have a change in direction.
Since most open-source projects require some form of custom integration, very rarely can non-technical individuals troubleshoot or seek support if things go awry. This is wholly dependent on the type of software being used, however, and is not always the case. There are many great open-source products out there with very good free, non-technical support assistance.
Open-source frameworks and libraries typically have a very specific way they need to be integrated and used. Technology moves very quickly, and what is modern today can become obsolete tomorrow. This can potentially make finding future software engineering resources difficult if you choose an open-source platform that isn't widely used or known.
No piece of software is ever fully immune to vulnerabilities. With that said, open-source products can sometimes have hundreds of dependencies on other projects or sources of code which could lead to security issues. The likelyhood of a major issue occuring from using an open-source product is extremely unlikely, but not unheard of. As with any piece of software, always make sure you keep everything up to date and evaluate how the product could potentially use data or gain access to something it shouldn't.
Deciding whether or not to use an open-source product can be a difficult decision to make, and should not be taken lightly. It can either end up saving you thousands of dollars or potentially costing you more. At Stack Five, we love open-source and believe that it is a fantastic resource that should be leveraged as much as possible. If you need assistance estimating or evaluating a product integration, we're here to help. Reach Out To Us and we would be happy to set up a time to chat and help you future proof your product.
Stack Five is a React and NodeJS consulting company that strives to push the boundaries of the web and build meaningful things. If you're looking to create a cutting-edge web application or need software engineering resources for your project, please contact us.