Ethical Issues in Software Engineering
Posted by meherchilakalapudi on March 21, 2009
Every person sets some goals to be achieved in life, both personal goals and professional goals. One has to work towards achieving these goals. Achieving these goals is important, so is the means and ways to achieve them. Is it OK to take bribe to get rich? Is it OK to suppress the fact that the software you developed still has bugs just to ensure that the deadline given by the manager is met? Ethical issues come into picture and the individual has to decide what to do depending on what one’s conscience says.
As software has become the lifeline of many systems, the software professional needs to be aware of the ethical issues connected with the software engineering and it is the manager’s responsibility to bring this awareness to all the team members. We will discuss the ethical issues and the code of ethics for software professionals.
Human Ethics
Every human being has certain responsibilities towards the society and the surrounding environment. As good citizens of the world, we all have to contribute our might to make the world a better place to live in. As human beings, we have to follow certain principles to achieve this. Our responsibilities include doing good for the society and following the rules and regulations set by the government for one’s country’s growth, prosperity and security. While doing so, one may encounter conflicts—as to what is ‘good’ and what is ‘bad’. We hear a number of episodes wherein individuals fight rules and regulations—it is such people, who create history and also contribute to the growth of the profession. As an example, one may feel that the regulations framed by governments are not correct (for instance the regulation that encryption software cannot be exported). If one has a strong conviction that it is not correct, one can fight against it. Ethical issues are highly subjective and one has to be guided by one’s conscience.
Professional Ethics
A professional, doctor or engineer or chartered accountant, has further obligations to the society because professionals play a greater role in designing the future for the rest of the society. Every professional has to adhere to a ‘code of ethics’—the guidelines to be followed while discharging one’s duties as a professional.
The code of ethics framed by IEEE, the largest professional body of electrical and electronics engineers, can be found at the web site www.ieee.org
Ethical Issues in Software Engineering
With the influence of computers on all walks of life and the role of software in all the systems, software professionals have the power to do good or bad to the society. As responsible human beings and as professionals, we need to use the knowledge and skills for the benefit of the society. Every software professional has to follow a code of ethics keeping in view the importance of quality software development and the ill effects of
defective software. The quality of software will affect the society and human life—the impact of defective software in such systems as medical equipment, transportation systems, nuclear plants, banking etc., are not difficult to imagine.
IEEE Computer Society and Association for Computing Machinery (ACM), two major professional bodies jointly established a task force to frame software engineering code of ethics and professional practice. According to this code, every software professional has obligations to
(a) Society
(b) Self
(c) Profession
(d) Product
(e) Employer
(f) Client
(g) Colleagues
These obligations have to be fulfilled by every person as
(a) a human being
(b) a professional
(c) a software engineering professional
While discharging one’s duties, sometimes there may be a conflict between the obligations to different entities. Consider the following examples:
At the place of work, you may be constrained to violate copyright laws. What would
you do?
(a) The employer (or the manager to whom you report) insists on violating intellectual
property rights by asking you to use software developed by someone else. Would you
accept to do it or not?
(b) The employer insists on delivering software to the client in spite of the fact that there
are some known defects. You insist on informing the client about the defects, your
employer says no. What stand do you take? If the software is to be used in the
intensive care unit of a hospital, would you accept?
(c) A colleague of yours is passing the confidential information of your organization to
an outsider. Will you be silent or inform your superiors?
The answers to these questions (and many more such questions which we encounter during our careers) depend on whether we promote our self-interest or accept what the manager/employer says; or as professionals with ethical values, use our judgment to do what we think is RIGHT—irrespective of the consequences.
Code of Ethics for Software Engineers
Ethical issues have no boolean (yes/no) answer. One has to use one’s own judgment and do what one feels is right. Many professional bodies formulated code of ethics, a set of guidelines, which can be used by professionals to make judgments.
The Code of Ethics and Professional Practice framed by the IEEE Computer Society and Association for Computing Machinery (ACM) joint task force, is available at
www.computer.org/certification/ethics.htm or
Software Engineering Code of Ethics and Professional Practice, IEEE Computer, Vol. 32, No. 10, October 1999.
Ethical Issues: Right versus Wrong
While pursuing a career in software engineering, we all encounter situations in which there may not be right/wrong answer for a particular question. In such cases, one should always use one’s own judgment to decide what is right and what is wrong, but that judgment should be based on realistic reasoning and with adequate background information. For instance, there are professionals who feel that working in defense organizations particularly in projects for destroying mankind is wrong; but many of those who work on such projects are proud of their contributions for the defense of their countries. These are two different viewpoints—it is not correct to say that one is right and the other is wrong. One has to decide for oneself.
The broad guidelines as given in the code of ethics are to ensure that no damage is done to human life and society at large for the sake of personal advancement. Every software professional’s main objective must be to improve the quality of life.
Everywhere, money, power and fame drive human beings. To achieve their personal goals, the ethics are set aside resulting in corruption, crime and unhealthy social life. Professionals who have a great role to play to make the world a better place to live, need to follow the code of ethics. As software becomes the lifeline of many critical systems, the software professionals have a great responsibility so that the society respects the software profession. It is not enough to have technical competence, one has to have social consciousness and contribute to improve the quality of life through ethical behavior.
