The Social Responsibility of a Software Engineer
Abstraction: The social responsibility is one of important responsibilities defined by ACM in its ethic codes for software engineer. Compare to other responsibilities, social responsibility is more remote and ambiguous. When a software engineer obtained the privilege to practice his/her right from the society, he/she is required to take corresponding responsibilities. But the definition of the responsibilities is not unified in computing professional community but heavily depended on the software engineer's personal life experience and the social environment around him/her. Meanwhile, the final social effect of software is not always straightforward. In many cases, that effect is not decided by software itself but decided by who use it and where it is used. In this article, we will discuss a case that some so-called "Hacktivists" who are trying to break down the "Great Fair Wall" in China. By analyze the arguments around this case and some concerns we may have about these arguments, we are trying to describe the difficulty a software engineer may have to face when he/she assume his/her social responsibility.
Introduction: What Are The Social Responsibility For A Software Engineer
In accordance with ACM code of ethics and professional conduct, software engineer has the social responsibility "to protect fundamental human rights and to respect the diversity of all cultures" and "computing professional must attempt to ensure that the products of their efforts will be used in socially responsible ways". A software engineer also "must be alert to, and make others aware of, any potential damage" about his/her products. The responsibilities are thought as a contract signed by a software engineer with society when he/she is granted the privilege to practice his/her profession. These responsibilities are also brought by the fact that software engineers have better understanding about their products and therefore have the duty to help to protect the society from any damage might caused by these products. In general, the ACM require software engineers to develop products that can improve the society and at least no harm to the society. But ACM cannot define what the improvement or harm are. It leaves them to be defined by the society and software engineers themselves. This fact creates a big ambiguous area for software engineers when they assume their social responsibilities because software engineers may have different views regarding what is "good" and what is "bad" for society. These views do not come from their profession as software engineers but come from their social position, religions, live experience, and political opinions as an individual person under a particular social environment.
BACKGROUND: Chinese Internet Environment and Case Description
Contemporary China: When the chaos of the Cultural Revolution came to an end in 1976, China adopted open door policy...