Skip to main content
U.S. flag

An official website of the United States government

Plan a Software Project

Planning the details of your new software project is a great way to get started before you write the first line of code. Use the guidelines below as a checklist of the steps needed for your software development project. A category of software called “Scientific Software” is more specifically defined by the USGS Instructional Memorandum on Scientific Software for Release.

 

Develop Source Code Using a Repository

  • Recommended for all software.

  • Use one of the accepted USGS Git hosting options.

  • Refer to Develop

Organization

  • Recommended for all software.

  • Select an appropriate location in a USGS Git hosting option to manage your project.

  • Refer to Develop

Testing

  • Recommended for all software.

  • Write your code such that unit tests can be performed to provide technical reviewers and yourself with a thorough and granular method to review the functionality of the code at any time.

  • Refer to Test

**Metadata

  • Required for all software.

  • Provide properly structured metadata  to ensure software can be adequately discoverable and reusable. In complying with the Federal Source Code Policy please create a code.json file in the root of each software repository.

  • Refer to Distribute and Federal Source Code Policy

**Licenses

  • Required for all software.

  • Use an open-source license (put a "LICENSE.md in the project root").

  • Refer to Distribute

*Disclaimers

*IPDS Record

  • Required for scientific software.

  • Not applicable to other software.

  • Enter Scientific Software products into IPDS. Select Software Release as the product type and complete peer reviews before sending to Center Directors for approval.

  • Refer to Scientific Software and the USGS Information Product Data System (IPDS)

*Digital Object Identifiers (DOIs)

**Security Review

  • Required for all software.

  • Obtain a security review to ensure personal, private, or otherwise sensitive information is not included in the repository.

  • Refer to Review

*Functionality and Domain Reviews

  • Required for scientific software.

  • Recommended for all software.

  • Request peer review as an official USGS product.

  • Refer to Review

*Center Director Approval

  • Required for scientific software. Recommended for all software. 

  • Scientific Software requires formal Center Director (or delegated authority) approval in IPDS.

  • Refer to Scientific Software

*Repository for Official USGS Product Release

  • Required for scientific software.

  • Recommended for other software.

  • Host source code for Scientific Software in an approved digital repository. USGS OpenSource GitLab is currently the only approved digital repository.

  • Refer to Develop and USGS OpenSource GitLab

Deploy Code as an Application

  • Optional for all software

  • Must be FITARA compliant

  • Refer to Deploy

 

* Required for Scientific Software only

** Required for all software