Should you be selling software to ICE? How about companies that make missiles, canned food that’s bought and eaten by drone pilots? How about only divisions of defense companies that make the defensive weapons, like anti-aircraft radar? Even authoritative regimes need asset management software that tracks what type of lightbulbs are used in the tourist department’s waiting room.
This is an ethical question programmers ask themselves sometimes, especially programmers employees by large enterprise software vendors killing time at an open source conference, wondering how they got so much mud on their pants cuffs.
I don’t know the answer, really. I have a philosophy degree from 2000, which means I’m from the school or philosophy that says “can you ever know anything? Let’s go get some pho.”
Some software is like canned food: a commodity item with faceless consumers. You’re not going to stop making canned food (or deodorant) because people you disagree with use it. You won’t kill httpd because some evil actor installs it and uses it to help oppress or kill people. Why? I mean, because it’s impossible to know who uses it?
Things get more complicated with a SaaS, like GMail. In theory you could investigate who’s using it. This could be like finding copyrighted material or porn on YouTube, a lot of work, but a business priority, so you figure out how to do it. You could deny email to bad actors.
But then what about, like, kubernetes? Should we be excited or depressed that it can run on fighter jets? Do we distinguish between defense vs. attack? Do we need to read some big ethics of war reading list to figure out if a first strike is actually defensive or offensive?
Are we going to use some observability to detect when the fighter jet is defending versus attacking, or just doing some air show for retires and kids, and shut down kubernetes according to our ethics (air shows use a lot of fuel after all, and those kids on grandpa’s shoulders are going to suffer the consequences of that fun afternoon in later years – oh, and also the scenario where you kill people).
Like I said, I don’t know the answer. (Yay gen-x, or whatever.)
I would just suggest a different approach to analyzing the question, different than I see most people discussing it. Most people ask the question “how do we identify when our customer is evil and, thus, we should deny them our awesome software?”
Instead, I would ask it slightly differently, “prove that the software will be used for good by the customer.” That is, instead of finding the evil, prove that the customer will do good.
I’m not suggesting ignoring evil done – you look for that too after finding the good. But, you’ll have a different approach and less continuous discussion if you start with “before you can use my software, you have to show me the good you’ll do, prove that you’re going to use it in ways I agree with.”
Theoretically, you’ll arrive at the same place as if you started with finding the evil. Whether you start by focusing on how delicious the punch is first, or start with there’s a turd in the bowl first, you should reach the same conclusion.