(Adapted with permission from An Introduction to Software Engineering Ethics by Shannon Vallor and Arvind Narayanan.)
Before starting this experience, please read What do we mean when we talk about ethics?.
As you might expect by now, there is a simple answer to this question that will nevertheless lead us into a far more complex and profound set of considerations. The simple answer is, ‘because software engineers are human beings, and all human beings have ethical obligations to each other.’ Unless you believe, for example, that you have no ethical obligation to stop a small toddler who you happen to see crawling toward the opening to a deep mineshaft, then you accept that you have some basic ethical obligations toward other human beings.
What those obligations are, precisely, is a matter of ethical theory, and many such theories have been developed over the course of human history. Some of these theories developed in folk or religious traditions, others are articulated in scholarly philosophical discourse from the ancient world to today. Among the most well-known and influential types of theory are those of virtue ethics found in diverse cultures from Confucian ethics to ancient Greek, Roman and Christian philosophy, along with the consequentialist group of theories that include utilitarianism, and finally deontological theories of ethics that emphasize rules and principles. We will briefly revisit these types of ethical theory in the next section.
Our question here, however, was not ‘what are my ethical duties?’ but rather ‘why do I have them?’ That is not a question for ethical theory, it is a question of metaethics, or the study of where our ethical duties come from and why they obligate us to act as they say we should. Many answers have been given to this question, but before we get lost in a profound philosophical problem, let us remember that in our case we are exploring the special ethical obligations of software engineers, which while not wholly independent of our broader ethical obligations as human beings, may have a more clearly identifiable source and justification.
The first explanation of this source involves the concept of a profession. What is a professional? You may not have considered that this word is etymologically connected with the English verb ‘to profess.’ What is it to profess something? It is to stand publicly for something, to express a belief, conviction, value or promise to a general audience that you expect that audience to hold you accountable for, and to identify you with. When I profess something, I assert that this is something about which I am serious and sincere; and which I want others to know about me. So when we identify someone as a professional X (whether ‘X’ is a lawyer, physician, soldier or engineer), we are saying that being an ‘X’ is not just a job, but a vocation, a form of work to which the individual is committed and with which they would like their lives to be identified.
This is part of why professionals are generally expected to undertake advanced education and training in their field; not only because they need the expertise (though that too), but also because this is a important sign of their investment and commitment to the field. When students who have completed an arduous degree program enter the work world, this is taken as evidence that they are sincere in their interest in this kind of work, that they understand and uniquely value the contribution that this work makes to the world, and that they want their own personal good and sense of self to be enduringly intertwined and identified with the good of their chosen profession. Of course, people do change professions – but not as frequently, or as lightly, as people change mere jobs.
So what does being a professional have to do with ethics? How does it create special ethical obligations for the software engineer? First, I stated above that a professional has stated implicitly a desire to have their own good intertwined and identified with the good of their profession. But what is the good of their profession? Look back at your answers to the question of What can a software engineer contribute to the good life?. Do they suggest an answer to this question?
Consider that members of most professions enjoy an elevated status in their communities; doctors, professors, scientists and lawyers generally get more respect from the public (rightly or wrongly) than retail clerks, manicurists, toll booth operators, and car salespeople. But why? It can’t just be the difference in skill; after all, car salespeople have to have very specialized skills in order to thrive in their job. The distinction lies in the perception that professionals secure a vital public good, not something of merely private and conditional value. For example, without doctors, public health would certainly suffer – and a good life is virtually impossible without some measure of health. Without lawyers and judges, the public would have no formal access to justice – and without recourse for injustice done to you or others, how can the good life be secure? Without scientists, the public would be deprived of reliable and carefully tested knowledge – and how can a life filled with ignorance and error be good? So each of these professions is supported and respected by the public precisely because they deliver something vital to the good life, and something needed not just by a few, but by us all.
We are nearing the conclusion of our inquiry in this section. We started with the question of why we have ethical obligations as software engineers. Well, software engineering is a profession, and one that like all professions, receives distinctive public support and respect. What do software engineers do to earn that respect? How must they act in order to continue to earn it? After all, special public respect and support are not given for free or given unconditionally – they are given in recognition of some service or value that actually warrants support and respect. That support and respect is also something that translates into real power; the power of public funding and consumer loyalty, the power of influence over how people live and what systems they use to organize their lives; in short, the power to guide the course of other human beings’ technological future. And as we are told in the popular Spiderman saga, “With great power comes great responsibility.” This is a further reason, even above their general ethical obligations as human beings, that software engineers have special ethical obligations to the public they serve.