In this world of "Open Source" it’s amazing how many software offerings completely die because the one author on the planet that cared about the code has lost interest and no one else seems willing to maintain it. The concepts behind OSS go beyond software toward philosphy and changes in the way we work. And unless people subscribe to these principles I don’t think the model can continue to work effectively, if at all.
We have the open source software but few developers or businesses (in my community anyway) take it upon themselves to hire/contract anyone to actually look at the code or maintain it for their own needs. I can probably count on one hand how many developers I know who are willing or able to change a line of PHP or C code. I am constantly reminded that Open Source as it’s generally consumed is more about "freeware" than it is about "liberty".
Some people think I have issues with OSS itself but my problem is quite the opposite. Because the people who use OSS don’t respect it themselves the model doesn’t work like it should so we all lose. I predict in the next ten years we’ll see major shifts in how the OSS world operates. We’ve already seen shifts toward the fee-for-support model, there are a lot of developers more aggressively offering services for their OSS or others rather than freely contributing directly to projects. What we’re seeing is that developers don’t mind opening their source but they would like to get tossed a bone once in a while – a note of gratitude, a dollar for support, or a contribution to code or even documentation. If they aren’t getting any respect, just a lot of people downloading and taking advantage of someone else’s generosity, then eventually developers decide they need to get paid to work on code – this project or another one, doesn’t matter, but they’re either going to get respect and help or they’re at least going to get compensated for their time. This is evident in a lot of OSS projects that haven’t had a change posted in some number of months.
People forget that there is no such thing as a free lunch. If the software is cost-free then we should be paying something for it with our time for the greater good. If you don’t have time, volunteer a couple bucks to the authors to help pay for the cost of their website. Unfortunately there’s no threat looming over our heads that compels us to contribute time or compensate developers of fine freeware. We’re all a little spoiled – if one FLOSS project dries up there will always be another. So user loyalty for any one project is fickle – "yeah we like you as long as your code is free but if you disappear we’ll find someone else". This all contributes to the axiom "You can get it fast, good, or cheap – pick two." Every time I think about that (reminded by my buddy Mark Brown usually) I picture the triangle of logic and how it so accurately describes the reality of development. If you get your software for free it may not be good. If it is good you may not get updates fast – and you may not get updates at all because some employer snatches up the good developer and starts paying them for their time.
This discussion reminds me of the notion of mandatory public service. In some countries you spend some amount of time in the military or other public service as your contribution to society. It’s the way the citizens give back to the community in exchange for benefits like education, healthcare, and security. Open source is sort of the same – in order for the model to work people need to give back a little something. Well, they need to but many don’t. People can’t continue to just "take" forever or the model will morph into something very different. I won’t say the model will die but eventually the idealism that software should be free=liberty needs to balance with the reality that the people who support the model are human beings who need to get something for their trouble. "More open source" isn’t enough. Not all OSS is good and not every developer who is a staunch supporter of OSS wants to spend his/her time modifying someone else’s code just so that they have a stable stack for ongoing development and usage.
I’m sorry that these comments don’t follow a natural progression, but it does seem that one topic spawns another, so let’s go with it.
I think the concept of free/no-cost software is in large part a by-product of the free/liberty model – it’s not on the face of it the pure intent of the model but more of a natural consequence. It’s tough to charge for software when the source code is in front of you and it’s so easy to take with impunity. Rather than fighting this, open-sourcers choose to just give it away. The alternative is to have an entire industry consuming resources to figure out how to recover revenue after someone has taken their source code without paying for it. Sure, no-cost software benefits people like developers who can’t afford to pay high costs for their own tools and utilities, so for these people who are just trying to write code the no-cost model is simply amazing, wonderful, a gift from the heavens. But when these guys get their no-cost software and develop tools for others, we need to follow the concept up the food chain. Eventually their code gets used by someone who is making a profit, running their business more effectively, or living better in some way due to someone else’s efforts – someone else who may still be struggling to pay for rent or school. So this notion of no-cost software needs be managed so that the people who provide it are "somehow" compensated, monetarily or otherwise, so that their interest is preserved and so that they remain motivated to continued the effort.
In some cases we see developers snatched up by large companies. For some developers this is their real goal – get a good job by proving how well they can code and manage projects. For some projects this adoption process is good for everyone, and we see that the companies who adopt developers and projects do so with the intent of charging for services so that they can compensate the developers and make a profit. These companies do for the developers what they are unwilling to do for themselves, which is to apply a business model to the free/libre model. Again, it’s for this reason that I expect to see more of this in the future and we will find ourselves somehow paying for those killer apps that we all love.
I think I could go on about this but the points are made.
- Support your local geek.
- Don’t assume Open Source means software is completely without cost.
- Offer your time for "something", whether QA, or documentation, or editing grammar and spelling in someone else’s docs, or just trying software to see how tough it is to use and then sharing the experience with people who are motivated to improve it.
- When you sell a solution that involves open source code, budget something into your selling price so that you can kick it back to the author(s). Sure this increases the consumer cost by a couple bucks (euros/quid/yen) but it helps to ensure that we will still have that software (and improvements) to use and sell in the future.
- Don’t hide behind the excuse that your offering needs to be as cheap as possible, otherwise your clients won’t buy it. Tell them that you support open source and compensate developers for their open source efforts and people should appreciate it.
OK, now that I’ve written up a storm here, I gotta go – I need to sell some software and pay the bills around here…