Principled Programming

23 Apr 2020

What are ethics?

Ethics is the fundamental morals of a person that influences how a person makes decisions. These principles can vary from person to person, and play a huge part in how our society works. When people like doctors or policemen do their work, ethics are a huge factor in how they handle certain situations.

Ethics and Software Engineering

Software Engineers are no exception, ethics is also a big factor in their work. With software engineering there comes the risk of causing or enabling harms to society, and sometimes it can be unclear or difficult to make ethical decisions. This is where the ACM Code of Ethics is helpful. It serves as some guidelines to keep in mind when making sound ethical decisions.

See the ACM Code of Ethics here

"The Code I'm Still Ashamed Of"

In the article, the programmer Bill was faced with a dilemma. He was tasked with the development of a website with a quiz that only had one outcome - prescribing the client’s drug. While silently disapproving of the method, Bill still did the task assigned. He would later find out that this drug had a side-effect of severe depression, and a young girl took her life from it.

See the full article here.


In terms of just doing his job, Bill did nothing wrong, he didn’t propose the shady marketing tactic, he simply developed it. But that doesn’t mean that there was nothing he could’ve done. If I was in Bill’s shoes, I would’ve inquired further into the drug. It can be easier to prevent any harmful outcomes by getting more information about the product, and deciding whether or not to do the job from there.

Reflection

Software Engineers will be faced with these difficult ethical decisions in their career. In these cases, it’s important to review the ACM Code of Ethics and their better judgement to make safe ethical decisions, and prevent any harmful outcomes like the one faced with Bill.