It sounds obvious, but the idea remains revolutionary. For the first time, there would be a single repository for source code that could be shared between the hundreds of agencies, commands, and programs in DOD.
Developers would be able to share their work in a familiar, web-based
environment. A previous version of forge.mil was pulled for unknown
reasons, but the current iteration is based on the TeamForge product from
CollabNet. If you’ve used SourceForge, you get the idea. The DOD is the
largest consumer, and one of the largest developers of software in the
world. Much of this software is redundant, locked up by vendors and
integrators, can’t work with other software, and nobody remembers how to
maintain it. There’s no doubt forge.mil was long overdue.
It’s dangerous, though, to assume that forge.mil is a useful template for forge.gov. I think forge.mil could lead forge.gov down the same road as core.gov and other failed attempts to encourage source code
reuse in government. To understand why forge.mil can be useful and
simultaneously poisonous to forge.gov, you have to first understand how
the DOD does software.
Before, say, the mid-1990s, much of the DOD’s software was owned by the government. GOTS, or “Government Off-the-Shelf” as it’s now called, was built and maintained by the DOD and its contractors. This was
appropriate for some military-specific systems, but the strategy
outlived its usefulness when the government could no longer keep up with
commercial enterprises. For many pieces of common software, like
operating systems, spreadsheets and web browsers, the open market
produced more innovative and higher-quality products. So down came the
order: use commercial software. COTS (“Commercial Off-the-Shelf”) was
ascendant.
Boeing, Lockheed Martin, General Dynamics, and the other integrators no longer write as much software from scratch. Instead, their business model has changed. They now glue commercial software together, and wrote
code to fill in the gaps. Their business model, however, remains the
same. Instead of seeking rent on the proprietary software they’ve
written on behalf of the government, they seek rent on the integration
work they’ve done.
This is a lucrative business: the latest UAV is composed of hundreds of software systems, some commercially available, some written by the integrator. If I’m the integrator, I’m the only one who knows how all
the pieces go together and I can charge a handsome sum to anyone who’d
like to field their technology on my platform. Think of Apple’s
locked-up App Store, but flying through the air with a missile strapped
to its belly.
There’s nothing nefarious about this, of course. Integrators are doing what the market commands, and controlling access to platforms is an perfectly legitimate business model. It discourages reuse, though,
which means that it’s difficult for the DOD to effectively use the
software it purchased or developed. You can read more about this strange
market and its consequences in the excellent “Losing the
Softwar(e)” by my friend and fellow Open Source for America
member, John Scott.
So Rob Vietmeyer of DISA decided to borrow from the principles of the open source community and Internet governance. A more open and transparent
development process at DISA could remove barriers to reuse, encourage
collaboration, and discourage proprietary or closed systems. COTS
software is still king, but where the government needs to control its
own integration, set its own standards, and exercise stewardship over
its own infrastructure, it can still develop its own GOTS solutions
— this time, in an open, collaborative manner. Where GOTS was once
insular, slow-moving, and highly proprietary, it can now be produced at
lower cost and with lower barriers to entry for new innovations. Because
this “Open GOTS” is built using familiar open source methods, the
projects have a fighting chance of working together.
So far, the DOD software problem sounds similar to the government software problem. Don’t misunderstand forge.mil, though. It’s not your typical open source development environment. If you talk with the
forge.mil project team, like Guy Martin of CollabNet, he’s quick to correct you
if you compare forge.mil to SourceForge. forge.mil is something very
different. With all the challenges of this profoundly broken market,
forge.mil had to make some serious sacrifices.
The first thing you’ll notice about forge.mil is that you can’t get to it. Access to forge.mil is severely restricted. To get access, you must have an official DOD Common Access Card (CAC) or have a DOD
employee sponsor you for an “ECA Certificate”. Dave Wheeler of the Institute for
Defense Analysis describes it as “gated development.” On the mil-oss mailing list, this is referred
to as the “CAC Wall”.
The CAC Wall has some unintended consequences, and raises some very difficult questions. First, it prevents many well-meaning developers who don’t work for the Defense Industrial Base from helping the projects
inside. There are literally tens of thousands of developers behind that
wall, and forge.mil keeps that group partitioned from both the public
and government employees without CAC or ECA credentials. The bargain is
that by keeping these undesirables out, they carve out a sense of safety
so skittish program managers are more likely to host their code. The
cost of that sense of safety is a much smaller audience than they could
muster hosting on more public platforms.
The CAC Wall also creates a dangerous an incentive to split communities. What happens if someone in the DOD wants to hack on a piece of open source code? They’ll host the hack at forge.mil, and the public
could never see those hacks again. If I’ve licensed my project under an
open source license, it’s because I want others to contribute. If that
code disappears behind the CAC Wall, I’m cut off from tens of thousands
of DOD developers. This “forge.mil fork” scenario is serious business.
It’s a scenario where everyone loses.
Finally, the CAC Wall may create a moral hazard for the developers who live behind it. In the open source community, folks are very careful about what code they commit, and since they’re never really sure who’s a
friend and who’s a foe. In a community where everyone’s “trusted,”
developers can become complacent, making them more vulnerable to poorly
written or hostile code.
Despite these real concerns, the CAC Wall still makes sense for forge.mil. DISA has some very legitimate security concerns about the code that’s being developed. They’ve weighed that risk against the
advantages of public scrutiny, cooperation with external projects, and
they’ve made the informed decision to keep the code behind the “CAC
wall”, and to their credit they encourage forge.mil developers to
contribute patches upstream wherever possible instead of hosting on
forge.mil.
So we have a kind of Judgement of Solomon in the forge.mil platform. Because of its very unique market dynamics, the DOD needs to take advantage of open source projects, the open source development model,
encourage collaboration, and reduce its reliance on proprietary
platforms. But for that to happen, DISA had to put all the work behind
the CAC wall.
forge.mil has attracted the attention of other agencies. How could it not? The DOD has the worst-case scenario: the gravest problem, the most complex market conditions, and the most dire consequences. So other
CIOs take notice and the press on this forge.mil experiment has been
relentless.
This brings brings us to the news that the GSA’s Dave McClure is planning forge.gov, a civilian counterpart to forge.mil. This is exciting.
This is also terrifying, because they seem to be following the forge.mil
model by restricting access to only US citizens. Guy
Martin says:
I realize that putting up a barrier to entry in the form of positive identification of US citizenship and a vetting process will irk some who believe that everything should be free and open…
Consider me irked. I want to be perfectly clear about this: the compromises made in forge.mil are dangerous for forge.gov. If forge.gov were to follow the forge.mil “CAC Wall” approach, it will permanently
damage the “Open GOTS” movement.
forge.mil may be instructive and inspiring, but it’s a corner-case and fraught with compromises that have diminished its utility. In the case of forge.gov, it would be hosting unclassified code for civilian
agencies. There’s no need to create a “trusted” environment. There’s no
need to verify the citizenship or security clearance of its
participants. The standard open source mechanisms are more than
sufficient: only project leaders can commit code to the repository, a
semiformal review procedure for patches, and so forth. In any case, I’m
struggling to imagine why the repository would be better secured by
allowed access to 300 million people. Let’s agree that making
US citizenship a prerequisite is counterproductive, unworkable,
unnecessary and most important: it’s un-American.
The entire country of Jordan has adopted the VA’s VistA software for their national healthcare system. Countless overseas researchers collaborate with their US counterparts through open source projects.
When we share our source code with the world, it improves the quality of
the software and is, in fact, a uniquely practical kind of diplomacy.
Since we don’t need to control access to the projects as we do in forge.mil, I have to wonder why we would need a prescribed set of tools for hosting each project. TeamForge is a fine piece of software, but
there are literally dozens of viable alternatives. Developers are very
picky about their tools, and extremely picky about the version control
systems that are at the heart of these code repositories. If
we presumptuously select tools on their behalf, we create an unnecessary
barrier to entry.
With this in mind, we should break the forge.gov project in two.
First, forge.gov is useful as a catalog of open source projects that are used and created by the civilian government, many of which happily reside on agency websites or public
repositories already. Forge.gov could be the way that projects and
developers easily find each other. The Freshmeat or Ohloh of government, if you like.
Let’s call this the forge.gov Catalog. The forge.gov Catalog would be as
inclusive as possible, tracking the progress of every Open GOTS project
we can find.
There are still projects that need an infrastructure, of course, and forge.gov could provide that. The forge.gov Repository would be provided by the GSA as a service to agencies, and provide a complete development
environment. Here, I’m thinking of github or SourceForge.
I think by splitting these roles, and avoiding the dreaded CAC Wall, we can include the largest possible group of contributors and take best advantage of the excellent open source work that’s already underway.
Am I missing something here? Is there a national security concern that I’m overlooking? Is there an advantage to a homogeneous set of developer tools that I don’t understand? Let me know.
Tags: OSS, forge, military, open, source
© 2012 Created by GovLoop.
GovLoop is the "Knowledge Network for Government" - the premier social network connecting over 50,000 federal, state, and local government innovators.
A great resource to connect with peers, share best practices, and find career-building opportunities.