Commercializing Open Source Software
CowboyRobot writes "Michael Karels, system architect for BSD 4.3 and 4.4, has an article on ACM Queue about the challenges in trying to make money from open source software. From the article: 'As users of the software, open source contributors have certain common interests in making the software stable and usable.' but 'When additions require modifications to the base system, there may be resistance to incorporating the changes.'"
Many have tried, a few are succeeding, but challenges abound. Introduction
The use of open source software has become increasingly popular in production environments, as well as in research and software development. One obvious attraction is the low cost of acquisition. Commercial software has a higher initial cost, though it usually has advantages such as support and training. A number of business models designed by users and vendors combine open source and commercial software; they use open source as much as possible, adding commercial software as needed. They may use open source software as a central component of a product or service, but use other components to add value, which can then induce customers to pay for the offering (obviously, it is hard to compete with free software on price).
After a brief overview of the salient differences between open source and commercial software, this article will describe several basic business models in today's marketplace to highlight ways that value is added to open source software and services. For the most part, I will discuss only complete software systems sufficient for some useful purpose, such as network servers, which include an operating system and its associated components, any applications needed for the system's purpose, and necessary local configuration information. Many of the same principles apply to components such as applications and other software packages.
Open Source Development
The development process for open source software is often quite different from that of traditional commercial software. In some cases a single author or a small group may develop and distribute a program or system. Successful software often attracts additional developers, however, and larger projects generally require larger teams. These teams tend to be distributed, with participants in different locations and with different affiliations. Some members may contribute their own time; others may be paid to work on the project. Some projects develop infrastructure such as a consortium to coordinate the project; others work with a looser organization. In either case, projects are likely to be organized with less central control than in traditional software development. Some projects may have a strong central figure such as the initial author of the software, but many other projects have "outgrown" central control.
This less-centralized structure affects the development process for open source projects in several ways:
* Community support is often available via mailing lists associated with a project. Response ranges from rapid to nonexistent.
* Projects may have many volunteer contributors. Their abilities and availability can vary significantly.
* In terms of quality, Darwinism applies. Some software features may be added while the project is still incomplete or experimental. These features may eventually be removed or replaced, or they may be improved over time. The addition of features and other modifications is driven by the interests and wishes of the contributors (including companies that pay staff to extend open source software). As users of the software, these contributors have certain common interests in making the software stable and usable. They may have substantially different uses for the software, however, as well as different ideas about how the software should be engineered and extended. The direction taken by the software developers may be driven by those who have the most time to devote to development or by those with the greatest tolerance for the discussions on mailing lists for the project. When different groups design and implement the various subsystems, their architectures might not have similar or compatible styles.
* The open source process is inherently social and political. Group leaders spend as much time on organizational matters and conflict resolution as on technical issues. When members cannot agree, the groups sometimes split into different factions. This may result in pot
Agreed, 100%.
Anecdotal evidence: I was involved in a proprietary project where we were using a GPL app (ezsetup). As part of creating a Windows CE installer, it links a GPL'd self extractor stub against your application in a single exe. We were uncomfortable with this and offered the author money for a non-GPL binary license, i.e. just a license to use a non-GPL version of the exe, not any rights over the source.
He refused.
More specifically, he couldn't understand our problem. "You're OK to use it under the GPL," he said, clearly puzzled. Well, sure, until he, or his widow, or estate, sold the rights to SCO or Generic EvilCorp or Mattel and they started asking why everyone using it wasn't GPL licensing their "derivative versions". We simply could not make him understand that we'd rather pay him money than dilute our IP portfolio by taking the risk.
The outcome was that we wrote our own app, and ezsetup guy didn't get any reward for his efforts. Perhaps that's unusual, but it gave me a very bad impression of the GPL developers. He put principle over pragmatism, which would be a fine thing if his principle wasn't blinding him to the problems with the license that he was putting so much faith in. Sad.
If you were blocking sigs, you wouldn't have to read this.