There is an overwhelming amount of open source software (OSS) available today that can be used throughout the software development life cycle. Nowadays, it is generally not a matter of whether one should use OSS, but rather, where one should use it. If one were to start a new software development project, he would probably begin by looking for various types of software to aid in development, such as an integrated development environment, version control system, and a bug tracking tool, to name a few. If he looked exclusively for OSS, he could use Eclipse for the integrated development environment, Subversion for the version control system, and Bugzilla for the bug tracking tool. Those products are available for download and are open source. Looking outside the development environment, one’s deployed system may require a database. A person could use a proprietary database such as Microsoft® Access, Microsoft® SQL Server, Oracle®, or an open source option such as MySql. When looking to fill a technological need, OSS may be a viable option.
In July 2008, the U.S. Air Force Office of Advanced Systems and Concepts funded Georgia Tech Research Institute to create and release an open source version of FalconView. Used by the Department of Defense since the 1990s, FalconView is a comprehensive mapping tool that supports various mapping formats and includes ample map analysis tools. With both government and private applications moving to open source development, the proper evaluation of OSS throughout the program is imperative to making informed decisions that could affect the life cycle of the project. What are some of the factors that must be considered when choosing whether to use OSS?
What is OSS?
According to a DoD chief information officer memorandum of 2009, “Clarifying Guidance Regarding Open Source Software,” OSS is “Software for which the human-readable source code is available for use, study, reuse, modification, enhancement, and redistribution by the users of that software.”
That definition of OSS could apply to various terms used throughout federal and DoD guidance and directives. The Federal Acquisition Regulation/Defense Federal Acquisition Regulation Supplement defines commercial computer software as “Any item, other than real property, that is of a type customarily used by the general public or by non-governmental entities for purposes other than governmental purposes, and (i) Has been sold, leased, or licensed to the general public; or (ii) Has been offered for sale, lease, or license to the general public.”
Chapter four of the Defense Acquisition Guidebook defines non-developmental software as “Any software that is not legacy software for the program, or is not developed as part of the effort being accomplished by the developer team. This includes COTS software, government furnished software, open source software, and software being reused from another program.”
These definitions show that although OSS is not explicitly defined in DoD guidance and directives, the terms already in place clearly fit. Some OSS projects are as big as, if not bigger than, their proprietary counterparts. According to its website, MySQL, an open source database application, has had more than 100 million copies of its software downloaded or distributed throughout its history and is currently on release 5.5.
Open source software is generally thought to be free as in it has no costs. Though that is true in most cases, generally the term “free” is used in reference to the liberty of interested parties to freely distribute the source code. That is an important aspect to keep in mind when considering the use of OSS—there may be a cost.
Like proprietary software, OSS comes with licenses such as the GNU or Apache license. This article does not cover the licensing associated with OSS; however, it is important that the proper legal representative reviews the license prior to making the final decision. This assures that the manner in which interested parties intend to use the OSS is in accordance with the license.