You are here

What is Open Source Software (OSS) and How Is It Developed?

Error message

  • Deprecated function: Methods with the same name as their class will not be constructors in a future version of PHP; nodequeue_queue has a deprecated constructor in include_once() (line 1445 of /usr/local/share/drupal-7.102/includes/bootstrap.inc).
  • Deprecated function: Methods with the same name as their class will not be constructors in a future version of PHP; views_display has a deprecated constructor in include_once() (line 3566 of /usr/local/share/drupal-7.102/includes/bootstrap.inc).
  • Deprecated function: Methods with the same name as their class will not be constructors in a future version of PHP; views_many_to_one_helper has a deprecated constructor in require_once() (line 113 of /home/members/nosi/sites/nosi.net/web/drupal7/sites/all/modules/ctools/ctools.module).
How good can software be that is free?

Although there are many OSS packages that are not as high quality as their proprietary alternatives, this is actually not the rule. Many well-developed popular open source projects are better in quality than their proprietary alternatives. There have been a number of studies on this issue, all of which have concluded that most major open source projects are at least as good as their proprietary alternatives, and open source software has the capacity to be of higher quality than proprietary alternatives. See Further Readings below, and we'll be giving examples later.

The Promise of a New Model

In the past 10 years, computer and Internet technology have caused radical changes in the way organizations carry out their missions. The existence of more powerful hardware is certainly significant. But even more important is the software installed on these machines – the technology that allows those “boxes and wires” to communicate over the Internet, and accomplish mission-specific tasks.

In the past, the primary model for acquiring software was to obtain it at the time of your computer purchase, or as an add-on that you would purchase later. The software might come preinstalled or on a separate installation CD, but in no case would you have access to the source code. The software vendor would retain the exclusive right to make changes, and thus you would be at their mercy for updates. Quite often, enhancements and technical support for products you use would be discontinued after a time, possibly to encourage you to purchase newer products.

With the advent of the Internet, a new model of software development and distribution has gained acceptance that can potentially give you a lot more power. The key advantage of the new, open source model over the traditional, or “proprietary,” model is that you actually have access to the source code of an application. This may not seem very significant to most nonprofits; after all, few of us can afford a software engineer on staff.

In practice, the fact that a software program is open source makes a huge difference, because it enables hundreds of technical people, many working as volunteers with no commercial incentive, to collaborate on continual enhancements to software. Eric Raymond, in one of the seminal papers on the OSS model entitled The Cathedral and the Bazaar (http://catb.org/~esr/writings/cathedral-bazaar/), wrote: “open-source software [is] the process of systematically harnessing open development and decentralized peer review to lower costs and improve software quality.”

In addition, unlike many proprietary products, OSS is primarily based on open standards, which enhance the potential interoperability of software that organizations need to use, and also enhance the ability of different software to communicate with each other. Further, the use of open standards helps prevent “lock-in,” a common problem where organizations are forced to continue using the same product because data migration would be too expensive.


Who Creates Open Source Software?

The movement toward open source software was originated by computer science researchers as early as the 1970s. Early open source projects were concentrated in academia, where developers popularized the idea of copyrighting one's computer programs with a statement mandating that the software would always be open to the public. This made a lot of sense, as much of the initial research in the field was funded with public tax dollars.

The contribution of Richard Stallman, the prime author of two open source software programs (one for compiling software code and the other for creating and editing documents) was particularly important. Tens of thousands of students worldwide used these products, learning about the values of what is commonly referred to as the “free software movement.” The proceeds from the sale of user manuals for these programs were used by Stallman to develop the Free Software Foundation (FSF – http://www.gnu.org/fsf/fsf.html), which has evangelized since the late 1980s on behalf of Free Software.

As a result of this movement the practice of “giving back to the community” by writing OSS was adopted by tens of thousands of software engineers. Many organizations followed suit, agreeing to release the source code of software developed for internal use. As time passed, OSS programmers were emboldened to take on almost any task. For example, in the early 1990s, a Finnish researcher named Linus Torvalds built upon the substantial work of FSF to create what is now known as Linux, or GNU/Linux, to replace the proprietary Unix operating system.

In the mid 1990s web sites like SourceForge.org arose to serve as clearinghouses for open source development efforts, so that open source programmers would be less likely to reinvent the wheel. The body of software that has resulted from this process is so powerful that most large corporations are now using OSS to carry out some of their IT needs, and some have chosen to replace proprietary software entirely.

The ability to reuse code has also resulted in many forks, where one project is split into two or more independent efforts. Sometimes a “fork” will die out; other times it will take over the original in terms of popularity. This results in a proliferation of projects (both finished and unfinished) that to a novice can be overwhelming. We'll talk more later about choosing from the variety of OSS options, and how to identify the projects that have momentum.


The Development Process

Despite the many differences from proprietary software, it is important to note that OSS usually goes through the same stages as a proprietary product.

Some key differences are:

  • In open source project development, this process may happen much more organically – starting with a single developer doing a relatively small project, then having the project involve more developers, and attract institutional support, as it develops.

  • The pace of open source development can be slower, due to the voluntary nature of many development projects.

  • The quality of open source software can be much better than proprietary software, because programmers learn from each other, the additional “sets of eyeballs” viewing the code tend to catch potential bugs, and there is less commercial deadline pressure to rush the software out the door in an unfinished state.

  • The version numbering of open source software tends to be more conservative. Some very usable open source software is still in versions that are below 1.0. And even the most mature, robust projects (like Apache) may have only recently reached version 2.0.


There are many licenses that are less strict than the GPL. The best known of those is the BSD (Berkeley System Distribution) license. It allows you to modify and distribute the code as you see fit, but it need not carry the same license. There are many more Open Source licenses (see: "http://www.opensource.org/
licenses/"
).

Licenses

A license is basically an agreement between the user and the developer on how that software can be acquired and used. Whenever you install software, and click on the “I Agree” button, you are agreeing to a EULA (or End User License Agreement). The most popular open source license is called the GNU Public License (known as the GPL). The GPL stipulates that not only does the source code need to be available, but also the program can be modified and re-distributed, as long as that re-distributed program is also given the GPL. People have called this a “viral” license, because all modified code must also carry the GPL.

Unlike proprietary or commercial software, one of the hallmarks of OSS is that there are no unit or per-seat licenses – you can take one copy of the software, and install it on as many machines as you want, with no added licensing cost. You don't have to track licenses, worry about whether you are running 12 copies of a software package you have 10 licenses for, etc.


How is the development of OSS supported?

While many OSS projects are completely staffed by volunteers, it is quite common for commercial companies, universities, and nonprofit groups to provide resources, usually in the form of developer time, to OSS projects that they can use internally. The range of people involved can be broad, from volunteers who report bugs and write documentation, to professional QA staff that might perform end-user testing. Almost all developer communities are open to providing user support (more on support in the Administration and Support section below).

The Apache project, which produces the most widely used program for powering web sites, formed a nonprofit foundation to raise funds for future development of their project in 1999. Since then, a number of projects have followed suit, including Mozilla, a program used for browsing web sites (like Internet Explorer).

Open source projects have also spawned for-profit companies, whose primary goal is to develop and support the open source software project. Examples of these include MySQL (a popular database program), Zope (a tool for building interactive web sites), as well as many companies that package and support the Linux operating system, such as RedHat (more on Linux distributions in the appendix).


Further Reading:

http://www.nature.com/nsu/030623/030623-6.html - How OSS can be of better quality than proprietary software

http://www.reasoning.com/library.htmlReasoning Magazine’s examination of OSS

http://www.internetnews.com/dev-news/article.php/10792_2230481- News story about comparisons in quality of OSS and proprietary software