Government Abandonware

Governments order software for their allegedly very specific needs. And the EU government (The European Commission) orders “visionary” software that will supposedly one day be used by many member states that will be able to communicate with each other.

Unfortunately, a lot of that software is abandonware. It gets built, the large public doesn’t see the results, and it dies. A while a go I listed a couple of abandoned projects of the EC. Some of them, I guess, are really research projects and their results may be important for further development. But I couldn’t find the results. All there is are expired domains and possibly lengthy documents. But 100-page documents about software are not software. I haven’t seen any piece of code whatsoever. The only repo that I found is that of OntoGov, but all there is there are zip files with “bin” in their name.

Even though unused, the software maybe isn’t lost (although the agency behind some of the projects doesn’t exist anymore), and may be utilized by new projects or even businesses. But it’s just not accessible to the general public. It’s probably hidden in a desk, in a dark basement, with a leopard warning on the door (as in the Hithchiker’s Guide to the Galaxy).

But the problem is not only on EU level. It is on national level as well. Since June I’m an adviser to the deputy prime minister of Bulgaria (which I’ll write about another time), and from the inside it’s apparent that software has been built over the years and then forgotten. I’m pretty sure this is true in most countries as well.

Why this is bad? Not only because of the suboptimal public spending, but also because a lot of effort sinks into a bottomless pit. Software, even though not useful at the given moment, may be used as a base or a building block for future projects that will be really used. Now everything has to start from scratch.

A solution I’ve been advocating for for a while is open source. And, getting back to the EU, there’s an “Open Source observatory” to which I’m subscribed, and I get news of all sorts of state-level and EU-level open-source initiatives. And the other day I saw one pretty good example of the state of affairs.

I read that an open-source tool for collaboratively editing laws is available. Which sounded great, because in the past weeks I’ve been participating in law-making and the process of sending Word document with “Track changes” via email among a dozen people is not the most optimal editing process a developer like me can imagine. So I eagerly opened the link, and…

It got to the front page of /r/opensource, and eventually, after my request to the admins, the page is accessible. And guess what? There is no link to the code or to the product, and the contact person in the link hasn’t answered my email. Yes, it’s holiday season, but that’s not the point. The point is this is not real open source. All dead software from my tweet above is gone and useless, even though, maybe, you can contact someone somewhere to get it.

Not only that, but currently important EU projects like the ones under e-SENS (an umbrella for several cross-border access projects, e.g. e-procurment, e-jusice, e-authentication (Stork)) are practically closed to the general public and even governments – for the past 10 days I wasn’t able to get the reference implementation, even though I’ve sent a couple of emails (from my government.bg email).

I hope I’m wrong, but my prediction is that these new projects will follow the fate of the countless other abandonware. Unless we change something. The solution is not just to write “open source” in the title. It should be really open source.

The good news, for Bulgaria at least, is that all new publicly funded projects will have to be open source from day one. Thus not only the work is less likely to die, but also the process will be transparent. What software gets built, with what level of quality and for how much money.

We are currently in the process of selecting the best solution to host all the repositories – either on-premise or SaaS, and we are also including requirements for supporting this solution in proposed amendments to the e-governance law.

I hope that this way we’ll get way more reusable code and way less abandonware. And I hope to extend this policy to an EU level – not just claiming it’s open in the title, but being really open. Not for the sake of being open, but for the sake of higher quality. It won’t necessarily prevent abandonware altogether (because useless software gets created all the time, and useful software gets forgotten), but it will reduce the wasted effort.