Avoiding the Hidden Pitfall of Open Source Software
Quite often, changing something on an open source product is like finding a hot chili stand where the vendor is offering free cups of chili. You take a bite and your tongue is on fire.
“Water! Water!” you scream.
The guy at the counter smiles.
“Sure. That will be $10.”
When integrating an open source product into your project, it’s important to make sure there are no fixes necessary that require you to cover them at any cost.
What makes Open Source
Open source is not free of charge – especially if you need to tailor the product to your specific needs.
Here is what an open source program must offer:
- The freedom to run the program as you wish, for any purpose
- The freedom to study how the program works and change it so it does your computing
- Access to the source code
- The freedom to redistribute copies so you can help others
- The freedom to distribute copies of your modified versions to others. By doing this you can give the whole community a chance to benefit from your changes.
The upside of open source is that you can adapt the product to your specific needs. you can add features, take them away to preserve memory and computing power, adapt them to other software used on your project.
The problem is when you need something. There is no guarantee there will be someone on the other end of the phone willing, or even able to support you.
Open source projects come in two flavors:
Vanilla: The commercially oriented apps. There is a support team available for code review and to make the changes you want. Simply tell them the change, ask for a quote, write a check, and you are good to go.
Like a vanilla ice cream, you can put on any topping and change the appearance of the dish.
Chocolate: They are free. The people, or person maintaining the project is a volunteer who likely has a day job. He helps out a little bit answering questions, but doesn’t have the time to develop a new feature. Even if he did, he isn’t equipped to write a contract, agree to exact terms, or meet any specific company requirements.
Like chocolate ice cream, it’s hard to alter the appearance or change the taste.
Do I Make it My Own?
When choosing an open source project, you must ask yourself:
- Do I need to make changes to the product to suit my needs?
- Will I need to make such changes to suit changing needs?
If you will need custom work, it is a lot easier to use a developer on their team who knows the nooks and crannies of the source code, than to hire a developer to start from scratch.
A greenhorn can cost up to ten times more.
This is why it is so important to make sure an open source project has the capacity to add or change features if you need them to.
There are three simple ways to make sure:
- Look for a pricing page. If they are selling their product, they are likely looking for any which way to keep growing. They will be willing and able to meet custom requirements on demand and offer code review services.
- Look for a paid support page. This page says in a nutshell: We exist to serve your every support need for the right price.
- Ask them. Reach out to them once you download and include custom features they can offer as part of the onboarding process.
Oren Eini is the CEO of RavenDB, a NoSQL Distributed Database that's Fully Transactional (ACID) both across your database and throughout your database cluster. RavenDB Cloud is the Managed Cloud Service (DBaaS) for easy use. He has been blogging for over 15 years about coding using his alias Ayende Rahien.