An Introduction to Software Engineering Ethics
Ethics in the broadest
sense refers to the concern that humans have always had for figuring out how best to live. The philosopher Socrates is quoted as saying in 399 B.C., “the most
important thing is not life, but the good life.” Today, the study of
ethics can be found in many different places.
- As an academic field of study, it belongs primarily to the discipline of philosophy, where scholars teach and publish research about the nature and structure of ethical norms.
- In community life, ethics is pursued through diverse cultural, political and religious ideals and practices.
- On a personal level, it can be expressed in an individuals self-reflection and continual strivings to become a better person.
- In work life, it is often formulated in formal codes or standards to which all members of a profession are held, such as those of medical ethics.
- Professional ethics is also taught in dedicated courses, such as business ethics. It can also be infused into courses such as this one.
What is ethics doing in a course for software engineers?
But software
engineers build lines of code, not cars, rockets or bridges full of vulnerable human
beings. Where is the comparison here? Well, one answer might already have
occurred to you. How many cars or rockets are made today that do not depend upon
critical software for their safe operation? How many bridges are built today
without the use of sophisticated computer programs to calculate expected load,
geophysical strain, material strength and design resilience? A failure of these
critical software systems can result in death or grievous injury just as easily as a missing
bolt or a poorly designed gas tank. This by itself is more than enough reason for
software engineers to take seriously the ethics of their professional lives.
Is it the only reason?
What might be some others? Consider the following:
The software
development and deployment process in the Internet era has some peculiarities that
make the ethical issues for software engineers even more acute in some ways than for
other types of engineers.
- First, the shortened life cycle has weakened and in some cases obliterated software review by management and legal teams.
- Second is the issue of scale, perhaps the defining feature of the software revolution. Typically the entire world is part of the addressable market.
- Finally, the lack of geographic constraints means that engineers are generally culturally unfamiliar with some or most of their users.
