Categories
Uncategorized

Why Iowa happened and why government websites suck

The democratic caucus fiasco in Iowa is an example of an important thing:

Civic orgs, like the DNC or the government, need to stop using private contracting companies to build their closed source software. Democracy is at stake.


First let me establish some definitions, if you already know this stuff you can skip it, but I just want to make sure this article is accessible. Definitions have also been simplified for the purposes of addressing context.

What does “closed source software mean”?

“Source” refers to the code that a programmer writes to make a computer program. Source code is then generally compiled down into a file that the machine can read to execute the program. This is called “binary code” or you might refer to it as a native app or an executable.

Closed source means that you get the compiled code, but you don’t get the original code that the programmer wrote. This is how most consumers use software, as compiled code. Examples are, the operating system Microsoft Windows 10, apps on the Apple app store, or games on your PC or in a console.

Open source code is code which you have access to the original code. This means you can edit and change your program. You can copy it. You can reuse it for your own purposes.


Open source is necessary for transparent democratic governance.

Let’s start by just agreeing to assume that transparency is a necessary aspect of a democracy. A democracy whose inner workings are inaccessible to the voter might as well be a black box. There’s no way to really hold it accountable or know it’s working.

Open source in civic orgs is the only way to ultimately insure transparency in government. We have reports that candidate Pete Buttigieg paid money (about 40k) to the company Shadow, funded by superPac ACRONYM (fire the show writer please). Now we don’t have to immediately assume this is corruption, this could be innocent. But it’s kind of hard without being able to see the code ourselves and audit things.

There are ways to do this with open source projects. First the source is directly available so people can just see it. Not only that but you can verify your vote!

The open source blockchain project Hyperledger was used to make the West Virginian experiment in smartphone voting, Voatz.

Helios provides a voting server system that allows voting by email, that uses hashes to confirm your vote and keep your vote anonymous at the same time. Helios is obviously not a good pick, design wise, for national elections but it’s encryption and verification method certainly are.

If transparency is so important to democracy then why isn’t the infrastructure being developed for democracy also being transparently developed in the most transparent way possible?

Open source is extremely common and yet most civic org code is closed source. Why?

It’s simple.

Money

1.

Closed source companies sold fearful portents about the security of open source in order to secure contracts with civic organizations.
Security is not an issue with open source. In fact it is generally speaking more secure than closed source software. The vast majority of online servers are Linux based. Microsoft itself is one of the biggest contributors to Linux and now runs many of their servers on Linux. The preferred OS for hacker and crypto types is a Linux variant called Kali.

The reason why is simple. A team of 3 or even 300 devs are nothing compared to what the eyeballs of 30,000 can spot. Bugs will happen. But like a body with a healthy immune system, the only way to deal with potential problems is exposure and adaption. Open source projects can’t hide behind obfuscation, which is more often a crutch than anything else. Why were we told anything different? As I said, it’s about money. But this isn’t the only way it’s about money.

2.

Leaders at civic orgs have been incentivized to buy from private contractors. This is a problem for a number of reason:

2.1

It strips internal departments of their tribal knowledge, and reduces the investment in improving and training staff.

Let’s say a contractor came in and made a web app. You might do this because it’s more cost effective in the short term to bring in an expensive but short term team, that already knows how to make the web app. They just come in and make the app. Then some of them might stay awhile to train up some internal staff for hand off, but then from then on the web app is largely just being maintained. This is essentially a form of deskilling.

This is a problem because there’s only so much you can document and teach. A lot of experience is gained through the process of building something yourself. And employees are not static, they have growth potential. Dividing out efforts between internal and external teams means losing a substantial part of the people growth and it disincentivizes investing further growth in internal employees because they largely are relegated to a role of keeping the ship on course.

2.2

Private external contracting companies do not have an incentive to open source their work, generally speaking. They are a private company after all.

2.3

Between these first two you get this third issue. Self dealing behavior.

That Pete Buttigieg payment to Shadow? Well it might interest you to learn that the Tara McGowan, the owner of ACRONYM, has a husband named Michael Halle, and he’s a senior strategist for Pete…

We can’t prove anything happened here obviously but the power to award contracts has long been used as a tool of “machine politics” and graft. There is value created in the process of building things (the cultivation of tribal knowledge and the development of libraries and systems to reuse) and that value is externalized from the public space and internalized to the private space. Make profits private, make losses public. The old Bank Bailout strategy.

2. 4

Contracts are a way for politicians to benefit those they like and people who will support them. Often rich people. Often superPacs. Lawerence Lessig makes the argument for how superPacs corrupt the system in his TED talk here. The same basic principle applies.


Open Source solves problems you didn’t even know you had

Besides increasing transparency/security there are additional bonuses to shifting our government from private closed source projects to public open source projects.

Code Reuse:

Sure, growing an internal team long term is going to be more expensive upfront but it’s an investment with a very very long tail.

A project which is used in Iowa can be taken and repurposed in another caucus state. Or can be repurposed by a caucus like structure in another country! All programming and computer science is like this. It’s people building on the work who built on the work of other people. The initial investment in ARPAnet, and research into computer processing was all government funded, as a big upfront investment that has had a long tail of returns. We need to reinvest in our technological infrastructure, not just so that crap like Iowa doesn’t happen but so that there is a rising tide to lift all boats. Economists Mariana Mazzucato makes this argument in her book The Entrepreneurial State.

Bottom up, grassroots experiments in democracy:

There are lots of experiments that can be attempted at local levels with the possible overflow into larger levels, bottom up style, rather than top down.

Remember how I mentioned Helios and Voatz earlier? Helios allows for mathematically certain verification that your vote was counted. But it also allows for alternatives to First Past the Post (the traditional voting you know of), such as Ranked Choice voting. This is simply the tip of the iceberg.

I recommend checking out these two other projects, purely from a design perspective, because they show that there is a lot of of further changes to the system that could be made to improve it.

Kialois an argument and discussion aid tool that structures conversations in ways that are meant to create proper citation, avoid logical fallacies, and map the difference of opinion across many levels of an issue.

Loomiois an open source “decision making platform”. Think of it like slack but for getting stuff decided instead of endlessly flooded with gifs. It operates on principles of discussion/debate that were developed by organizers of Occupy Wallstreet.

Provide a method to improve democracy:

Think of democracy as a code project. If you’re reading this article you might not know much about code, but you can observe these basic points I’m going to mention in a lot of human systems around you, music scenes, the “vibe” of a relationship, the evolution of language and how we pass on knowledge in communities.

Code projects, particularly open source ones, usually start with someone trying to solve a problem. They go at solving that problem, and they write this initial program. That program is going to have certain decisions they made for certain reasons that at the time made sense but maybe don’t now. Or perhaps there were bugs in the code, so the developers patched it up with duct tape and chewing gum, which works but if you push the wrong lever or button the whole thing just shivers and shakes and falls apart in a heap on the floor.

In tech circles this is referred to as “tech debt”. This is obviously a problem. It’s a problem not just with programming code, it’s a problem with our system of governance in general. Think of laws as similar to programming code. Did you know that there’s nowhere in the constitution where it is stated that the job of the Supreme Court is to determine constitutionality?

That’s because the Founders didn’t specify that…why? I have no clue. But the constitution is the first of it’s kind in modern history, an explicitly democratic republic. It’s not surprising that maybe they didn’t get it perfect the first time. I mean, they did immediately amend it, after all. It’s a document which was built to evolve.

But the problem is that it’s the beta. Or as devs say “devving in prod”. There’s been a lot of innovations in democracy in the last 250 years. Alternative choice! Parliamentary systems! Mathematical models to prevent Gerrymandering!

But what we have instead is the beta. And it’s old and it’s crusty and the chewing gum is starting to get brittle. We need real solutions.

A big part of fixing this is fixing our infrastructure. And open source is key to that.


One last thing:

This won’t be easy.

Open source is not known for being user friendly. Neither is politics.

Those who make open source are also the ones who use it so it tends to trend more towards technical users. This is much less true than it used to be. But it still is a little true. But this is not necessarily a bad thing.

Technology should not be a black box. Just as civics class is a necessary part of being a citizen, technical knowledge is a necessary part of being a digital citizen. This isn’t going to be easy but… like really when has democracy ever been “easy”, right?

Democracy can’t happen without you, as User, and Author. Do no let an elite political class define the system you use. Government for The People, by The People, Author and User one and the same.

mr. barnie sanders saying hello