Let’s begin with a more pressing question, why does the government insist on using closed source software in the first place?
The federal government is the single largest purchaser of code in the world. So why is this code — taxpayer-funded and integral to the day-to-day working of our democracy — so often hidden from public view?
Well, there are actually a few good reasons, and it’s best if we see this from their perspective before banging pots and pans together demanding everyone join the open source movement. (To read about it from a contractor’s perspective, read our post on Why Government Contractors should Open Source their Software.)
Generally, within the government there is a deep-set misconception that open source software is unstable, less secure code created by hobbyists or informal organizations who simply send you to the support forum if you run into a problem. There are no suits or client meetings or any real guarantee that the feature you want will be implemented in the next release. As you can imagine, all of these fears are enough to send the government running to their usual contractors for a nice, safe batch of closed sourced software.
Another pretty big reason is that the government really doesn’t like their errors to be exposed to the public, and if they’re hiring third party contractors to develop their software then they’re clearly not technical enough to evaluate the code in-house. With open source code, the government would be opening the door to millions of critical eyes who are much more technical and experienced than anyone in the agency. On the other hand, not releasing your code to the public poses zero liability. Makes sense, right?
Now you’re likely thinking “wow it sounds like a terrible idea to use open source software, maybe they’re right to avoid it!”. You could be right too, but allow me to outline a few reasons for how governments could actually benefit from open source software.
Code can be tailored and re-used
When you purchase proprietary code, that’s it. You get what you pay for and if you want changes then you have to contact them and negotiate. Open source software is the opposite, it’s flexible and accessible so the government agency can have it modified, patched for security, upgraded for new features, whatever they need.
As for re-using code, look at it this way: the government is comprised of many agencies, and if each agency has their own contractor developing custom code for similar problems, there’s going to be a lot of different software needing individual maintenance from specific vendors. On the other hand, if they all adopted open source software, the code could be developed once and then shared across the agencies to then be simply upgraded to adjust specific use cases. It’s cleaner, more efficient, and generally less expensive.
Maintenance is open to the best bidder
With open source, once it’s out in view of the public you can almost always expect someone to pop up with some bug report or suggestion for improvement. When that happens, the agency will need to find someone to give the code a whirl and implement the improvements or add a new feature. This usually leads to competitive bidding where various IT vendors are going to want ‘in’, so the government agency now has the option to spend the amount they consider reasonable on the IT supplier they find most suitable for the job.
On the flip side, if proprietary software is being used then once a new requirement pops its ugly head into view, only the creator and/or vendor of the software can respond. Not only does this completely limit the agency’s choices, it also gives the creator/vendor the dangerous liberty of charging whatever amount they see fit, since the agency has nowhere else to turn.
Better coding practices
How would your standards change if you knew your work was going to be hidden away forever and no one would ever go through it, compared to something that would be out on the internet where anyone could review it and point out the bad parts? In the latter case, you’d do your best to impress, right? Well that’s what happens with open source code.
As an agency, it’s in their best interest to have mature, well written code working under the hood of their website or applications. With a closed code contractor, better code usually means higher prices, but with open source you’re almost guaranteed to have cleaner code.
Enhanced control over security
Let’s dispel the “open source software isn’t secure” myth right now. You may be surprised to learn that one of the biggest advocates for open source code are the U.S. Ministries of Defense. Why? Well the thing with proprietary software is that by not exposing their source code they’re not really making it harder to hack, but they are making it harder to patch quickly as the agency itself has no authority or access to the code. They rely solely on the official vendor to take care of whatever issue may arise.
If the code is open source, anyone in-house or whichever IT supplier is at hand can react to a vulnerability being exploited by hackers. They can also audit the code at will for backdoors and other potential problems.
Transparency for taxpayers
Government agencies use tax-payer’s money to fund their coding endeavors, so naturally the tax-payers (a.k.a the citizens) want to see where their money is going. In fact, this demand of transparency has been the trigger for many “open” policies such as “Open Data”, “Open Education”, etc. So now, it’s “Open Government” and it’s becoming increasingly more important to have as much transparency as possible with the citizens who want to stay up-to-date with the actions of the public entities that serve them.
Open source software is the perfect vehicle for this, as the whole concept of open code is for collaboration towards a common good. As a modern democracy in a highly digital world, maintaining transparency of data is paramount for government agencies to form positive, trusting relationships with their citizens.
With more and more companies embracing open source practices, it’s reasonable to expect the government to follow suit. In fact, since the year 2000, more and more countries’ governments have already opened their eyes to the possibilities and benefits of open source software, including Brazil, Portugal, France, Germany, India, and as of August 2016, the United States announced their open source policy where at least 20% of code must be open and shared between agencies.
With the added advantages of open source software you’ve just read about in this post, and seeing the obvious potential for it be a wide-spread practice over the next few years, it’s in all governments’ best interest to continue making progress towards the open source movement.
If you’re a government agency looking to hire an open source software developer, we’re here and waiting for your call. Get in touch today.