This post is not very technical and sometimes these aspects are just as important as the technical ones. I will try to say a few words about how as a developer the interaction to the open source community can feel compared to the commercial vendors.
Having worked a consultant for commercial vendors for a long time I will refrain for naming specific vendors but I think most work in the same manner so there is room to generalise to some extent.
There are few things that really sets the different worlds apart:
Relationship & Interaction
Most of the time it is very hard to interact with commercial vendors. There are some practical reasons for that. They sell software and issue licenses and unless you have a license or agreement of some kind there is no incentive for them to answer any direct technical questions.
Some have forums you can discuss and get in touch with some of their developer’s but but there is still a distance to be had. What I mean by this is that you can never establish a professional relationship with the creators of a commercial software. There is a long chain of people and bureaucracy to go through before you can get help or get directed to someone who can help you. Usually you have to pay for this. This means that as user of a commercial software I will most likely never establish a direct relationship to the creators of that software. I will have contact with sales people, consultants and perhaps support. There are off course ways to improve this. You could attend conferences, workshops, get invited to beta presentations and similar things but these usually cost a lot and it depends on your employer to allow you this as well.
In contrast I have got the impression that the open source community has a more direct approach. They in fact seem to encourage you to provide feedback, get in touch with the developers and even chat with them and they will help you if you have any issues. One concrete example personally was when I had a hard time installing Apache Decanter after reading this blog post by Jean-Baptiste Onofré http://blog.nanthrax.net/2015/07/monitoring-and-alerting-with-apache-karaf-decanter/. I sent him an e-mail and within a few hours he replied back and we chatted on skype and with his guidance I was able to solve the issue. He was very friendly and supportive and seemed genuinely eager for me as developer/user to solve the problem. I have had similar encounters in the Apache Camel community when I have discussed things with Claus Ibsen and met him in person.
I have also got good response from the RabbitMQ community where the developers there are very active and help out with questions.
In a lot of the other open source communities there is a good community spirit that is shared between them and it is encouraging to see this even among big projects, especially within the Apache community.To summaries, one of the big benefits of community based projects is that it is easier for users to establish a relationship with the creators of the project and this mutual feedback is the key to also developing the project further that benefit both parties.
One of the things I never understood when working as a consultant is the licensing model of the big vendors from Oracle, IBM, SAP etc. Maybe I am not understanding something but surely, if you are selling me a piece of software, you should not care where I am actually run this. You should not care whether I run it in my home PC, at some high spec work laptop, in the company server or in the cloud. Just sell me the software and be done with it! But no no, not only do they care about where you run the software, they care about the intrinsic details of the hardware which in my view is a crazy. I have also seen vendors providing agent software that monitors your usage of virtual machines to see if you are biding by the license or not. Again, why? Yeah, I understand the business goal is to make a lot of money, but surely this can be done without such a complicated and convoluted licensing model which belongs in the 1980’s and not soon to be 2016.
Everything is a service these days. Everything is a subscription. Software is in aspects providing a service and in my view should, if its going to be commercial, be subscription based with an extremely easy model that doesn’t require an phd in Law to understand. Most clients I have worked for have dreaded when it came to license negotiations because it was never clear from the start with the prerequisites were and what the actual price would be. Secondly, another customer could potentially get another price even if all else are equal.
Needless to the say, you don’t experience this problem with the open source community. One of the best aspects is that a lot of companies who develop software and then release it focus on providing extended functionality or commercial support and training. This is perfect because you get to quickly try the software and if you enjoy it can buy support which is crucial for production and get training as well. Another example is docker which is big right now and where you can use the technology as if you fit but if you want more enterprisy stuff like a private dockerhub or other addons you pay for it. But again the pricing is simple to understand.
I will leave this post by saying that I think open source software is making a big impact and a lot of big players like Google, Microsoft and Apple will start to take advantage and probably release their technology to increase their impact and user space.
One thing I really hope is that with the advent of cloud we can finally get rid of these heavyweight licensing models and software as a service can truly be appreciated.
I’ll end on a cool note. This blog was refereed by Apache Camel celebrity Claus Ibsen on his twitter account 😉