What obligations do software engineers have toward the public? Other disciplines like civil engineering have an obvious impact on public safety: if you are sloppy with your design and a bridge falls down, you’ll have blood on your hands. With software, these are real concerns too. I don’t know if any internet-of-things bridges exist, but I can point to at least one software-controlled dam. Any software engineering course worth its salt will mention the Therac-25 radiation therapy machine which overdosed its patients. However, the software engineering discipline is fraught with moral challenges that go far beyond not killing people – surveillance and sexual harassment are just a few that come to mind. So what would a regulated software engineering profession look like?
I’ll give some background on my own experience first. I graduated with an engineering degree (a B.Eng.) in Quebec. This has two implications professionally: one, I am eligible to enroll in the Order of Engineers of Quebec; two, I was given a weird misshapen ring to wear on my pinky finger in a vaguely cultish graduation ceremony. I’ll take these in order.
First, enrolling in the Order of Engineers of Quebec would entitle me to call myself an engineer, use “eng.” or “ing.” after my name when signing letters, stamp certain technical documentation, and do specific kinds of work in some protected industries (I believe railroad control systems are an example). If you are like me and work in the software industry, this all sounds absurd. If software engineers acted like doctors they would be laughed at, and rightly so. For all practical purposes, enrolling in the Order of Engineers of Quebec would not be super useful to me. Google Montreal employees get by just fine with calling themselves software developers.
That said, there are aspects to the structure that are appealing. Many professional orders like this (supposedly) support their members by revoking licenses of the corrupt or dangerously incompetent. They support members who wish to blow the whistle on projects that endanger public safety and require members to do so.
The second thing that my engineering degree gave me was a weird ring that I wear on my pinky finger called the Iron Ring. In San Francisco, this immediately marks me as a Canadian-educated engineer 1. When you graduate with an engineering degree, you are invited to atend the Ritual of the Calling of the Engineer, a private (but not secret) ceremony designed by none other than Rudyard Kipling where the presenters address each other as, e.g., “Engineer Tavish Armstrong”. A feeble attempt at making it secular has been made. While the ceremony itself is weird or offensive to many, the main thing to take away from it is the Obligation, which you can read in lovely jpeg form here. The general idea is that you should not allow your work to harm public safety and you should not be corrupt. The ring itself is meant to remind you of these two aims: it scratches on the paper when you write your plans 2 and will scratch gaudy gold jewellery that you have on the adjacent finger.
Does the Ritual of the Calling of the Engineer provoke good work and behaviour from engineers? Unclear. But at least it’s a nice story.
So, with all that out of the way, what would it look like to regulate software engineers like me?
For starters, I like Mike Hoye’s blog post on the bare minimum developers of social software should do to protect and support their users and his much longer post on how software affects your everyday freedoms and why this is such a different issue than the notion of software freedom that the Free Software Foundation pushes.
The ACM has published a code of ethics that contains passages like:
Inequities between different groups of people may result from the use or misuse of information and technology. In a fair society, all individuals would have equal opportunity to participate in, or benefit from, the use of computer resources regardless of race, sex, religion, age, disability, national origin or other such similar factors. However, these ideals do not justify unauthorized use of computer resources nor do they provide an adequate basis for violation of any other ethical imperatives of this code.
While jumping straight from “well, computers systems can be biased” to “but be sure not to hack racist computer systems” is a strange way to phrase this, we could charitably assume the author(s) intended to discourage racist facial recognition systems or advertising tools that enable violations of the Fair Housing act of 1968.
I’m interested in learning more about the history of professional organizations of engineers or any attempts that have been made to regulate the software engineering profession. If you have suggestions, please let me know (my email is tavisharmstrong at gmail).