Iterating on Code.mil

No one ever said open sourcing code at the Department of Defense (DoD) would be easy. [citation needed]

In February 2017, the Defense Digital Service (DDS) decided it was time to take a more involved approach within the Department of Defense in the government-wide movement to open source code. This was spurred by the release of the new Federal Source Code Policy by the Office of Management and Budget in August, 2016 and Code.gov in November, 2016. We spent a lot of time talking with people in the DoD, across the federal government, and leaders in the Free / Open Source Software (F/OSS) community. Thus we formed a new project called Code.mil and created a GitHub repository providing guidance on how to open source code at the DoD.

It’s been a long time coming, but that guidance — and its organization and presentation — has received a well-needed refresh with today’s (re)launch of Code.mil, an experiment in open source at the Department of Defense. Our guidance has been reorganized into an easy to digest website and we’re investing in further improvements.

Unique Challenges

The DoD faces many challenges in open sourcing code. Unlike most software projects, code written by U.S. Federal government employees typically does not have copyright protections under U.S. and some international laws. Often times this makes people think that our code can’t use an OSS license, but this is far from true! It does, however, require a little more effort to define our intent. The complexity of national security policy adds another point of difficulty when individual program offices look to open source their work. Even with approval to release code publicly, government employees can be hindered by lack of access to modern source control and developer operations processes.

Those barriers are precisely what DDS is good at tackling. The guidance we’re providing at Code.mil will help many projects across the Department by giving developers and product owners a template to start from and the necessary background information to share with people in their organization who may not be familiar with open source software. The site also highlights the policy and laws that affect custom-developed code written by U.S. government employees — or contractors working with us — so that people are informed about the requirements placed on them.

Working with Our Friends at Code.gov

Many challenges DoD faces in open sourcing software are not unique. The U.S. Federal Government has been mandated to open source 20% of new, custom-developed code for a three year pilot program that began in August 2016. This is the “Open Source Pilot Program” that was authorized by OMB policy M-16–21 to ascertain the appropriate amount of code to open source and how to best measure that amount. The policy also set up the team at Code.gov to facilitate government-wide implementation of the policy . We launched Code.mil to further the mission of Code.gov within DOD.

The Code.gov team is doing awesome work! The DDS crew (and DoD CIO) have been working closely with their folks to determine what next steps the DoD needs to take and how we can begin to comply with the policy. A big part of that is beginning to expand our agency project listing. Projects listed on Code.mil will also be accessible through Code.gov as it continues to grow the inventory of government open source code.

What’s Next? What can you do?

Providing guidance and creating an inventory of code is great, but we want more. The Defense Digital Service strives for the big wins, doing the most good for the most people in the most need. We feel strongly about Free / Open Source Software (F/OSS) and want to help make its use the normal path in the Department, not an exception.

To that end we are working closely with the DoD Chief Information Officer’s people to revise the 2009 memo clarifying the Department’s position on the use of Free and Open Source Software. We’re engaging organizations throughout the DoD to help them kickstart their open source initiatives. We’re working with thought leaders both inside the Department and in the F/OSS community to make our guidance more in tune with the needs of the Department and the American people.

And we’re engaging with you. Right now. This blog post is one of many avenues we are using to engage directly. Read our documentation on the Code.mil website and let us know what we can improve by submitting an issue or a Pull Request. If you are a DoD project owner contact us at code@dds.mil so that we can hear your story or help get you started.