In the modern day, It is very important to consider Ethics for any field as they benchmark the morals for doing anything in that field. They address any intentional action that impacts negatively or positively the lives and values of others. “Software engineering is an emerging profession, which is self-conscious of its impact on society and its resulting obligations.”3 It is a fact that Software applications have a significant daily impact on the lives of billions of people which led many in software industry to wrestle with their ethical values. Software engineering conceives itself as a technical discipline which primarily focuses on the technical adequacy of the products developed. Software engineering ethics studies the interactions of human values and technical decisions involved during Software development lifecycle. In this paper, I will discuss in detail about the Ethics in Software Engineering and also the importance of it. Later, I will discuss cases how following and not following these ethics show their impact on the public.
Generally, Developers work together with customers and users to define requirements and specify what the proposed system will do. It is the decision of the Engineer on a particular project where the ethics play a key role. Often, decisions are made while only looking at the technical issues, but those decisions impact others in negative and positive ways. The ethical activity involved in technical decisions should be based on an understanding of the impact of those decisions. The activity and operation of Professional Software Engineering Ethics takes place when any decision made by computing professionals during the design, development, construction and maintenance of computing artifacts. These decisions can be made by individuals, teams, management, or the profession. The decisions should be guided by ethical values.
However, “a good software engineering decision requires an awareness of and a careful consideration of both the technical and the ethical dimensions which follow ethical values.”3 An absence of the awareness of this relationship between technology and values means that the values related to the technology are haphazard. To meet this interaction the IEEE Computer Society (IEEE-CS) has come up with “Software Engineering Code of Ethics and Professional Practice” which defines principles for developing software engineering practice.
What is Code of Ethics? In general, Code of Ethics is statements about the interaction of technology and values that primarily ensure that the interaction is not a haphazard to the society. The goal of all of these codes is to make sure that the activity of practicing professionals as individual, teams, management, or professional organizations, advance and protect human values rather than do damage to them. Every field which follows a professional practice like medicine, business, law, software engineering etc has its own standard definitions for code of ethics.
In the same way, Software Engineering Code of Ethics defines eight principles that the software engineers must commit themselves to during the different phases of a Software development. These principles are intended as a standard for teaching and practicing software engineering. They are as follows:
“1. PUBLIC - Software engineers should act consistently with the public interest while developing software.
2. CLIENT AND EMPLOYER - Software engineers should act in a manner that is in
the best interests of their client or employer and that is consistent with the public interest. i.e., they should consider ethical values before taking decisions on products.
3. PRODUCT - Software engineers shall ensure that their products and related modifications meet the highest professional standards possible and does not cause any hazard to its society and it’s citizens.
4. JUDGMENT - Software engineers should maintain integrity and independence in
their professional judgment of the decisions they make.
5. MANAGEMENT - Software engineering managers and leaders should subscribe to
and promote an ethical approach to the management of software development and maintenance.
6. PROFESSION - Software engineers shall advance the integrity and reputation of
the profession consistent with the public interest.
7. COLLEAGUES - Software engineers shall be fair to and supportive of their
colleagues.
8. SELF - Software engineers shall participate in lifelong learning regarding the
practice of their profession and promote an ethical approach to the practice of their profession.” 1
As a software engineer applies these principles, human values become intertwined with technical decisions. These principles advance the professionalism in software engineering. Hence, the code of ethics depicts two basic aspects of the software engineer's role. One is the software engineer is employed by clients to serve their interests; and the other is the software engineers who represent their clients’ interests but cannot act in a way that endangers society or is contrary to the principles of software engineering code of ethics.
In addition to that, IEEE-CS has also defined Ethics on a personal level for a Software Engineer. According to it, “
Never steal data for personal gain.
• Never distribute or sell proprietary information obtained as part of your work on a software project.
• Never maliciously destroy or modify another person’s programs, files or data.
• Never violate the privacy of an individual, a group, or an organization.
• Never hack into a system for sport or profit.
• Never create or promulgate a computer virus or worm.
• Never use computing technology to facilitate discrimination or harassment.” 1
Certainly, the results of not following the code of ethics can cause a huge loss to the people and also could prove to be hazardous to the society and its citizens. For instance, Developers work together with customers and users to define requirements and specify what the proposed system will do. If, once it is built, the system works according to specification but harms someone physically or financially, who is responsible? Between 1985 and 1987 at least six patients were seriously injured or killed when they received massive overdoses of radiation from the Therac-25, a radiation therapy machine. The overdoses were attributed to operator error, poor software engineering, over-reliance on software for safety assurance, inadequate response by the manufacturer when accident reports began to surface, and unrealistic risk assessments. This is an obvious case of not following ethical values during software development by the engineers.
In conclusion, the importance of following the Software engineering ethics can be clearly understood through this paper. If every software engineer practices the principles mentioned according to, then there is a great opportunity for us to look at a better, healthier and safer society. From this, it is unstoppable for us to say that the next step in software engineering ethics is a change in culture where there is a mutual understanding and expectation of ethical behavior of software engineers and those who are impacted by their products.
References:
1. Computer Society and ACM Approve Software Engineering Code of Ethics
- Don Gotterbarn, Keith Miller, Simon Rogerson
2. http://en.wikipedia.org/wiki/Ethics#Ethics_in_the_professions
3.http://books.google.com/books?id=gC_e3R2ljCEC&pg=PA18&lpg=PA18&dq=software+engineering+ethics&source=web&ots=XVb0WhkAq&sig=favfXED9oqLE1S6PtPcXFhHJRmg#PPA20,M1
4. http://www.thefreedictionary.com/ethics
Thursday, October 18, 2007
Ethics in Software Engineering practice
Posted by
Sandeep Chandra
at
1:31 AM
Labels: Ethics, Software Engineering Ethics
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment