If you are reading this you are probably facing the same question as the majority of the developers and businesses worldwide - How to minimize the investments in software while getting the most benefits out of it? These days, most businesses that face this challenge will have to choose between two common trends: Open Source and Software as a Service.
- Open source software is a type of computer software in which source code is released under a license in which the copyright holder grants users the rights to use, study, change, and share the software in modified and unmodified form.
- Software as a service is a software licensing and delivery model in which software is centrally hosted and generally operated on a pay-as-you-go subscription-based model.
Even though both choices come with a whole list of benefits (and some disadvantages), I believe open source is a much better way forward for any serious, long term project. Most people are stuck with the idea that the most appealing benefit of going down the open source route is the cost. That it is free. It is definitely one of the crucial benefits, but I would argue that it should never be on the top of the list of reasons to choose open source. And to support this claim, I have laid out the top five benefits of open source that in my opinion make it superior to SaaS.
It is no surprise that a product that has been worked on by a community of thousands of developers will achieve a higher quality standard. And will constantly be challenged to further improve. Without the corporate pressure that SaaS is usually impacted by, the main goal of the community behind the open source project is to provide the best possible solution to a certain problem, rather than the most marketable one. And this especially comes to light when it comes to finding and fixing bugs. As the frequently quoted Linus's Law* states, in it's original, more formal version:
Given a large enough beta-tester and co-developer base, almost every problem will be characterised quickly and the fix obvious to someone.
Which makes a nice segue into my next point...
The most unique advantage of the open source software is the community around it. Gathering thousands of passionate developers with a broad spectrum of expertise between them. When an open source project gets traction and builds a strong global community around it, there is no company in the world that can hire a team of developers big enough to match that strength. And by its very nature, this is a community built on collaboration. So you can heavily rely on its support, whatever issue you might have.
Every software user has their own specific requirements that fit their objectives. So of course it is close to impossible to cater for everyone needs with the one-size-fits-all approach. And this is exactly the compromise that you have to make if you take the SaaS proprietary software route. You are locked in to the whatever the software vendor believes are the features that majority of users need. Which usually puts you in a position that you have to adapt your project to the limitations of the software you are using, rather than the other way around. Open source gives you exactly that flexibility that you need. A well-structured software that solves your main problem, but with an opportunity to completely adapt it to exactly fit your needs. Which also allows for the freedom to expand the code without having to rely on the software vendor to make the change - no vendor lock-in.
With open source, you can know exactly what you are getting. Your team of developers can go through the code and can see exactly what the software does. And how it does it, how it could integrate with other technologies you are using, whether it comes with any potential security risks. The list goes on. The relevance of transparency grows even more when you start thinking about the privacy and data that is going to be gathered once you start using the selected software. With open source, you have total control over your data and how it is going to be used. While taking the SaaS route would require you to accept the vendor set terms for this.
And yes, of course...
Well, there is none. Open source software is free, or at least predominantly free, with an option to pay for additional support in case you might have a need for it. I say predominantly free as there are of course often proprietary pieces of add-on software that have been built to compliment the open source. But once again, this is where the community plays a large role in controlling that the true value the open source provides isn't hedged off. As I mentioned at the beginning of this article, most people will choose this as the number one reason. But I'd strongly argue that without the first four that I've listed, this one on its own really has a lot less weight.
There are of course trade-offs that you need to take into consideration when taking the open source route vs. SaaS. But the fact is that most are directly related to convenience. With SaaS, you are often paying the vendor to do the heavy lifting and sort out the setup and maintenance work. Which allows less technical or nontechnical users to also adopt that software. But unless this is the case and you are a developer, open source is the way to go.
You can check out the Webiny source code on GitHub and join our Webiny community on Slack to find out if I was right about the no.1 benefit on the list.
Webiny Slack community
References: Linus's law