If you’ve never looked at GitHub, take some time to explore the site. It’s built on top of Git, an open-source “revision control” system that provides a way to track changes to projects over time. You can fast-forward or rewind through history to see how projects grow and evolve, and create derivative projects with one command. You can also file bugs or send in changes, which project managers can accept or reject. Some of the projects go back decades.
The initial release of healthcare.gov was built along these principles, but the real core of the site—the much larger, more complex back end—wasn’t. The process remains opaque. According to the Sunlight Foundation, a nonpartisan group focused on making government more accountable, at least 47 contractors have been involved with the Affordable Care Act in some capacity. The White House has yet to release its own explanation of what happened. So we don’t know what went wrong; we don’t know how it was built; and as far as anyone can tell, the project didn’t give anything back to the larger culture of code development.
Why isn’t an open, proven process, like the one that GitHub and other sites make available for free, the norm for government work? Commenting on the failure of healthcare.gov, Clay Johnson of the Department of Better Technology, a company that designs and builds software for government, writes that “6,500 pages of regulation, cumbersome business registration processes, and hostile bidding environments ensure that very few new businesses can compete for contracts.” Plus, in the era of WikiLeaks and Edward Snowden, the fear of security breaches makes bureaucrats allergic to a transparent software-development process. According to Tom Lee, director of Sunlight Labs, “the single biggest obstacle is that opening data is seen as all downside risk.”
Software systems are so large now that they can no longer exist separately from other systems. Code always depends on other code. It’s never finished: Write a piece of software today, and you’re likely to be debugging it a decade later. Modern software development is more like sustainable forestry, where you expect to keep coming back to the same grove year after year. The technology industry has come to understand that software is a process. The U.S. government, however, keeps insisting it’s a product—ironic, given that we can trace our history back to an open Constitution that defined, in Article V, the means of amendment.
Ford ends his article by arguing that the U.S. government should make all of its software development projects open-source by default, with some exceptions on grounds of security or copyright. I’d add that if the federal government does make exceptions, the bar should be set very high.