Software Engineering is writing and designing programs for electronic devices, especially for computers. As a part of the engineering field, it does a great job to make lives of humans easier. In the modern world, humans can’t live without computers and computers cannot work without software. Therefore, Software Engineers have a high responsibility when developing software for computers. This is where being ethical becomes important.
In the literature review, I first describe how risky it is when it comes to creating or developing a software. To prevent Software Engineers going out of professionalism, two of the famous Software companies came up with a code of ethics and how Software Engineers can overcome issues by following these codes. I will further describe the conflicts that can happen by using the knowledge of Software Engineers improperly. I will also describe how software can affect a person’s privacy and mental health when it comes to badware. Finally, I will explain the practicality of code of ethics and how to comply with these codes.
Engineering is a multi-faceted, real-world enterprise with ethical dimensions. According to the Professional and Ethical Issues of Software Engineering Curricula,
Engineering is an inherently risky activity.
In order to underscore this fact and help in exploring its ethical implications, we suggest that engineering should be viewed as an experimental process. It is not, of course, an experiment conducted solely in a laboratory under controlled conditions. Rather, it is an experiment on a social scale involving human subjects” (Dodig-crnkovic & Feldt, 2017)
Out of all the fields, Software Engineering is at the top of the risky list. Especially in an era where most of the important and personal details are computerized the risk becomes unavoidable. From bank details, company details, national security details to personal health details, everything is computerized, that a single misuse of a software can affect persons’ privacy, company privacy and can affect the entire national economy or the national security. Throughout the process of a software being designed, developed, analyzed, specified and certified, secureness and the quality should be checked. Software Engineer who develops the program should be able to assure the users about the safety of their given information. The judgment made by an engineer about what risks are acceptable is to a high degree an ethical one.
Because of the key impact computing has on our lives that it is important to integrate computing technologies and the human and social values together. The technology should be developed in such a way that it can protect human and social values as well as helping to solve problems and to make the complicated work much easier. But, how can Software Engineers do both protecting and advancing the technology at the same time? Because of that, the Software Engineering code of ethics was created by the IEEE-CS and ACM. The invention of Code of Ethics in Software Engineering is to instruct Software Engineers to go on the correct path. In accordance with their commitment to the health, safety, and welfare of the public they should also agree to follow the 8 principles i.e. public, client and employer, product, judgment, management, profession, colleagues, and self. Having a code of ethics allows an engineer to argue not just as an ordinary moral agent, but in the first place as a professional. According to the Professional and Ethical Issues of Software Engineering Curricula, Harris, Pritchard, and Rabins summarize Stephen Unger’s analysis of the possible functions of a code of ethics:
“First, it can serve as a collective recognition by members of a profession of its responsibilities. Second, it can help create an environment in which ethical behavior is the norm. Third, it can serve as a guide or reminder in specific situations. Fourth, the process of developing and modifying a code of ethics can be valuable for a profession. Fifth, a code can serve as an educational tool, providing a focal point for discussion in classes and professional meetings. Finally, a code can indicate to others that the profession is seriously concerned with responsible, professional conduct” (Dodig-crnkovic & Feldt, 2017)
This clearly shows how Code of Ethics can affect the society and the profession
The way of considering a situation as ethical or unethical depends on from person to person/ culture to culture or even depends on the social beliefs of their society. Normally a software is developed to use worldwide and not in a single country. So, the way of considering a situation as ethical or unethical must be based on the same formula. According to the book, Science and Engineering Ethics, the introduction to the code summarizes that,
“Because of their roles in developing software systems, Software Engineers have significant opportunities to do good or cause harm, to enable others to do good or cause harm, or to influence others to do good or cause harm. To ensure, as much as possible, that their efforts will be used for good, Software Engineers must commit themselves to make Software Engineering a beneficial and respected profession. In accordance with that commitment, Software Engineers shall adhere to this Code of Ethics and Professional Practice” (Lurie & Mark, 2015)
The safety and quality of a developed software are completely in the hands of the Software Engineer. He could either develop a software with weak points where he himself or some other person could go and find the customer details and use it for a bad cause or else he could develop a software without any weak points and make sure that no details will be leaked. After developing the software, Software Engineers could seek help from ethical hackers to make sure that the software does not contain any weak points. Instead of keeping the weak point in the developed software, if they want they can create software’s which can hack other software and leak details.
In the article Ethics in Software Engineering Net Neutrality and Badware,
“What is Badware? Badware is software that fundamentally disregards a user’s choice about how his or her computer or network connection will be used” (Evans, 2012)
Sometimes people might mix up the line between purposely malicious software and unintentionally bad software. Software creators should clear this blurry line by giving clear messages to their users. Badware is dominant. To make the matter worse, most of the internet users are not aware of Badware and what it does to their computer operations and the speed of responding. Simply, internet users do not know how it could be infecting their computers. Badware has access to the personal information in our computers and can take information without us being informed. So, Software Engineers should ensure that they do not create or facilitate the creation and deployment of Badware. Software creators should also create thought full product designs to keep users in control of their computers and networks.
Even though it is said that Software Engineers should always follow the principals in the code of ethics. It is important to notice that codes must be interpreted and used properly in practice. In Professional Ethics in Software Engineering Curricula says,
“Codes of ethics are created in response to actual or anticipated ethical conflicts. Considered in a vacuum, many codes of ethics would be difficult to comprehend or interpret. It is only in the context of real life and real ethical ambiguity that the codes take on any meaning” (Dodig-crnkovic & Crnkovic, 2014)
Since these codes are written by the professionals, it is more likely to be practical as professionals are the people who have a good experience in the industry. But, it is not hundred percent practical because it is something created by humans imagining the possible conflicts in the future. We might not be able to understand the thought process that the code creators used to construct the code. The best way to use these codes is to apply them in a variety of situations and study the results.
According to my opinion, it is always better to be ethical other than thinking about personal profits or fulfilling a limited number of people’s needs over the entire society’s needs. Software development is the main duty of a Software Engineer and the risk involved in creating or developing a software is clearly proved. Even though a set of principles are created to maintain a standard in Software Engineers’ professional decisions, it totally depends on the Software Engineer whether to follow those principles or not. If the developed software affects the society in a bad way, software engineers should not further develop it and even should change the harmful effects from the software. As a Software Engineering undergraduate, I am of the view that it is important that every Software Engineer adheres to the code of ethics.