A lot has been said in recent years about the relative merits of open source software (OSS) vs. single-vendor, proprietary software. The sheer volume of discourse is owed in part to the disparate groups involved in the discussion. Business leaders trying to build empires are arguing with radicals trying to change the world, who in turn are cajoling project managers just trying to ship on time. I maintain that, politics aside, for most software projects, some level of openness makes good business sense.
The reasons for selecting openly specified platforms, patent-unencumbered technologies, and open source tools are numerous and unequivocal. They range from vendor flexibility to security to support to life cycle self-determinism—and finally, to total cost of ownership. Let’s look at each of those in turn.
Using openly specified, interchangeable software when available for necessary system components frees projects from the perils of vendor lock. When the services offered by your database layer can be duplicated by any of a number of databases, you have greater flexibility in dealing with your current database vendor. When your Web server provides a standard interface for your hosted application that can be offered by many competing hosting solutions, you’re free to switch if licensing, support, or defect issues arise.
When you’re running a single-platform, single-server-solution system, you don’t have the flexibility to move on if the situation warrants. You’re stuck with nonportable code and are forced to deal with whatever bugs your chosen system includes. This lack of flexibility limits project direction and greatly increases the likelihood of project failure.
Open source tools offer greater security than their proprietary counterparts. Sadly, after years of discussion, and example after example after example, there are still those who will dispute that statement. They wrongly point to the increased security defect reporting rate for open source software and equate this to a greater overall defect rate. Instead, it shows greater security consciousness within the open source development community than within the proprietary software community.
Closed source software has been responsible for all of the recent major software worm outbreaks. Proprietary software proponents would have you believe that a larger installed base makes them a juicier target. However, you only need to look at the Web server software space—where the quantity of open source software greatly exceeds that of proprietary software—and the mayhem caused by Microsoft’s Internet Information Server and the Code Red worm it enabled to see the holes in that theory.
Proprietary software companies perpetuate the myth that they offer support in exchange for money. As anyone who has called their cruelly named help lines can attest, what they offer instead is an agonizing blend of tedium and cluelessness billed at a per-instance rate.
Open source software is written by people who love writing software. They’re excited about what they’re doing and are working actively to hasten its adoption. Open source user communities are characterized by their helpfulness and sense of empowerment. They understand that more users mean more product support and greater overall product quality. These traits result in mailing lists, discussion forums, and e-mail exchanges whose level of detail and responsiveness cannot be matched by an uninterested, work-a-day customer support staff for any price.
Those who insist on paying for support will find no shortage of organizations that offer support for open source software in exchange for fees both small and large.
Even more laughable than the deplorable quality of expensive proprietary software customer support is the notion that using proprietary software is preferable to the use of OSS because “There’s someone to sue.” A quick scan of the End User License Agreements foisted upon the consumers of proprietary software should quickly put the notion of legal recourse for project failure to rest.
Life cycle self-determinism
Software companies are in the business of making money by selling software. Customer service charges, as exorbitant as they are, serve only to help defray the costs of providing support; they are not a profit driver. At some point in a commercial software product’s life cycle, its manufacturer must, for financial reasons, stop offering support for the product. Those using the product have two options: They can upgrade or they can deal with whatever new bugs are discovered in the future. In contrast, those who choose open source solutions have at all times the option of contracting someone to correct or improve the software they’re using, assuming, of course, that the original author is no longer maintaining it for free.
Total cost of ownership
Everyone knows the initial purchase price of software is a small fraction of the total expenditure over the course of a product’s use. That open software is free to evaluate, install, and run certainly contributes to its significantly lower total cost of ownership. Additional monetary savings can be found in the free support that open source software provides. Even more cost efficiencies are realized when looking at project staffing. Open source software, free for home use, provides a ready pool of experienced subject matter experts with a proven love of the tech. Proprietary software does draw its share of true experts, but it also suffers from a glut of practitioners who code only for their paychecks and know only what they’ve been forced to learn. Hiring genuinely skilled developers allows for smaller staffs and less time spent on product defects.
Not a religious war
Writing open source software isn’t a religion, and it doesn’t make sense for every project. However, using other people's open source projects for your platform and tools whenever possible simply makes good business sense.
The other side of the coin
You can read the paid license software counterpoint here.