While open source and proprietary software are similar in one respect—they are both copyrighted intellectual property licensed under certain conditions to users—they differ in many others; these differences make open source particularly useful and appealing to IT organizations. These are the most relevant open source characteristics for enterprise IT organizations:
Development transparency: Open source development is carried out in the open. In most cases, product decisions are discussed extensively on mailing lists or in forums. All code may be examined. Reported bugs are listed and available for inspection. The development process itself is carried out in public, with all code check-ins also available for inspection. It is easy for a software user to ascertain the current state and history of an open source product. Users can easily communicate with product developers to understand their product decisions and offer opinions about the product’s functionality or direction.
Ability to inspect source code: It is often extremely helpful to review the source code of a product to enable better integration with another product or merely to better understand how the product operates so as to ease use in production. Because open source licenses mandate source code availability, it is easy to study the product’s code and learn from it.
Ability to modify source code: Not only is open source code available for inspection, licenses also allow users to modify the source code. Anyone can add new functionality that better meets user needs. Furthermore, the code can be “contributed” back to the mainstream code base, which means that code modifications are automatically carried forward in subsequent releases, thereby reducing downstream maintenance efforts.
Community: One of the most important characteristics of open source, and the foundation for successful open source projects, is community. Community is the combined pool of product developers and users; in essence, everyone concerned with a product. Free and honest communication is typical of community, with many peer user interactions typical of a vibrant community. Users can easily share their thoughts about the product with developers, leading to improved functionality and ease of use. The community also enables “corner case” use cases (i.e., unusual product applications that only a subset of users confront) to be exercised, with feedback about product capability in corner-case conditions directly fed back to developers. Finally, community allows peers to help one another solve problems, offering quick support and knowledge sharing. Community is often an unfamiliar (and uncomfortable) concept for new open source users from the business world, but, once experienced, is viewed as one of the defining strengths of open source software.
Redistribution rights: Open source licenses allow users (recipients of open source products) to distribute open source products to third-parties as part of the license conditions, without requiring permission from the original product distributor; this is referred to as redistribution. Redistribution can be of the original form of the product, or a modified form that contains code modified by the original code recipient. Redistribution enables community growth and also allows product users to create innovative business offerings without having to signal intention to product creators via a redistribution request.
Each of these characteristics is a valuable part of the overall open source license conditions. If an enterprise is using open source to pursue a particular business goal, it will find one or more of the characteristics particularly important, indicating what it should emphasize in its open source efforts.
It is important for IT organizations to understand these characteristics, as they will assist (or limit) the organization’s ability to best take advantage of open source software. For example, if a company is just beginning to use a given open source product, it will heavily rely on the product’s community for help in the early stages of installation and configuration as well as getting the product to operate properly. Community, a core open source characteristic, can accelerate the realization of benefits to a company. By contrast, some open source licenses require that user-modified source code (a derivative work based on the original product) be licensed under the same license as the original product. This clearly limits the ability of companies to create proprietary products from previously open source-licensed ones. So it is important for an IT organization to understand these characteristics and to recognize which of them is most relevant to the goals it’s pursuing with its open source use.