Open Source Software (OSS) (also known as open source code) enables EPA development teams to easily collaborate with external developers and researchers interested in contributing to your project.
Open source code development is invaluable as you develop new features, build improvements, and fix known and unknown issues. External contributors who share a common interest in your project can analyze the source code and verify that the software is correct, which helps support the validity of claims made in accompanying scientific papers or publications. When source code is easy to read and understood, contributors who seek to work with you will spend less effort as they work to contribute code or fix bugs.
The following provides guidance on how to implement OMB Mandate: M-16-21; Federal Source Code Policy: Achieving Efficiency, Transparency, and Innovation through Reusable and Open Source Software at EPA. EPA will:
- Share custom-developed code that EPA develops or procures for broad reuse across the federal government, subject to limited exceptions.
- Release at least 20 percent of new custom-developed code to the public as OSS under a three-year pilot program.
- Maintain an Agency-wide posture of being “open first,” meaning it is EPA’s primary choice to develop or acquire custom-developed code that is broadly available to the public for inspection, improvement and reuse.
- Ensure program offices follow OMB’s three-step software analysis outlined in M-16-21 and include contract requirements for open source code requirements when applicable. This three-step analysis first leverages existing federal solutions, followed by existing commercial solutions and finally custom development. Contracts for custom-developed code must also acquire and enforce rights sufficient to enable government-wide reuse of custom-developed code.
- Update EPA’s information technology (IT) acquisition processes to support and implement an OSS approach, as identified by the CAO and CIO.
- Establish an inventory of new custom-developed code and provide this inventory and associated metadata established by OMB for each project’s source code to appropriate repositories, including Code.gov.
- Use EPA’s standard version control system(s) allowing for compliance, as identified by the Chief Technology Officer (CTO).
- Apply EPA’s open source and rights license guidance for custom-developed code, government reuse and OSS application, as identified by M-16-21 in consultation with the Office of General Counsel (OGC).
- Release open source code through a public-facing software version control platform.
- Provide the metadata that will be included in EPA’s code inventory.
Effective August 8, 2016, the mandate applies to new custom-developed code created or procured by EPA consistent with the scope and applicability requirements of OMB’s Federal Source Code Policy. This does not apply retroactively (i.e., the mandate does not require that existing custom-developed code be retroactively made available for Government-wide reuse or as OSS).
There are many benefits to open source code development, including:
- Create and maintain shared tools, models or web services.
- Reuse and support existing open source tools, models or Web services.
- Create and promote transparency.
- Grow and expand the development team and community.
- Reduce development costs.
- Increase competition among vendors.
Custom-developed code is code written for:
- Software projects.
- Application Programming Interfaces (APIs).
When custom-developed code does not meet exemption and exceptions of the OMB mandate, it must be made available as open source code. Custom-developed code does not include code that is exploratory or disposable in nature, such as code written by a developer experimenting with a new language or library. Open source code can be accessed, used, modified and shared by anyone.
The Agency has the data rights to reuse and modify custom-developed code. As part of OMB Mandate: M-16-21, all federal agencies will make custom-developed code available for government-wide reuse available across the federal government.