How do we implement software development ethics? What does it mean to be an ethical software developer?
As an individual I like to discriminate against anything that is French. The only reason being that the French like to discriminate against anything that is not French. I think this keeps things in balance. However, I have been wondering… Is it unethical for me, as a professional software engineer, to enable my customers to discriminate against certain groups of people? This is what I have been asking myself today. Allow me to paint a complete picture for you:
Ethical Software Development?
One of our most important customers wants us to build a new web site of which dozens of localized versions must be created for as many different countries around the world. (Except for France, I suspect, as the French will probably just build their own version.) Apart from the translation of the content, all these versions will be the same, with just one exception: For each country the pictures of photo models must be customizable, because, as the account manager said to me, in some countries they simply don't want black people on their site.
I was shocked.
Now, I am sure the real reason is that the selection of models must in some way reflect the local culture and population, and someone somewhere in the pipeline must have turned this requirement into a bad joke. For this reason the models in our own Dutch version are likely to include not only blacks, but also muslims, senior citizens, women, gays, drug addicts, oriental people, Jews, sheep, and either physically or mentally challenged people, preferably both. As for political correctness, we Dutch prefer to err on the safe side. We do have our limits though. There will definitely not be any French models in it.
Still, I was wondering. Will we refuse to build these web sites if it turns out that the account manager had not been joking about editing out black people? Can we, as software engineers, be held responsible for the bad things our customers can do with the web sites we build for them?
1. Software Engineers shall act consistently with the public interest.
I don't know if I am acting consistently with the public interest if I allow my customer to edit out black people from their web sites. (Of course, it would be in the public interest to allow people to edit out anything that is French.) For now, I consider myself safe with the knowledge that our customer is actually quite smart, and is unlikely to do something stupid. Therefore, please consider my thoughts to be nothing more than an academic and theoretical excercise.