Why federally funded software should be open source
by Sebastian Benthall
Recently, open access to government funded research has gained attention and traction. Britain and Europe have both announced that they will make research they fund open access. In the United States, a community-driven effort has pushed a Whitehouse petition to the Obama administration for a similar policy. We may be experiencing a sea change.
Perhaps on the coattails of this movement, Open Source for America has launched a petition asking for a similar policy regarded federally funded software development: share all government-developed software under an open source license.
This is a really good idea.
Unfortunately, software development and the government IT procurement are so misunderstood that this is not likely to excite those who aren’t somehow directly by the issue. That is too bad, because every American stands to benefit from this sort of change. That makes it important for those of us who do understand to act.
I’ll try to illustrate why this is important with a story, or really a template of a story. This is a story told in countless cases of government software procurement:
ACRNM, a federal agency, has realized that its database management system and its user interface have not been updated since the late 90’s, because building it the last time was such a headache. It never really worked the way they wanted it, and the vendor who built it for them has since vanished off the face of the earth. Desperate and beleaguered, ACRNM finally gets the budget together to build a new system, and put out a bid.
Vendors that have navigated the prerequisite bureaucratic maze flock to this bid, knowing victory will be lucrative. Among them is FUBAR Enterprise Solutions. They know that whatever they build, they have a revenue stream for life. Not only does ACRNM have an enormous internal incentive to declare the new system a success to justify their budget, but they also have nobody to turn to for help with their software when it inevitably fails but FUBAR. FUBAR can continue extorting ACRNM for cash until ACRNM gives up, and the cycle continues.
What is wrong with this picture? Let’s count the problems:
- FUBAR has ACRNM by the (pardon me, there’s really no other way to put this) balls. The term is vendor lock-in. The second ACRNM installs their system, FUBAR becomes a parasite on the government leeching taxpayer money. This is because the software is proprietary. No other company is legally allowed to fix or modify FUBAR’s proprietary system, so FUBAR faces no competition and so can charge through the nose. If the software were open source, ACRNM could turn to other contractors to repair their system, lowering total costs.
- ACRNM has to do its work with worse software. Remember, this is a government agency that we pay taxes to for their services. With so much government activity boiling down to bureaucratic information processing, and so much innovation in software engineering and design, and so much budgetary pressure, you would think that the federal government would leap at technological innovation. But proprietary contracting causes the government to cripple itself at a tipping point.
- Today, government agencies like ACRNM are wisening up and turning to open source solutions. But it’s a slow, slow process. This is partly because FUBAR and its buddy companies who, after so many years of this relationship with government, are now an entrenched lobby that will sow Fear, Uncertainty, and Doubt about open source alternatives if they can get away with it. In recent years, since open source has become more mainstream, these companies are admitting the viability of open source compatibility and mixed solutions. They see the writing on the wall. They will of course fight an open source purchasing mandate with everything they have.
- Few governmental problems are unique. If ACRNM is paying for a new custom software solution, there likely many other agencies–at federal, state, or local level–with a similar problem. Civic Commons has already jumped on this opportunity by trying to facilitate technology reuse across city governments. If ACRNM invests in an open source solution, then other agencies can seek out that solution and adapt it to their needs, reducing government IT costs overall.
- As we’ve discussed, open source software creates a competitive market for services. That makes an open source mandate a job creation program. Every new open technology is an opportunity for several small businesses to open. These are businesses that share fixed costs to market entry and add value through technologist consulting and custom development. Jobs customizing existing open source solutions can be well-paid with even an entry-level programming skill set, and are a good way to build a lasting career in the technology sector. Federal investment in open source software builds our national supply of technology skill faster than proprietary investment.
- Lastly, but certainly not least, is the possible reuse of open source technology by the private sector. Just as federally funded research contributes to growth in America’s scientific industry, federal investment in software provides a foundation for stronger tech companies. Openness in both cases expands the impact of the funding.
So, to recap: if this sort of policy passes, the winners are government employees, taxpayers, entry-level workers with a minimum of technical skills, and the tech industry in general. The losers (in the short term) are those existing companies that have the federal government locked into custom proprietary software contracts.
I want to make a point clear: I am talking specifically about new software development in this post. Purchasing licenses for existing proprietary software is a different story.
Brian Carver, professor at UC Berkeley School of Information, has offered this clarification of what an open source mandate could look like:
- An unambiguous policy and awareness that all software created by
federal employees as part of their job duties is not subject to copyright
at all and is born in the public domain, and therefore not subject to any
license terms at all, including a FOSS license.
- Given 1, the federal government should either just use github/bitbucket
or set up a similar repository to share all such federal government
software that is in the public domain.
- When the federal government contracts with developers for software,
there should be an unambiguous policy that all such software must be
licensed under a FOSS license unless subject to a specifically-requested
exemption (national security, military, etc.)
A central election issue is the size and role of government in the economy. Politicians on the right advocate for smaller government and a strong private sector with competitive markets. Politicians on the left advocate for government’s active investment in the economy.
Proprietary government-developed software is the worst of both worlds: inefficient government spending to create parasitic, uncompetitive companies that don’t invest their technology back into the economy. An open source mandate would give us the best of both worlds: efficient government spending that shrinks government (by easing overhead) while investing in new technology and competitive businesses.
The movement for open access to government funded research is strong and winning victories around the world. Maybe we can do the same for government funded software development.
Sounds good to me. Some things I wonder about:
1) How hard is it going to be to get professors running a lab to go along with this? I think many of them are very paranoid about sharing the work going on in their groups for fear of getting scooped (and perhaps often for fear of exposing how crappy the code is).
2) How much more will companies charge knowing that the code will be open sourced?
3) Will the mandate allow contractors to use existing proprietary code as libraries or separate utilities to be called? This seems to go against the spirit of what you suggest — others will have to get access to that proprietary stuff — but matches current practice when going the other direction, calling from proprietary into open source. (Examples that come to mind: SAS, iOS, expensive optimizing compilers and associated libraries, GPU drivers from a third party.)
4) Will there be minimum standards on the code in terms of documentation, particularly on how to build and run the code, and style?
1) Agreed. I’ve heard this myself from some people who run labs. I really just think this is something they need to grow out of. If scientific publication had the same standards of citation for using other people’s code as they do for building off of others’ research, it wouldn’t be as much of a problem. Those norms won’t be established until there is much more cross-pollination of code though.
2) That’s a really good question. I would expect they would charge more than proprietary competition, if that were allowed. But that’s because the proprietary company could expect to recoup costs through lock-in. That said, government procurement is already considered a bloated and wasteful process, perhaps because there’s no accountability on the product. (If third parties can audit software solutions, then there’s a way to put pressure on contractors to build things efficiently, e.g. using other available open libraries)
3) Realistically, yes, I think it would allow calling out to proprietary libraries and services. It’s really hard to push ‘pure open’–many people are of the opinion that it’s a dying radical position, dwindling with use of the GPL. Whether or not that’s true, just another step in this direction would be progress.
4) Another really good question. I can imagine a wonderful future where the government had coding style guides that it used for new software development. Hell, procurement is already riddling with obscure ‘compliance’ regulations, so it’s not something they’d have any problem with in principle, I’d guess. And I guess they could issue a Lint-like program to validate, so it wouldn’t be terrible to enforce. That said, I think that by the time this issue came up the policy would be a victim of its own success.
[…] of funding. How do you encourage the production of costly public goods? The classic answer is state funding. Today we have another viable option, […]