Rob Walling makes basically one very good point in his post “How to Compete Against Open Source Competition,” and that point is this:
Open source software is free if your time is worth nothing.
He illustrates this idea by pointing at the Gimp, Zen Cart, and contributed Perl and PHP modules (if I’m understanding his point about modules that don’t come “out of the box”). Each of these takes a long time to install or to learn, and can cause a ton of problems if you’re not careful. So, the crux of his argument is that open source products aren’t really free, in that they take time to learn or to customize (or make you want to burn your eyes out with lye, if we’re talking about the Gimp). Sure, lots of open source projects aren’t set up to be friendly to new users - but commercial software isn’t intrinsically better. It just has more incentive to be better, since the developers get paid when it is. Even the profit motive doesn’t stop the flood of impossible-to-customize, hard-to-install, poorly-developed commercial software, though. That leads me to the following point:
The price on the box for commercial software is only the beginning of what you pay.
And at the same time, there can be just as many hidden costs (akin to open-source’s time cost) with commercial software. As I just mentioned, it can be hard to install and to customize - I’ve tried to use Expression Engine for some things that it wasn’t designed to handle, and it was a nightmare. There can also be costs for the community (supporting a harmful monopoly), to say nothing of the less-visible ongoing support and upgrade costs. All that said, however, I find it interesting that his suggestions for how to compete with open-source work just as well going the other way:
- Save your users time. The most joyful open source software experience I’ve had recently has been installing Phusion Passenger - it’s a one-step install, and it tells you what to do if you make a mistake (forgetting to use sudo, for instance).
- Market hard. Sure, marketing budgets for open source don’t really … well, exist. Nevertheless, the web gives us plenty of free marketing options. Make something awesome, put it on GitHub, and tell everyone you know about it. Post to Reddit, to Hacker News, anywhere it might be relevant. More often than not, truly remarkable work will spread.
- Focus on Features for Your Demographic. The best open source projects tend to rely on a small group of focused commiters, even if they accept contributions from a wide swath of developers. If the core team is afraid to say ‘no’ to features that don’t fit their vision - or if their vision is entirely abstract and divorced from real needs, you’re going to get a project that doesn’t work for anyone. Good open source work needs just as much focus on providing value as a successful startup does - which is to say, a lot.
The bottom line is that software needs to be better, regardless of whether it’s open source or commercial. Everything we install or use has costs, be they cash, time, or stress. The goal is to minimize those costs as a whole; the balancing act between the different types of cost is up to each of us.