Why Open Source Software?
What is Open Source Software (OSS)? OSS is any program, application, Operating System that is released along with its source code so that you, the user, can change it at will. Or at least have the option to utilise the services of a vendor of your choice. The fact that any other type of Software exists is itself strange: would you buy a car that is completely sealed off from repair? No access to the engine, the tail-lights, wind-shield wiper? Even the tyres? One and only one Company - the manufacturer of the car - will be able to fix even the smallest problem. Would you buy such a vehicle? Forget buying, given the current competition in vehicles, such a product would not last in the market for a week!
The fact that people are selling you Software that you cannot take to another person to fix, re-package, assist in providing even basic upgrades is in itself wrong and the discussion should end right here, IMHO. But that is a whole different topic and best left to camp-fire discussions; we have neither the will nor the where-whithal to turn an entire industry on its head. Let us rather focus on the only alternative today, Open Source, and understand who should be using Open Source Software and why.
Let us try and answer the following questions:
Why should Companies invest in Open Source?
Why should Programmers invest time in helping Open Source projects?
Why should non-tech user bother with Open Source?
Companies: Why should companies invest in Open Source Software? Simple: the latest, cutting-edge work happens here and Open Source is rapidly becoming the most security-sensitive, reliable and cost-efficient way to build Software applications and tools. Not saying there is no room for custom software; they 'still rule the roost in large, Enterprise level applications. The key reason is probably because large enterprises are fine with status quo, don't mind spending oodles of $$ on their Software. More importantly, it works for them, which is actually just fine. But in the long run, a better system always wins, and OSS *will* help build better Software. [Side note to OSS devs out there: sometimes the "run" is so darn long it seems interminable; hang in there: 20+ years ago *nix was just a very cool idea that didn't have much of chance of surviving except in large systems and application and look at her now!]. It is a matter of time before the gap between custom software and OSS becomes just too wide and companies will be forced to take the OSS route. The fact that Microsoft has gone Open Source in a big way, Android is (purportedly) Open Source and a huge slice of the cloud runs Open Source is no coincidence.
So, other than some of the larger Enterprise level applications, Companies are well-advised to invest in OpenSource, perhaps for no other reason than to invest in the future. To the HR folks out there: Do you have a person in your company who delivers superb code at will? she walks around with all sorts of stickers on her laptop, speaks a tongue that doesn't even sound English, goes on week-long 'hackatons' that you have to put up with because she's so good? Put her on an OSS project and you just bought yourself the best retention policy!
Another somewhat disturbing trend which is difficult to comprehend are Companies that survive almost exclusively on OSS but don't allow their developers to contribute actively. What is with that? How does one justify simply picking things for free and never paying back?
Speaking just for our Co. we are about 30 devs using LAMP stack and a CMS. If i were to pay for, say, a paid CMS, paid infra, that would be a *minimum* of, 30(100+200) USD/month, not to mention 'training programs' that cost a bomb. Shouldn't companies at least pay back a tiny fraction of this, both in cash as well as in developer time?
Note: the 100(paid CMS) and 200/dev for paid infra (*SQL, Compilers, IDE, etc) is from random search and may be completely off; point being, there is real cost involved in running a s/w development Co. using custom software.
For the Co.s out there with 2,000+ "Software Engineers": Considering that we have possibly the largest IT work-force as a nation, we're doing frightfully little to foster OSS talent. One suggestion: Create an Open Source lab in your large office, with a fat server running OSS, terminals and lots of coffee (poison of choice during weekends will be a huge help). Have one HR and one Senior Architect employed *specifically* to run the OSS program and enable OSS contributions. That is all it takes to build a smart Engineering work-force. Not to mention the next generation of Products and IP.
Developers: As a developer, you should seriously consider helping out with OSS project in your spare time. Why? Simply, *it_is_fun_*! Imagine hanging out with a bunch of like-minded folks on IRC discussing (mostly) the current political situation and occasionally some really nice code that you just put out. There is no better way to hone your skills than to get on a platform that has the best of the best who'll discuss the problem with you, help you way more than your peer in the next cubile! You'll be pleasantly surprised at how friendly and approachable the architect, mega hacker of your favourite software turns out to be. They've all been there, been a newbie, asked inane questions, got flamed, etc, etc. Most importantly, a huge number of them are *really* keen to impart what they know and allow someone else to improve upon their work.
So, rather than simply looking for answers on your favourite search engine (you're duckduck'ing already, right?) consider posting answers to question you can - you'll be pleasantly surprised how much you know! - contributing tiny bits of code when you find a bug, simply correcting grammatical errors in a API document, etc; every little bit counts!
In the very near future (if it isn't here already here) as a developer, your resume will be your github/gitlab/open-source-repository-of-choice handle. You will be known by what you have delivered to OSS very, *very* soon. At gai, anyone with a fat set of commits on d.o will be an automatic hire. NB: Mountaineering will be an even bigger hiring pull, but we digress :).
Build your resume on OSS in your area of expertise and you will be richly rewarded.
Non-tech users: It this even possible? A lay person using Open Source? No way, impossible! It is too geeky, too buggy, impossible to install and maintain!! Not quite; all this was true maybe 10 years ago, not any more. OSS is now ubiquitous and chances are, you're anyway using it without even your knowledge. For ex: Firefox, OpenOffice, etc, etc. Case in point: my 80+ year-old father started using computers a few years back, mainly to play online chess. He uses Linux desktop (and doesn't even know it!) installed 5 years ago that he's merrily using 'till date. Other than occassional upgrade whenever i visit, the box is working just fine and he's perfectly happy with it (except that i've never managed to get Flash working properly on the browser)
OSS needs non-tech "I Just Want To Get The Job Done!" users more than any other kind. By actively using OSS you will be doing the community a huge service. Paid software may be available (and better) than OSS, but i can practically guarantee that you'll get better 'service' for your problems on Open Source platforms than on most paid programs. Why? Because someone out there is doing something she loves, closed source Co. *pay* support staff and their time & money is limited, whereas there are *tons* of people who are giving their time for free to make their Software better and better. In the 30+ years since OSS became a movement, literally millions of people are supporting it. So, you are in good hands!
Open Source Software is really important to safeguard your right to use Software products like any other product in the market. There is a real case for people and Organisations across the board to use OSS.