For someone like Bobbi Duncan, software development ethics are a more than trivial issue.
In the fall of 2011, Bobbi Duncan, then-student at the University of Texas, saw her relationship with her family nearly fall apart when her Facebook feed inadvertently announced her sexual orientation to a multitude of friends—most significantly her less-than-supportive father.
It all started when 22-year-old Duncan, who had come out to a few friends on campus but not to the majority of her family, joined the campus musical group Queer Chorus.
Through a loophole in Facebook’s algorithm, the president of this LGBT choir was able to add Duncan to the organization’s Facebook group without her approval. Then, unbeknownst to Duncan, the news of her group affiliation—and thereby her sexual orientation—was automatically broadcast to her entire social network.
Why Ethical Issues Go Beyond Malicious Intent
I think it’s safe to assume that neither Facebook’s programmers nor the president of Queer Chorus intended to “out” Bobbi Duncan to her family and friends out of malice. The scenario simply didn’t occur to them.
As software developers with a conscience, there are already a multitude of sins—from malicious hacking to stealing identities—that we probably have the skills to do, but know that we shouldn’t.
But what about the Bobbi Duncans of the world? What about the inadvertent damage that can arise through privacy issues, intellectual property rights, and concerns over freedom of speech?
Are programmers morally responsible for thinking through every potential breach in personal rights that our algorithms could theoretically create? Is that even possible?
And if not, are we only responsible for our actions if they are bred from malicious intent? Where is the line?
Days after Duncan’s experience—which had similarly affected another Queer Chorus member—Facebook released a statement.
“Our hearts go out to these young people,” spokesman Andrew Noyes said. “Their unfortunate experience reminds us that we must continue our work to empower and educate users about our robust privacy controls.”
The sad truth is that Duncan did have the tools available to her in Facebook’s settings to prevent this unfortunate event. Through privacy controls, she could have both prevented the president of Queer Chorus from adding her to the group and prevented her group affiliations from being publicly broadcast.
Sadly either Duncan didn’t know how to enact such settings or didn’t realize that doing so would be necessary to protect her.
And if Duncan, a young and presumably tech savvy college student, couldn’t effectively navigate Facebook’s privacy settings to meet her needs, what can we expect from the average internet user?
Obviously this event happened in 2011, and both Facebook and other companies have made huge strides since to educate users and protect privacy. But the underlying moral issue of where responsibility lies hasn’t changed.
Intellectual Property and Other Concerns
As complicated as these questions are, privacy concerns like the one Facebook and Duncan faced only scratch the surface of the moral debacles faced by the modern programmer.
What about the issue of intellectual property? As in writing, music, and art—most programmers have the basic understanding that you can’t take another programmer’s code without both attribution and consent.
The prolific use of Open Source content and platforms across the development community demonstrates that most programmers understand the difference between free to use code and restricted intellectual property.
But what about when a green programmer inadvertently creates something that is a little too similar to proprietary code—maybe without even being familiar with the similarity?
How similar does code have to be to qualify as an intellectual property violation? What is one programmer’s responsibility in avoiding the infringement of another’s rights?
Clearly these issues are more than can be solved in a blog post. But as developers, we have a responsibility to, at the very least, ask the questions.
Universal Code of Ethics
Slowly across the web, more and more leaders in the development community are calling for a universal code of ethics to be applied across our field.
Is that the answer to the moral dilemmas we face? And if so, who decides what the rules should be? Do the same rules apply to all developers and in all scenarios?
If we can even set a code of ethics—who will enforce it, and how?
And as the reach of platforms continues to cross further and further beyond international borders, who should be in charge?
Clearly we still have more questions than answers.
But as technology’s exponential growth further and further outpaces these ethical considerations, it must be someone’s responsibility to sit up and pay attention.
How you do see your ethical responsibility as a programmer? Do you agree with the need for a universal code of ethics? Share your thoughts with us in the comments below.