Note: This post is part of a series of blog posts related to Jebraweb's "This I Believe" statements. You can read about them in our first post, "Welcome to Jebraweb."
When I tell my clients that I utilize open-source content management software with some extensions to run their web sites, most often I am met with blank stares. There are so many pieces to unpack from that garble of tech geekspeak that I had to come up with a good metaphor to describe it. Fortunately, I have both degrees in creative writing AND eleven years of parenting experience, so I came up with just the right metaphor for the modern-day business owner or non-profit manager:
Recipes. Let's pretend, for a moment, that the delicious chocolate cake on my counter right now is your web site.
OK, stop drooling.
That cake was made by a very fancy bakery, and it's delicious. It's the perfect simple chocolate cake. Right out of the bakery box, it has almost everything you need. It's the backbone of your next party.
In our metaphor, the recipe for your cake is your content management system.
Now, you love this cake, but you think it could be improved with some raspberry filling. Someone tells you that you can order it from the bakery that way, but you have a friend who is a great baker, and you'd like to hire him to make a raspberry version of that cake for you. What you need is the recipe for the basic cake, so you can start with something that you know works, and tweak it from there.
Stay with me, here: on your web site, the raspberry-filling is an extension.
Now, here's where you'll see the difference between proprietary and open-source. Let's pretend that the fancy bakery's recipe for chocolate cake is proprietary, the opposite of open-source. That means that the recipe is by no means free -- they're going to charge your friend for it. After all, they did take the time to develop this recipe, paying someone in their bakery to do a lot of trial and error to get it just right. They want to recover those costs.
However, it's worth it to you. This is one fabulous cake! So, your friend pays the bakery for the recipe, and here's how that recipe comes to them:
The bakery did provide a basic version of its recipe. However, pieces of it that would allow us to reproduce the cake are limited -- we don't know what's in the chocolate sauce or the oil blend, or how to tell how they prepare it in the store, or how we know it's done. In the world of proprietary software development, this is how a company maintains control, by limiting the developers to only pieces of their complex layers of "compiled" code. Just like in the recipe, this changes what can be done with the software and what programmers can do with their extensions. In this scenario, you really are better off buying the cake pre-made from the bakery. You'll never be able to reproduce it enough to make the raspberry filling worth your effort.
Life is different in the land of open-source development. Open-source software isn't "owned" by anyone, and it isn't licensed in a way that hides pieces of it from developers who want to extend it further. The recipe is freely available online, with all of us free to use it however we like. So...let's make an open-source cake recipe, shall we?
In this recipe, we have all the information we need. We know every detail of the ingredients, their sources, and the process we need to use to make the cake. With this information, we can reproduce the cake AND act on our own expertise to make the changes we want. We can share the recipe with our baker friend so that she can combine her knowledge of fruit fillings with this information and deliver to us, at whatever rate we agree is fair, the perfect Open-Source Chocolate Cake with Raspberry Filling.
This creates an economy on a whole different level, which is why I am so strongly in favor of using open-source software solutions. When the basic recipe is available to the whole world, absolutely anyone can be an innovator, from the big corporate bakeries to the dad making cupcakes for the school bake sale. New ideas for making that recipe better, different, altered, augmented -- they serve everyone. Who doesn't want better cake? And what dedicated baker doesn't want to be a part of that innovation?
In the world of software development, the other advantage is in the network that naturally develops around open-source software. A company can go out of business or stop supporting a piece of software, but when an enormous community of developers are all working together on building, maintaining, and adding features to the system that is running your web site, it's unlikely to go away. Working together on something they believe in really unites these developers, and for them, this is a volunteer effort on a scale that few of us can imagine. You can read more about the "real" definition of open source software at http://opensource.org/osd.
But you know what? Let's just go get some cake.