Article / 25th Jan 2017

On "Politics" and Software

For a long time, I believed that software was above politics. It's an attractive dream, one furthered by the very nature of software itself: software is clean, logical, and easy to separate into discrete sections that don't leak into each other. You can carve off neat, logical blocks, and debate and change them independently of everything else.

Of course, this is not true; anyone who has worked on a large project knows that as it grows, there are mysterious side effects and unknown specifications. At some point, working out what the original system's specification ended up being becomes so difficult that it's easier to patch on changes and watch to see what happens (which, indicentally, is why the legal system works like it does).

Moreover, as a project grows, writing code becomes a smaller and smaller part of the engineering problem. It takes a team of dedicated people with mutual respect, understanding and empathy to make a big project work smoothly; where everyone knows their area and accepts they don't know much about the others. Where people don't jump to conclusions about how a problem is easy to solve but another team has made an excessively complicated solution; these things all take trust.

Open Source software relies on this even more than normal; there's often no direct contact with the people who use the software, the range of contributors varies wildly, and almost everyone is contributing their free time. You could say they are innately altruistic projects, gathering people together for the common good; most OSS contributors would agree with you.

There have always been trolls and ill-minded people peppering the open source world, and we generally dealt with them effectively; all but the most misguided people would agree that toxic behaviour in a community is a reason for ejection.

The rise of the far right, however, has brought about a growing problem of people whose contributions and behaviour inside the community are "fine", but who bring along a public persona that shows bigotry, fascism, or other similar tendencies.

Is rejecting bigots bigoted?

Many years ago, I believed that people's contributions could stand on their own merit; that one could sit in the happy tower of objectivity and separate a person from their work. That might have been true if writing software was a perfect, logical place, but it's not - it's written by teams and communities.

Bring up even the idea of excluding bigots, and you'll quickly be assaulted by a wave of people arguing that "excluding bigots is as bad as being one!". For a moment, it might seem like a convincing argument, but let me tell you: it's not.

Sexists, racists, transphobes, homophobes and others seek to divide communities, to isolate whole groups of people based on their fundamental traits; things they cannot change and that are a key part of their identity. They want to do this only for their own personal gain, from a belief that it will make them or their family better off.

Seeking to remove these people has a different purpose - to keep communities together, to double down on the altruistic goal of making something for the common good. They want to take shared resources (of which the community is one) and exploit them for personal gain, not to further them and nurture them.

Accepting a contribution on face value and ignoring the person behind it might seem fine today, but not only are you normalising and innately encouraging that person's behaviour, you're probably scaring away two other contributors who that person seeks to exclude.

Nearly all of human accomplishment is built on the principle of working together; we stand on the shoulders of giants. Those who seek to divide us are the only ones who should be excluded; it is their choice to hold those views and persecute others, and it's something they can change.

Second chances

I'm still somewhat naive in that I think most people just want things to go well; I think most of those who support Trump and other far-right causes believe that it is the best thing to do for them, their family and their friends.

To exclude someone just for a single retweet of Trump would be foolish; many who voted for him already regret it, and we all make mistakes. We cannot forget, either, that fascism wears a friendly face - it promises to make you richer, to keep you safe, to make you more respected, and it is easy to be sucked in at first.

The only way I see to fight it is to fight that image. We must strive to make it uncomfortable and embarrassing to be racist, sexist, homophobic, transphobic, or anything else on the divisive far-right agenda.

My first step towards that will be withdrawing my help from, and no longer accepting contributions from, those who are clearly against equality, who express a wish to harm, deport, imprison or kill their fellow humans just because of what they are, or who clearly support those who do.

If you say you support someone for their economic policies but not their racism or sexism, then what you're telling me is that you put your economic gain above the lives of others. That may not be how you see it, but that's what you're doing when you support someone for reasons you think technically aren't racist or sexist.

If you disagree with me on taxation, how to fund science and the arts, military and defence spending, housing policy, or other areas of politics - I still mind and have opinions, but these are places we can compromise, debate and discuss, and not a reason for me to exclude someone. We must put aside our differences and work together in times like these rather than dividing over more minor squabbles.

If you wish to deny rights, imprison or cause material harm to my fellow humans, for no more reason than who they are, that is not politics; that is crossing a line. I will offer to help you out of it, to show you the things that taught me why I should value the lives of others, but if that doesn't change your mind, I will make your life as difficult as I possibly can, and support others who wish to do the same.

However, if you push for equality, if you feel discriminated against, or if you are besieged by those who wish to silence and divide us, I will do as much as I can to support you. My emails are always open; I'm happy to use my more privileged position to help out where I can. If there's one thing I've learned from the wonderful communities I'm proud to be part of, it's that having other people to help out is half the battle.

If you're reading this and sniggering about how I'm so wrong and naive - and I doubt you made it this far, as I'm mostly preaching to the choir - I don't know what to say to you. Yours is the easier path, the one that humanity has tended towards for so long, but overturning it over the last century has brought us some of our greatest advances. It's possible to handle immigration well, to have the economy work for all, without all of these terrible things. If you're on the fence, I am happy to talk to you as well; if you are deep into the far-right cult, I hope we can work out how best to help you out of the spiral of lies when the time comes.

If, instead, you're reading this and thinking "I wish all this politics could get out of the way of good software", then I'm afraid you are coming from a place of privilege. Some of us cannot simply ignore politics; the actions and laws being written threaten us and put us on edge every hour of every day. If you want to stop hearing about politics, then help us work towards a place where we can all stop worrying about it together, one where we're all equal.

I can't deny that I sometimes think about just giving up, and hoping that my life won't be affected much. It's that creeping, alluring part of fascism that makes it so powerful. At the end of the day, though, I would much rather plant my flag with those who are welcoming, understanding, and seek to work together for the common good, than to slide into a world of division and stagnation that would drag us all down in the end.