Open-sourcing the law

Let’s start with a question. What if proposing new laws was as simple as creating a PR for an open source project?

Thinking of law as open source code for the government system of a country has been around in my head for quite a while now. The more I entertain it the more I like it. I mean, it makes a ton of sense, in both an open source project and law:

  • There are requirements for a new proposal/PR to be submitted.
  • There are a selected few people that can approve the proposal/PR.
  • On large systems, there are different people in charge of different modules.

One main difference is that one is digital and the other is not. This is important. In Mexico, you need to get the full name, voting id number and signature of at least 135,000 citizens of voting age (this requirement is more specific but I’m simplifying it for practical purposes). This hard requirement has to be done on paper, in person.

If you think about it, this limits the amount of people who can propose a new law to a handful of people — you would need the time and resources to mobilize yourself and probably a whole team just to ask for signatures.

What would happen if this could be done digitally? Is it even possible or safe? I don’t know. But I do know that it would make it easier to propose new ideas more efficiently.

Now what if there was a public channel where proposals could be seen? What if one could browse them as if looking at a forum and “vote” just with a few clicks? How fast would a city improve? A state? A country?

Current user experience is terrible

As I said, not only is it expensive, it’s also hard to “convert” people. If you live in Mexico or have ever been here, you’ve experienced being approached by random people in the street begging for money, selling you something, or asking for donations for a good cause which you doubt is legit. Well, asking for signatures is in that same category. Most people will ignore them because of this.

This could be greatly improved by having a clean channel. Organic sharing of new proposals would scale relative to the agreement of such a proposal. People would be better informed about this new proposal and can take their time to decide if they agree or not.

Big refactors are rare and hardly approved in large software projects

This wouldn’t be aimed to revolutionize the government and change everything from scratch. That’s not gonna happen, just like that rarely happens with large old projects with many dependents.

I imagine this being useful for relatively smaller but important changes like:

  • Lowering the maximum amount of hours of work per day.
  • Limiting the amount of time that a social media app can be used by locking the feed after a given number of hours.
  • Or prohibiting UI design practices that make us addicted to our screens.

These kind of “smaller” changes can have large impacts on our quality of life. We wouldn’t depend on the few politically inclined people to do this. And in the case for Mexico, it feels safer to do behind a screen.

Unit tests? Integration test? Failing builds?

In any type of software project, every time that someone pushes a new change to the main branch, there is a risk that this change will produce unintended behavior, bugs or problems. We ideally have setup multiple tests that help prevent this and guide us to what could go wrong.

It would be interesting to imagine what type of system is needed for some equivalent solution. But before thinking of solutions we would need to look at what problems could arise, which at this point I don’t know.

The law of unintended consequences

To be honest, I don’t even know if this is a good idea. Maybe it produces more trouble, maybe the platform becomes filled with hate towards politicians, or maybe it polarizes people more. Sure, we could do things to prevent this but will it work? Will there be a point of no return for good or for bad?

If you read this until the end, let me know what you think. I'm definitely not an expert and would love to converse about this topic.