(Some raw thoughts for you. I welcome feedback and engagement via email.)
Two considerations are core to my work on technical projects: ethics and politics.
I don't mean ethics in the sense of a professional code of conduct nor do I mean politics in the sense of what goes on in Parliament. I use these terms in a philosophical way. For instance, from an ethical point of view, I'm concerned with how I live and behave, how I may be "good" or "bad" and how I'm able to coherently reason about such concepts. In a political sense I wonder how diverse groups of people live and work together, how collective decision making takes place and the nature of power ~ how it is obtained, exercised and controlled. I reflect upon my life as an individual and my place in our society.
Why is this important?
I am an atheist: I don't believe in an afterlife. Nevertheless, I am alive, and as far as I can tell it's only going to happen once, so I'm going to make the best of it. Asking "how?" leads to ethics and politics.
What have ethics and politics to do with technology?
First, I must be clear that by "technology", for the purposes of this post, I mean computing - machines programmed with instructions to some (hopefully) useful end.
Secondly, such instructions (software) do not distinguish morality or legality - they are merely capability. Capability permits certain forms of computer based behaviour that in turn pose ethical and political questions, requirements and possibilities for both users and programmers (like me). It's not the computer in and of itself that is ethical or political. Rather, it's the design and use of the computer by/for/on people that makes it ethical or political.
Finally, when we write code we're engineering a digital world from a certain point of view that is reflected in the capabilities of the code we create. We choose what and how such capabilities are created. Often code exercises power over its users. For instance, your bank's website mandates only you to access your accounts. This is a desirable use of power. But remember, you have no control over the machinations of the bank's software - it is exercising power over you and was written by someone aligned with your bank's point of view. Most of the technology you own or use is not under your control.
It is for these reasons (that people choose what to make computers do, and often computers have power over us) that writing software is both an ethical and political activity. Furthermore, technology is important because of its ubiquity in most aspects of our lives (and it's insinuating itself into those aspects it isn't already a part of). As Marc Andreessen quipped, "software is eating the world".
Unfortunately there is a problem: the vast majority of humanity are merely consumers of technology. We consume in complete ignorance about how it works. There are two reasons:
- For most consumer technology, we don't have the freedom to examine, reuse or change the software that defines the capabilities of our computing devices.
- Even if we had the afore mentioned freedom, the skills, attitudes and knowledge required to understand, create and control technology are uncommon.
The closed and opaque nature of consumer technology has an antidote: free software as championed by organisations such as the Free Software Foundation. Their website explains:
Free software developers guarantee everyone equal rights to their programs; any user can study the source code, modify it, and share the program. By contrast, most software carries fine print that denies users these basic rights, leaving them susceptible to the whims of its owners and vulnerable to surveillance.
Most people in the technology world know about the free software movement and its achievements. Unfortunately, the second problem - a lack of skills and knowledge - means such achievements are only appreciated by and available to people in the technology world who have had the privilege of access to a technical education. This latter problem has been, for many years, largely ignored.
This is to be expected: we've only been programming computers since the Second World War (for example, the British Colossus and German Z3) and our current notion of programming only emerged in the 1960s. Put simply, humanity have not been doing this for very long when compared to other endeavours such as writing or composing music.
We're only just getting started and so, proportionally, not many people know or care about programming. People who write code have a similar place in society as scribes in ancient Egypt - only they understand how such a valuable and powerful thing works. It's not that programming is hard, it is simply not a widely practised skill.
Today, we don't have scribes: most people are literate and literacy is a core aim of educational systems - not because everyone will become a writer or enjoy reading, but because it's such a fundamental skill to flourish in today's society.
Imagine if everyone had access to source code and had the skills to make the software their own. Imagine groups currently disenfranchised by technology making the digital world their own. Imagine a ubiquity of skill such that doctors, musicians, lawyers, teachers, poets, architects, scientists, politicians and others involved in a diversity of endeavours are liberated by technology to advance their disciplines.
This is what I imagine. This is why technical education is so important. This is why I volunteer my time to promote such educational endeavours.
I also imagine other things: conflict, dubious use of technology, the exploitation of others through technical means and technology as a tool for domination, bullying and violence.
So we return to ethics and politics. These disciplines give us the concepts, history and vocabulary to think about our own and wider society's use of technology. It's also why I believe all technical education should include ethics and politics. The very best programmers I know understand the importance of ethics and politics as applied to what they do.
If you ever wonder why I'm motivated to work on certain projects, you'll probably find the answer involves much of the above. I want others to have the privilege of programming computers whilst also developing the ethical and moral outlook to help them best apply their skills.
If you agree, get involved with computing education.
It's a long term project and we won't see the fruits of such labours for another decade or more. Nevertheless, getting involved today means you help shape how things unfold. Remember, while the skill of writing code is neutral the intentions behind such code depend upon transmitting an ethical and political appreciation of our world.
Ultimately, education makes our future possible.
What that future is depends upon who turns up to provide such education.
Don't just sit there, do something!