Occasionally I get the question why I like open source. I actually overheard a colleague (long time ago), claiming to a customer that “open source is better because we can change the source” (with a mocking intonation – but maybe is just how he speaks).
Let’s face it, number one attractor to open source is price. No licenses to pay, direct financial benefit. While I like this argument, this is not important for me directly. That is a cost for my employer, not directly for me. A lot of people like the philosophy of open source, sharing, advancing the state of software for all to build on. I also like it, but the sharing-advancing is only partly true. It is often hampered by technological choices or preferences (I want product X but it has to integrate in my Y environment).
No, the biggest selling point for me is access to the source code. Mind you that a product does not need to be open source for this. Some closed source companies (like atlassian) provide access to the source for their product and thus offer the same advantages. For power users (and admittedly, this mostly applies to systems which can/should be extended or built upon), it is often more interesting to look at the source and see what is happening. This makes understanding the behaviour of a system a lot easier, allows progress to be made faster. In theory, quality support should be able to replace source code access but it is not always easy to reach the people with the knowledge you need at support. And no, support can not be replaced, any product is worthless without documentation and answers to your questions.
For clarity, when I say “access” to the source, that does not necessarily mean any recompilation will be done. The number of people who cooperate in the actual code production will always be small. Luring people to contribute is difficult. You may get the occasional patch as this is in the interest of the developer – maintaining a privately modified version of a project is a lot of work – but don’t count on it. All users are lazy, including users of open source software. The project maintainers will always be the main source for fix bugs, added features and documentation.
To prove my point, I just upgraded a library I use to the latest version. This is a top quality open source product, with many users, good documentation and a quality test suite. Unfortunately, it wasn’t fully effortless, something was not working. I asked the mailing list, but no other users had encountered this already. So I delved in the source code, see what bits were involved (not too many fortunately) and found a solution. Encountering the problem is frustrating, but being able to find a solution is rewarding. Yes, that is why I love open source.