The US government has published a new federal policy that aims to encourage more agencies to open-source custom code they've developed.
The policy, which was laid out on Monday in a joint memo from US government CIO Tony Scott and chief acquisition officer Anne E Rung, draws attention to the waste that occurs when agencies purchase substantially similar code because other agencies haven't made their code discoverable or available.
In response to these constraints on sharing, the policy aims to ensure all agencies make custom-developed source code broadly available for reuse across the whole of government.
To achieve this, the government is introducing a three-year pilot that requires all agencies commissioning new custom software to release at least 20 percent of the code as open source.
If the 20 percent minimum cannot be achieved, the CIO of the agency will need to explain its reasoning to the White House's Office of Management and Budget. The government also wants agencies to collect data to measure the performance of the pilot.
"Enhanced reuse of custom-developed code across the federal government can have significant benefits for American taxpayers, including decreasing duplicative costs for the same code and reducing federal vendor lock-in," the memo states.
To support greater reuse, agencies must negotiate the data rights for any new custom code as well as the rights to reuse and modify code across the government.
The policy also prioritizes reuse over procurement. Agencies considering a new software deployment must first evaluate whether an existing piece of software will suffice and give preference to that solution. If there isn't an appropriate option to reuse, they can then consider a commercial product.
Only after these two options have been exhausted can the agency consider purchasing custom-developed code, and in those cases the agency must then obtain rights that are consistent with the government's new reuse policy.
"Agencies that enter into contracts for the custom development of software shall at a minimum acquire and enforce rights sufficient to enable government-wide reuse of custom-developed code," the policy states.
"Agencies must ensure appropriate contract administration and use of best practices to secure the full scope of the government's rights, including but not limited to sharing and using the code with other federal agencies."
As part of the initiative, the government is also requiring agencies to maintain a code inventory to support reuse by other agencies, as well as making the inventories discoverable at Code.gov.
The few exceptions to the new reuse policy include sharing source code that's restricted by a patent or intellectual property law, sharing code that could harm national security or cause risks to the agency, or if the CIO believes sharing the source code would go against the national interest.
While not mandatory, the policy also encourages source code be made available to the general public without any restrictions on reuse.
"This collaborative atmosphere can make it easier to conduct software peer review and security testing, to reuse existing solutions, and to share technical knowledge. Furthermore, vendors participating in or competing for future maintenance or enhancement can do so with full knowledge of the underlying source code," it states.