Open Source: A Way of Developing, Distributing, and Licensing Software

By: Ibrahim Haddad
Thursday, August 25, 2005 11:16:24 AM EST
URL: http://www.linuxplanet.com/linuxplanet/tutorials/5977/1/

Introduction

Since the beginning of the software industry, nearly every software company in the world has followed the same business model: developed software by the company's own employees, closely held intellectual property, delivered software in binary format to clients, and licensed software to users to run on their own computers. Today, however, that model is being challenged by a new paradigm: open source. Developed and maintained by volunteers, distributed to users at no cost, and available in source code form, it is radically different from proprietary counterpart. Each of the new characteristics of the open source software forces organizations to develop new ways of thinking about how they procure, implement, test, and deploy software.

Accessible without cost, open source software is distributed to users under licensing terms different from commercial software, and created under different conditions from commercial software. Open source software developers take responsibility for the quality of the software towards their user base. This responsibility demands a new model of software procurement, one where the organization is an active participant in creating the complete software, rather than a passive recipient of what the vendor delivers. The new model demands new working methods and practices. In this article, we present on the open source software, the open source community, and the development practices. We explore the various benefits and risks the open source model brings to development practices, and present on possible strategies to support open source in your organization.

Open Source versus Freeware

It is important to note that open source differs significantly from freeware. Freeware is software distributed without a fee, but without source code access. Freeware creators slightly restrict the intellectual property rights to the software and offer the software on a "as is" basis, in contrast to open source, which carries less restrictive licensing terms and allows users to modify the software product if they so desire. Freeware is often distributed on a "time-restricted/limited" basis, meaning it is free for use for a certain period. When that period is up, the software stops working. If the user wants to continue using the product, a licensing fee is necessary to disable the time restriction.

An open source software is a software that has its source code available to its users. It can be downloaded from the specific project web sites and used or modified as desired, as long as its license requirements are observed.

Zero-price software

Open source software is distributed at no cost. There is no charge for the source code and there are no licensing fees.

A different licensing model

Open source software, like any other software, is distributed under some kind of a license that controls the manner in which it can be used. However, open source licenses are less restrictive than licenses of proprietary software in terms of how the software can be used. Typical license conditions include contributing any source code changes back to the main source base and distributing source changes to any customers of the organization that modified the code. The specific conditions depend on the type of open source license that accompanies a given software. It is important to state that open source licenses are written with the aim of encouraging wide use, with very few restrictions placed on the use of the software. For a list of approved open source licensing, please visit http://www.opensource.org/licenses.

Open source software developers

Open source developers come from different backgrounds. They are volunteers who donate their time to work on open source projects. The fact that open source software is written by volunteers affects how open source product teams form and work. Because individuals participate based on their interest in the software, open source management practices are also very different from those in commercial software companies.

Open source development teams work together in a decentralized fashion with little hierarchy. The project leader is usually the individual who originated the project; he or she must manage by consensus with a lead by example approach. The project leader is responsible for developing a common understanding of what functionally the upcoming release will contain, encourage new developers to join the project, help developers select a portion of the project to work on, and solve any conflicts that arise between team members.

The philosophy of community

The practice of frequent releases in order to gather user feedback highlights one of the most important aspects of the open source world: the community. The open source community refers to groups of (self-appointed) contributors and users participating and organized into this community based on their field of interest. There are no formal requirements for joining and no formal rules for participation. However, lack of formality does not mean that there are no standards for participating or behavior. Very strong unwritten rules govern all community interactions. A community member is expected to interact respectfully, make reasoned arguments about why a particular course of actions is right, and above all, to contribute as well as take advantage of the community.

Development practices

Open source projects tend to make a release available early to be used by the user community and then quickly update the releases as the software is modified. This practice is described as "release early and often." The open source community believes that this practice leads to higher-quality software because of peer review and the large base of users who are using (or misusing) the software, accessing the source code, reporting bugs, and creating fixes. A side benefit of having many people looking at the code is that the code is reviewed for adherence to coding standards; fragile or inflexible code can also be improved because of these reviews.

Open Source Advantages and Risks

In the following subsections, we will discuss briefly the advantages and risks of using open source components, and the resulting cultural changes from this model:

Advantages of using open source components

We can have a long list of advantages. However, below, we identify four main advantages of using open source software in commercial products. These advantages are the following:
  • Do more with less: using open source components, your organization can reduce development cost and time and focus on the added value your organization brings to the product. Following this model, you should therefore source as much as possible enablers and tools and focus on your core business.
  • Open source is an additional sourcing channel: Typically, you develop software yourself within your organization or you source it to 3rd party. With open source, you gain an additional sourcing channel.
  • Improved quality by peer review: The open source community has a special development cycle characterized by early and frequent releases, which facilitates extensive peer review.
  • Using open source as a venue for standardization reference implementations: open source is a leader to launch reference implementations for standardization projects simultaneously with the standardization efforts.

Risks of using open source components

The risks, from a comemrcial organization point of view, can include the following:
  • Requirement to disclose source code: This depends on which license is used by the open source software component.
  • IPR responsibility: With Open Source software, you are responsible for any IPR related issues. With 3rd party software, verifying IPR related issues are the vendor's responsibility. In addition, there may be significant problems concerning intellectual property rights and software patents as the availability of the source code simplifies the detection of patent infringements by patent holders.
  • Open source software evaluation: Like any other 3rd party software, open source software must go through the same evaluation process. If it is open source, it does not mean it is superior quality. You still need to evaluate.
  • No control over project deliverables and deadlines: The motivation for improving and developing a given piece of software is unpredictable within the open source community; it might vanish or at least decrease depending on the interest in this piece of software.

Cultural Changes and Open Source Strategies

Working with open source and following the open source working methods will have some impact on the working methods and culture within your organization. Firstly, it will influence the traditional way of developing software by moving away from the "not invented here" syndrome, towards accepting a software that was developed outside your organization. Secondly, the Open Source community does not assume that the development is done in a single location. Using the same development tools as the open source community will also encourage your development group to work more closely together.

There are many open source strategies that can be adopted and customized to your organization particular needs. Below, I list three major strategies that are very common.

  • Promote and encourage company developers to use Open Source software and tools in their development environment where those can meet their needs.
  • Include Open Source software in products based on technical merits, the time-to-market (TTM) advantage Open Source software offers.
  • Contribute source code, initiate projects, and be active in the Open Source community. For example, contribute enablers and software that is not valuable enough to keep proprietary or no margin product.
Once you adopt an open source strategy, the next important task is to communicate. Communication is a key issue. It is very important to properly communicate your company's strategy towards open source and towards your development organization.

Conclusions

The open source software is shifting the software industry into a new paradigm, moving from developing code behind closed doors and delivering binaries to customer, to developing code that can be shared, modified and redistributed openly. Key goals that can be associated with this shift is reducing development cost and software components complexity, while increasing flexibility and using common enablers. Organizations that embrace the open source model and follow it when it influences positively their ways of building software, will increase their chances to retain their competitive advantage.

Further Readings

Copyright Jupitermedia Corp. All Rights Reserved.