How does ethical Code impact a software engineer?

When people discuss the effect ‘technology’ has on society, it’s rarely about the pure technical power of the hardware. Software is what changes how we live and work. This has meant that software engineers have, mostly unintentionally, become very influential. Whether they’re working for Facebook, Google, Reddit or AirBnB, their code can have a big impact on people, businesses and even entire cities.

The question for many is whether the industry is taking its corporate social responsibility seriously enough. Most developers are concerned with exciting ways to implement new software, but when platforms like AirBnB can negatively affect housing prices of entire cities, or Facebook can be used to spread misinformation that affects democratic processes, should the first conversation be about whether to implement at all?

Why is ethics important for software developers?

When software can change how we act and think, having a strong ethical core to the platform is a must. Platforms like Reddit and Twitter have been accused of not doing enough to prevent the spread of misinformation and hate speech, but it’s extremely unlikely that the engineers writing the code would’ve considered that their software would be used for such purposes. Software engineers are rarely experts in psychology or ethics, despite having an innate understanding of both. During the design process would anyone ask ‘Who could be negatively affected by this?’ or entertain the unpleasant prospect that their work could be used to disadvantage people.

What unintentional ethical considerations might a developer face?

The Xbox Kinect experienced issues back in 2010 when it was reported that the device did not recognise the faces of dark-skinned gamers. Both Hewlett-Packard and Google Photo’s have also experienced similar issues with facial recognition. Then it was picked up that certain automatic soap dispensers in airports that detect when your hand is underneath don’t work on black skin. Why? The near-infrared technology used was meant to be reflected off the users hands and back to the sensor. However, if the reflective object absorbs that light instead, then the sensor will never trigger because not enough light gets to it. Wearable fitness trackers and heart-rate monitors have also had the same problem.

These ‘skin science’ errors aren’t intentional, but they pose some serious questions about diversity in technological design and development processes.

How do developers include ‘ethics’ in design?

Keeping ethics at the heart of a project can be difficult – it depends entirely on the project, the developer’s level and what the final usage is aiming to be. One consideration could be to list alongside the aims of the project “How could this be misused and who would that affect?” Software engineers usually aim to improve human lives, but flipping around the thinking to contemplate how technology could be used to make lives worse could allow safeguards to be built into the product, rather than trying to retrofit solutions to a flawed system.

If reading this has thrown up questions that you’d like to find out more about, the University of York’s online Computer Science Masters programme might be for you. It’s designed for working professionals and graduates who may not have a computer science background and want to launch their career in this field, equipping graduates for a range of positions in software and web development, IT systems, support and programming.

Delivered 100% online, the Computer Science Masters degree requires no campus visits, so you can learn on your own terms, in your own time. There’s the option to choose from six start dates per year, so you can begin whenever’s convenient, fitting your studies around work and home commitments. There’s also a pay-per-module option available, and students may be eligible for a government-backed postgraduate loan which covers the cost of the programme.

Find out more and begin your application.

How does ethical Code impact a software engineer?

Abstract

In the field of Software Engineering, ethics are essential for an employee. The main ethical Dilemmas in the world are taken into consideration with respective examples. A discussion of importance of ethics in the workplace and the practice of ethics as professionals are highlighted. The author reviewed the other existing literature and constructed the review to create the awareness of ethics for software engineers and decrease the frequency of ethical dilemmas in modern world.

Introduction

In the cooperate world, ethics play a vital role among the employee and employer. A code of ethic or guideline describes the ethical and professional responsibility of software engineer against peer and legal bodies that can measure their behaviour. Both employee and employer require set of guidelines to follow during their worktime. It helps both parties to accomplish their tasks and follow a professional behaviour in the workplace. Ethics are important as it helps to decide the course of action.

As for a software engineer, it is truly required to follow ethics to overcome different dilemmas and be a professional. Software engineer programmes the software to satisfy the customer’s requirement but he/she has to be ethical when designing it. They must be more concerned about the ethical issues; the impact of unethical behaviour and outcome of the project could be harmful on lives and expensive in terms of capital. The Therac-25 system – it took 4 lives and injured 2 lives with severe wounds in 1986 and 1987 according to Fabio (2015) and Ariane 5 -Flight 501 explosion caused by a bug in the inertial navigation system noted by Sommerville (2015) would be examples in the field. IEEE Computer society and ACM promote ethics as an important factor for a software engineer. (Sommerville, 2015)

Overview

In a digitalizing world of organizations, there are sweeping changes which bring forth bad practices among employees and employers. Ethical issues and concern is highly recognized but One of the main reasons for essential of ethics would be to overcome ethical dilemmas such as employees being biases on factors in the workplace. According to Berenbach and Broy (2009), people commit various mistakes and behaviour in unprofessional way when guidelines or ethics aren’t implemented. As employees,

  • we tend to think that some activities have to be done by other staff members which is their responsibility – not my problem.
  • We tend to swipe away the errors or ignore them with various functionality, but end user uses the product, it could be more harmful – swipe it under the rug.
  • Informing clients and management that the program or software is operational while it is under construction
  • Providing the management or employer and client that product is deliverable but still serious problems are detected in testing pace.

These are some common ethical dilemmas that an employee or employees to practice overcoming the critical situations and accomplish the project for customers. As noted by Narayanan (2013), Programmers were not interested to introduce the bugs (errors) which resulted the death of human lives, later in investigation it was found that testing phase consist of technical issues. The value and importance of ethics is highlighted for the future. Code of ethics are required among the employees and employers as well as it would be a solution to reduce those type of incidents. According to Towell (2003), A code of ethic is used to achieve several goals such as ensuring quality and testing, safety of the product and justifications in the workplace which clearly shows the requirement of ethics for a software engineer. Sometimes ethics are important as it provides methods to resolve various conflicts noted by Rashid et al., (2009).

The best way to practice ethics in workplace would be publishing among employees and employers that would acknowledge them. Companies or organizations can make use of internationally accepted ethics and ethics published by the company for different circumstances. Employer and employee would question that, is it possible to be ethical as software engineer in the digitalizing world and what extent do code of ethic will reach.

Every employee is recruited as a trainee and it could be used not just to practice ethics but aware them about the outcomes of bad practices at all levels of profession and pursue them to follow ethics on those circumstances and think of it as a company policy. Software engineers design programs for different functionalities which have different impact on human lives, it would be their responsibility follow ethics as a working professional to reduce outcomes from ethical dilemmas.

Discussion

The ethical dilemmas such as not my problem and swipe it under the rug are caused by employees and employers when they are under pressure by top level management or in hurry to complete it. When they are unable to reach the milestones and deadline is near, they tend to cover their work with functionality and pass it next staff member pointing out rest of the work as their responsibility. Berenbach and Broy shows that these types of ethical dilemmas could lead loss of lives and huge cost on capital. As employee, it’s their responsibility to complete their duties which could minimize the errors in the project. Also, most organizations tend to have red lies – dilemma more often. During the project meetings, employees and employers doesn’t tend to be truthful about the functionality and other things about the project but at the same time customer is satisfied with false information. Suppose programmer says that he can deliver the project on schedule, but his manager cannot complete it instead he trusts his employee which leads to unethical behaviours such as misuses. As employees – they could ask themselves the reason for why code of ethics? Simple answered could be that their profession which has huge impact on human lives and other things in society.

They could be ethical in the workplace that could earn them bonuses and other benefits but it’s the opposite. It is the lack of practice of ethics in their organization, pressure from both customers management, interest on profits and bonuses, etc. Programmers have to understand the risk of their project and failure to do so could lead bad accidents such as

  • Ariane 5, Flight 501
  • Therac 25
  • The London Ambulance Service
  • Who counts the votes?

These projects are bought a massive damage on human lives as well as capital noted by Vliet (2008). And it highlights the importance of ethics, employee could feel uncomfortable with some guidelines as it might speak high values, but will it be worthy to take a real risk of the outcome of a project. Employees must mind the risk of the project and importance of ethics. Employees (software engineer) could question themselves in three ways,

  • How will my software affect to the society? (eliminate those risks).
  • Are there any possible outcomes for bad practices? (reduce the possible outcomes)

this would help them to uncover their software’s bad outcomes. Similar practice could persuade by other employees in order to overcome ethical dilemmas such as swipe it under the rug. “A code of ethics is used to promote a variety of purposes and goals.” Towell (2003, pg. 5). According to towell, reducing the possibility of such accidents and challenges could be done through code of ethics as they must be persuaded. According to Vliet (2008), Employee should strive to understand the project and its outcome, then provide service only in area unlike other professionals which could be a start for practice of ethics. Organizations can make use of hierarchy’s of needs to peruse employees in following ethics.

Also, employees should be truthful and honest on both customers and top management. Organization should ensure the purpose of the project, specifications and its safety instead of being unethical and continuing for the sake of profits. Organizations can have built a workplace with ethics which will promote its employees and employers to work ethically. “The first level is a set of familiar ethical values, such as integrity and justice, which professionals share with other human beings by virtue of their shared humanity” Gotterbarn (1998, pg. 59), this could be good way to practice ethics.

Summary

According to the above-mentioned information – examples and other author’s saying, it highlighted that the outcome of bad practices could impact badly on human lives such as Therac 25 and cost largely in capital such as Ariane 5, Flight 501. It leads employees and employers to understand the importance of practicing ethics in software engineering with the digitalizing workplace. So, when an ethical problem arise it has to be resolved straightforward under any circumstance or else unmanaged ethical problems will definitely will cause a serious problem.

In the digitalizing world, Respective governments can introduce ethics for organizations and employees based different circumstances. Also, two large reputed organizations of profession in the field – IEEE computer society and ACM have developed a code of ethics. As employees, it’s a must to understand the consequence of bad practices and be ethical in the workplace with all the staff members. It could prevent accidents in terms of resources, capital, reduce the impact on lives and other things. Therefore, Employees should practice code of ethics as working professionals in their career.

References

  • Berenbach, B. & Broy, M., 2009. Professional and Ethical Dilemmas in Software Engineering. Computer , 42(1), pp. 74-80.
  • Fabio, A., 2015. KILLED BY A MACHINE: THE THERAC-25. [Online] Available at: https://hackaday.com/2015/10/26/killed-by-a-machine-the-therac-25 [Accessed 20 December 2017].
  • Gotterbarn, D., 1998. How the New Software EngineeringCode of Ethics Affects You. New York, ACM.
  • NARAYANAN, A., 2013. Ethical dilemmas faced by software engineers: A roundup of responses. [Online] Available at: https://freedom-to-tinker.com/2013/09/04/ethical-dilemmas-faced-by-software-engineers-a-roundup-of-responses/[Accessed 26 December 2017].
  • Rashid, A., Weckert, J. & Lucas, R., 2009. SOFTWARE ENGINEERING ETHICS IN A DIGITAL WORLD. Computer, 42(6), pp. 34-41.
  • Towell, E., 2003. Teaching Ethics in the Software Engineering Curriculum. s.l., IEEE.
  • Vliet, H. V., 2008. Software Engineering: Principles and Practice. 3rd ed. Chichester(UK): John Wiley.

Why are ethics important in software engineering?

Both employee and employer require set of guidelines to follow during their worktime. It helps both parties to accomplish their tasks and follow a professional behaviour in the workplace. Ethics are important as it helps to decide the course of action.

What are the ethical issues in software engineering?

Here are five examples of ethical issues and how developers can address them:.
addictive design;.
corporate ownership of personal data;.
algorithmic bias;.
weak cyber security and personally identifiable information (PII) protection; and..
overemphasis on features..