Open-source Software

Open-source software is a term for software that carries a special license allowing the source code to be available, editable and redistributable. Under a standard software license, these rights are reserved only for the copyright holder or to those given express permission by the copyright holder. Many instances of open-source software are developed in a public, collaborative forum, but a large following of private software developers has also embraced this licensing model.

Open-source Software Development

Developing open-source software has been likened as a model based on the bazaar, in which different people offer different ideas and approaches. In contrast, traditional software development is said to be like building a cathedral, where one or a few powerful developers are in complete charge of construction. In the cathedral analogy, development is centralized and specialists are called in to take on various roles. In the open-source bazaar analogy, roles are not clearly defined and if a central authority exists, it is loosely organized or democratized. Some of the basic tenets of open-source development include the following:

  • Users are thought of as co-developers because they also have access to the code. Users are encouraged to play a role in the software’s development, even if they have little technology knowledge, by suggesting improvements, reporting bugs and performing other general tasks.
  • The software is released as early as possible in order for co-developers to take an interest in and engage in the project.
  • The software should be upgraded frequently with new code so the bugs can be worked out on an ongoing basis. Many open-source software projects are updated daily.
  • Multiple versions of the software should be available simultaneously. The older version will have had most of the bugs worked out and is more stable. The newer version integrates new code and features, but bugs or other issues may exist.
  • Open-source software is developed in a modular style to allow multiple components to be developed in parallel.

Open-source Software Licensing

Open-source software has no single licensing structure, although several models of open-source licensing are often used as a basis for new open-source software licenses. The licenses are all similar in that they conform to the definition of open-source software, but they can differ in the details. Examples of commonly used open-source licenses are the GNU General Public License, Apache License and MIT License.

The legal basis of a license is that the author or creator of a work retains the copyright on that work. An open-source license is an agreement the creator of a work makes with the public to make use of his or her copyrights so long as the terms of the license are met and kept. However, the original author continues to retain ownership of the copyrights.

Some open-source software allows modifications to be made as long as the new author works under an explicit or implicit license. Other open-source software projects call for new writers to be jointly assigned to the author’s original copyright.

Another model for open-source software is to place it in the public domain. Under public domain law, the authors and/or owners automatically waive all copyrights for the work, and the work remains unlicensed.