I was recently asked to explain Open Source software. I’ve always been a big fan of Open Source because it has been an invaluable helper on a number of occasions. In fact, the interior of The Ultimate PC Primer was produced entirely with Open Source products — OpenOffice for composing the manuscript and final page layout and Inkscape for all the illustrations. As an explainer, however, I can understand why software newcomers might be a little confused by the concept of Open Source.
In The Ultimate PC Primer, I liken software to a recipe: a set of specific instructions that, if followed, produce something usable or consumable. The recipe is called source code. Find any recipe and you’ve got the source code for that particular food item. Normally, source code is not something a software vendor publishes. After all, the recipes of restaurant chains and popular commercial food products are big secrets. No one would imagine Coca-Cola freely giving away their recipe. Likewise, most commercial software source code — the recipe of the computer program — is also the core of the vendor’s business. So when you first tell someone that with Open Source software the recipe is freely available, you might get some puzzled looks. Why would someone give away the secret of the secret sauce? This doesn’t make sense to those who grew up and worked in the non-software age. In their world, you would never publish blueprints to your products openly, let alone for free.
You see, it’s not so much an explanation of Open Source software that’s needed. The class of software itself isn’t significantly different from any other. It’s the philosophy, attitude, and model behind Open Source software that needs to be explained to those who usually think of software like hardware (or any hard product.) It’s about contribution, collaboration, and helping to make something possible (or better) that might not otherwise be possible without offering a wider community the ability to lend a hand. It’s like more like volunteer work than commercial labor. To return to the food analogy, if traditional software is like paying to have a meal catered, Open Source software is like pot-luck dinner. Got cooking skills? Feel free to bring a dish to pass. No skills? Lucky you. In most cases, you’ll still get to partake of the goods because others are sharing their time, facilities, and expertise for the benefit of all.
I could go on with more analogies and explanations. For instance, it’s completely possible to use both Open Source and traditional software at the same time — for the user to benefit from both. After all, you could bring come Coca-Cola to your pot-luck dinner rather than making lemonade from scratch. But I’m going to wrap up this post… because I’m suddenly quite hungry.
In closing, if you’ve had to explain Open Source software to others, what examples, correlations or analogies have you leveraged?