Open Source Software Overview

Open Source Software is computer software whose source code is developed in an open and collaborative way and made available (in a human-readable format) with a copyright license that complies with the Open Source Initiative's Open Source Definition (OSD). The Open Source Initiative (OSI) established the following criteria for OSS, all of which must be met to comply with OSD:

  • Software is free to be re-distributed
  • Source code is available with software
  • Derived work is allowed
  • Integrity of author’s source code is maintained
  • Contains no discrimination against persons or groups
  • Contains no discrimination against fields of endeavor
  • License must be distributed
  • License must not be specific to a product
  • License must not restrict other software
  • License must be technology neutral

The backbone of OSS is community sharing of ideas and collaborative development of code to serve a common purpose. Some of the key enablers of OSS development are version control systems, mailing lists, wikis, and blogs that help developers collaborate to develop code. Copyright licenses make the resulting software code available to users to use, change, and improve the software, and to redistribute it in modified or unmodified forms.

Types of Open Source Software

CMS is interested in two basic types of OSS—open source frameworks/libraries and open source solutions(CMS Open Source Software (OSS) Thoughts for a Strategy, CMS, March 2010). Open source frameworks / libraries are standalone pieces of code that may have dependencies on other software and are used or embedded as part of a larger software development effort. Examples include the Spring Framework and Apache Struts, both of which are open source application frameworks for Java development, and Hibernate and myBatis, which are persistence frameworks that provide mappings between Structured Query Language databases and objects in Java.

Open source solutions are open source applications that may be part of a larger software distribution, can operate standalone, and serve a single function or set of functions. Open source solutions may come with vendor support. Examples include Linux, an open source operating system; Apache HTTP Server, an open source Web server; and Oracle Glassfish and RedHat JBoss, open source application servers.

CMS uses open source frameworks and libraries and a small set of open source solutions. Since 2014, CMS seeks to expand its use of OSS to include additional open source solutions.

Benefits of Open Source Software within the CMS Environment

OSS provides many advantages, as demonstrated in the commercial industry and the government sector. If used thoughtfully, OSS offers the potential for cost reduction, timelier delivery, and improvement of the overall capabilities of a system. Specifically, OSS can:

  • Offer considerable savings in software purchasing cost and greater efficiency in repurposing and enhancing existing software

  • Minimize vendor lock-in through open standards and flexibility in the choice of solutions

  • Enable transparency of software implementation to support extension of software (through supported plug-in mechanisms) while also ensuring robustness of design and implementation

  • Increase the productivity of application development through open standards to help achieve interoperability across systems

  • Support open collaboration and innovation with the open source development community through free exchange of ideas and results with the wider community

  • Help keep the enterprise abreast of technology developments and facilitate the early adoption of emerging technology

CMS is committed to meeting the needs of its IT development community by optimizing best practices and creating innovative approaches for rigorously evaluating and enhancing existing software development processes. CMS incorporates OSS as part of its IT development practices to realize the many benefits and capabilities of OSS.

Considerations for Adoption of Open Source Software

Although there are tangible benefits to OSS, the process of realizing these benefits may significantly change how CMS uses IT. For example, adopting OSS alters the Agency’s development and acquisition of software and how the Agency’s IT departments conduct business.

A common misconception about OSS is that it is cost free. The nature of cost with OSS differs from commercially licensed software. Although licensing costs may be minimal to none, CMS must consider the total cost of ownership. One important contributor to OSS cost is the absence of a “productized” solution. Many OSS products do not offer comprehensive documentation, easy installation and upgrade of utilities, friendly migration tools, and Graphical User Interface (GUI) configuration tools. Therefore, operations and maintenance (O&M) can be complex and expensive for some OSS products. To overcome this gap, the enterprise adopting an OSS solution must possess the necessary skills or have access to third-party vendors who provide IT support services for that specific OSS solution.

Another key OSS consideration is managing the adoption of OSS within the enterprise. Free software and full access to the source code of OSS present unique challenges for the enterprise. Individuals might download and install OSS without sufficient oversight. Therefore, the enterprise must carefully manage open source adoption and assess OSS for use across the enterprise. Criteria for assessing solutions must include the open source software’s maturity, total cost of ownership, and licensing implications. CMS requires that OSS be managed to the same standard as COTS software. The business owner is responsible to perform due diligence.