Why Software Developers Should Take Ethics into Consideration

| by Ben Linders Follow 15 Followers on Mar 08, 2018. Estimated reading time: 5 minutes | NOTICE: The next QCon is in San Francisco April 9-10, 2018. Join us!

A note to our readers: You asked so we have developed a set of features that allow you to reduce the noise: you can get email and web notifications for topics you are interested in. Learn more about our new features.

Most of the software that influences the behavior of human beings wasn’t created with strong ethical constructs around it. Software developers should ask themselves ethical questions like: "who does this affect?", "who could get hurt by this?", and "who does this disadvantage or advantage?". Developers shoould try to answer these questions, and also be comfortable with questions they can’t answer yet.

Theo Schlossnagle, CEO of Circonus, spoke about professional ethics for software developers at QCon London 2018. InfoQ is covering this conference with Q&As, presentations, summaries, and articles.

InfoQ interviewed Schlossnagle about the importance of ethics, what developers can do to incorporate ethical considerations, and asked him what the consequences of unethical software should be.

InfoQ: What makes ethics important for software developers?

Theo Schlossnagle: If you look around, the vast majority of people who are working today in our industry, writing code, making decisions that impact users, haven’t had an intense ethics course in their life. They haven’t taken an ethics course in high school, they haven’t taken an ethics course in college. It doesn’t mean that they don’t know ethics; ethics are pretty innate in human beings.

There’s a playbook for discussing ethics; there’s a playbook for contemplating them; there’s not a playbook for answering them. The question is what your mental model is for making yourself answer those questions instead of just avoiding them and pretending they don’t exist.

We have 30 years of software development, and the last 10 to 15 of those have been hyper-accelerated software development. We have software all over the place that influences the behavior of human beings, and we didn’t create that software with strong ethical constructs around it.

InfoQ: Can you give us an example of ethical considerations that a developer might face?

Schlossnagle: Sure. There are certain soap dispensers in airports that are automatic, that detect when your hand is under it unless you’re African-American, because then it doesn’t see your hand. One needs to hold a white piece of paper under the soap dispenser to get it to fire. The reason that’s there is not because a group of engineers thought that would be really funny to disenfranchise African-American people and people with dark skin. That is a layered cake of a lack of ethical questioning. It’s simply because people chose not to ask the questions, not because they asked them and were like "let’s do evil."

It’s important that we have a framework for asking questions. Open-ended questions; ethical questions are almost always open-ended. Who does this affect? What could go wrong with the software? Not in bugs, not in lines of code, not in crashing, but in who will this not service? Those are hard questions, and we’re going to screw it up. What I want people to do is to ask the questions, and have that as part of their software development cycle.

In the context of the detector of skin color, I don’t know what technology is in it at all. But if you have a simple computer vision system you’re probably using a computer vision library, perhaps there should be a small ethical discussion in the computer vision library about what the consequences of training this on a wrong model are? For example, you could also detect cookies with rat poop in them as if they were chocolate chips. There are other consequences, and you might disenfranchise a minority if you don’t train it on a diverse set of human beings.

InfoQ: What can developers do to incorporate ethical considerations into their work?

Schlossnagle: I think that software developers have come a long way, and they try to think about security as they develop code now. However,  they’re not asking themselves, what are the ethical consequences of this? Who could get hurt by this? Who does this enable over another person? Who does this disadvantage or advantage? They’re not asking those questions. My goal is to have that part of the natural sequence of developing software.

Someone should be asking those questions. Every developer coming to your other question of who this is for, every line-level developer who writes a line of code should have the capacity to incorporate those questions into what they do and it should go all the way up the stack to grand vision.

InfoQ: What type of questions should developers be asking?

Schlossnagle: It’s highly dependent on what they do. What type of software they work on. I think that the one thing to ask is a simple question of how could this harm someone. I would argue that no one ever writes software without that software eventually interfacing with a human being. We are the ultimate consumers of software. We build software to make human lives better. It’s not like we’re going to make robot lives better. If we do it’s because robots make human lives better. There’s a chain there that always ends up with the human as the as the benefactor of technology. Just asking the question of how is my code going to be used by humans?

InfoQ: What can the software community do to support coping with ethical issues?

Schlossnagle: They can encourage the ad hoc addition of ethical questioning into their development process. Perhaps start by adding an to their repositories with questions and answers and encourage pull requests.

InfoQ: Should there be consequences of unethical software?

Schlossnagle: Yes, I would argue there should be possible consequence of justice when you do things unethical. But ethics are driven not by punishment, but by mutual societal benefit. At university I learned how to ask questions, even the hard ones, and be comfortable with questions I couldn’t answer yet. And ethical questions should be part of it.

InfoQ have previously conducted a podcast with Theo Schlossnagle on Software Ethics and the Presence of Doing Good, and also interviewed him about Better Engineering via Better Discourse.

Rate this Article

Adoption Stage

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

OMG by Vitaliy Fedoriv

According to crime statistics from the FBI, knives are consistently used to kill people far more often than rifles are used. And the most common knife involved in these deaths is a knife from the kitchen.
So, kitchen knife manufacturers should ask yourself - "who could get hurt by this?"

Re: OMG by Daniel Bryant

I believe you may be stretching this analogy too far Vitaliy. Some tools we create can have clear dual-purpose for good and evil -- knives and guns being the obvious candidates -- and it is up to society to understand the consequences and police this accordingly (for example, here in the UK under-18s cannot legally buy knives)

However, the consequences of some actions/tools are less obvious, and here transparency and increasing awareness are useful techniques. Something that pops to mind is the original use of lead in gas/petrol. This had a bunch of mechanical benefits, but engineers and business stakeholders failed to contemplate (or ignored) the harmful effects on the environment. Ultimately, increased transparency led to the removal of this chemical in many products.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

2 Discuss

Login to InfoQ to interact with what matters most to you.

Recover your password...


Follow your favorite topics and editors

Quick overview of most important highlights in the industry and on the site.


More signal, less noise

Build your own feed by choosing topics you want to read about and editors you want to hear from.


Stay up-to-date

Set up your notifications and don't miss out on content that matters to you