One of the biggest difficulties faced with ethics in any situation is the differentiation between right and wrong. In hindsight, it may seem black and white. Right would mean that it's a good thing. Wrong would mean that it's bad. Simple. Easy. ... right? Nope, not easy at all. Actually, there are many layers to consider during the actual determination of what is right or wrong. Why? Because everyone is different. Everyone has different opinions. Everyone views different aspects of different things in different ways. Therefore, it is inherently difficult for anyone to pass something off as right solely based on their opinion alone. What's right to one person could be different for another.
For example, if a homeless person were to ask for money on the street, would it be ethically right to give them money or not? Right off the bat, most people would say something like "Duh. Give them money! They need it, they're homeless!" Fair point. It seems like the "right" thing to do right? But consider this: why is the homeless person asking for money? What are they going to spend it on? Who's not to say that the reason they became homeless to begin with is because they fell into a deep hole of drug addiction? What if right after you give them money, instead of spending it on food like you thought, they're gonna go out and spend it on the very drug that got them into this rut that they currently reside in? Now it looks like you funded their addiction. Was that ethically right? Or, how about the argument that maybe instead of just asking for freebies on the street, they work for their money instead? Why do you have to put in the 9 to 5 every day, working hard for the money in the job that you worked hard achieving, just to hand it off to someone on the street who is simply asking for it? Is it ethically right to teach the person that they don't need to work for money since they can easily be handed it without the slightest bit of effort?
As you can see, determining what is right and wrong or ethically correct or not is not just black and white. There's an entire array of gray matter living in the middle, making the decision that much more difficult. Software engineering is no different. There lies such great power when being a developer because you are the engine to the machine. Without you, the entire thing would not so much as be able to start. Therefore, you make things happen. Like the overused spiderman quote says, "with great power comes great responsibility". Those in these shoes must be aware of the affects that their work has on the consumer and whether or not it is the right thing to do. But, like I said earlier, the right thing to do exists in blurred lines, making it difficult to actually know whether or not what you do was right to begin with.
Take The Code I'm Still Ashamed Of for example. This read discusses a programmers guilt faced when the website quiz he helped launch may or may not have been responsible for a teenage girls decision to kill herself. TLDR: He was asked to code a quiz that was designed by a company to have preferrably teenage girls take to determine whether or not a specific drug was right for them. The aspects of the code was designed so that unless they were allergic or already taking the drug, the results would recommend they take it. This lead to a girl, who was known to be taking that drug, later killing herself. The programmer took notice that one of the main side effects of the drug was suicidal thoughts and depression. Therefore, he quickly blamed himself for the death of the girl, saying it wasn't ethically right for him to get involved.
So what do you think? Was it ethically right for him to code that quiz, given the circumstances? Again, right off the bat, most people would agree that it was wrong of him to get involved. He, in a sense, was responsible for her death and possibly the death of other girls that may fall in the same category. However, once more, there's more to the story than that. Other aspects of the situation must be evaluated as well. For example, he had a job and he did the job. That's it. He was in no way responsible for the actual creation of the drug or website, just the quiz. He also didn't actually prescribe the drug to her. Her doctor, who unlike him, is a licensed professional, ordered the prescription, as well as she was the person who made the conscious decision to take the drug. Also, desipte all this, who's to say that the reason she killed herself is even because of the drug to begin with? Remember, correlation does not equal causation. Although she may have been taking the drug at the time of her death, there is not solid evidence that the drug was the direct contributor towards her deciding to kill herself. There are many factors that come into play in the girls life that we may know nothing about, therefore, it is a weak argument at that.
As you can see, it is important to understand the thought that is needed when making ethical decisions as a software engineer. Decisions cannot just be made quickly as there are many different aspects to consider. Right won't always be right, and wrong won't always be wrong. As there are right and wrong traits towards every situation, determining ethically sound decisions must be made by considering what is the MOST right, in the sea of what may all seem right, or the LEAST wrong in the ocean that may seem wrong.