Tuesday, March 29, 2005

Why is open source used?

Why is open source used?

One obvious answer is so we can fix bugs ourselves, we have the source, we are techies so we can fix it our selves. But while it may be true that we can, we very rarely do!

I think ubiquity and 'fit for purpose' are the main reasons why open source is valuable.

All successful open source projects have grown from a need, the alternatives are no good!, too expensive or two restrictive, some individual(s) takes it upon him/her self to fix the situation. The evolving new solution, being a good fit for the problem at hand finds a niche; when the itch is common to many the way to scratch becomes popular. In the successful cases, the more popular a solution becomes the more refined it becomes. Ubiquity follows and the solution grows, either to embrace another problem or to become the groundwork for future work.
As a user of a successfuly open source project, the main motivation is to make use of the ubiquity in ones own work, if 50,000 developers are using ant to build their java projects then why don't I.
But will I fix a bug in ant, sure if it bugs me and I can't find a workaround in the community. But will I submit the bug back into the community, probably not. 1) because it takes time 2) because in doing so I undertake a substantial responsibility. I must make sure that all the tests pass, that no backward compatibly issues are introduced, lots of stuff, that a novice at making a fix to an open source project is not familiar with. I can make a suggestion, and the powers that be, thoes with commit access, will decide, but only if the underlying cause is simple and obvious; taking on the responsibly to diagnose, propose and implement a complex fix that is fit for the community is too onerous. Of course doing all of the above is no more that good engineering practice, but it takes time and familiarity, both of which I don't have and cannot easily achieve.
What often happens in my experience is that a fix is used locally, it is made work in a limited environment; however the investment and motivation to filter the fix back to the community is rare.

My point being that having the ability to fix the code is not that important, the fact that the we can get a free working solution to a real problem is the key feature. The free bit in its self is not even that important, we would happily pay, but being free means it is easy to access via a download, there is no lengthy procuring or licensing process. Well I tell a lie, every organisation worth its salt must have a licensing policy around the use of open source. However, for evaluation, the free bit only really makes a difference to ease of access.
That coupled with ubiquity, knowledge that it has worked well for others in a similar environment, are what makes the real difference.
Of course viewing the source does help to understand a solution, but those sufficiently interested to benefit are a rare breed :-)