I posted my first question on Linkedin Q&A service and I have to say the speed and quality of the replies are wonderful. So the question went like this;
Is a closed source solution with good APIs a better approach than an Open Source solution?
I went on to explain;
Would you rank a “closed source” solution with a great set of easy to use APIs on the same level as a good Open Source solution?
So for example, let’s say your company needed a blog. You could go and download any number of Open Source blogs and customize it to your company’s needs, or you might spend money on a proprietary blog system that forces you to do things a certain way, or would you rather a closed source (still a proprietary) solution that “out of the box” had you do things a certain way but also offered APIs that allowed you to build you own interface or feed your blog to another solution?
Here are a couple of the great replies I got back:
Having access to the source code is fantastic, since it gives you a great way to – in theory – take matters into your own hands and diagnose any issue, and extend with any feature, you so wish. If you’re in a large corporate environment and you need to build in a custom extension to make it acceptable to your users (eg. integrate with your company’s proprietary SSO solution) then this can be invaluable.
I think most times the decision will come down to supporting the application and overall cost. Sometimes bigger business needs to have an expert to call when things go south. In smaller businesses, sometimes you wing it.
Each solution has its place. You just have to make that decision in the best interests of your business and your goals.
Its not a question of open or closed and its definitely not a question of Hosted versus SaaS. Its about whether the solution is component based, tailored, scalable and replaceable.
For instance if you opt for a closed solution with really great APIs – that works so long as everything you need to do has been anticipated by the API provider. Unless you use a standardized api (like open-social) or an api that is so dominant that the market provides good adapters to standards (like Facebook ) you will always be dependent upon the development and deployment plan of the closed system you’ve selected.
I think you actually answered the question yourself, Eric. In my experience, the answer to this always comes down to the two main points you mentioned. Do you NEED the flexibility of an OSS solution? If you have the resources, and the need for true customization, then OSS is always a great option.
Regarding patches and security, a well maintained OSS project with an active community and a wide install base is generally going to be ahead of the curve when it comes to bug fixes, etc.