Ethics in software engineering may sound like an afterthought. This profession is largely concerned with the science of designing, developing, testing, evaluating and maintaining computer programs, so why would a moral code be appropriate?
The truth is that technology is now so central to all aspects of modern life that qualified software engineers carry a diverse set of responsibilities that they must take seriously.
This is such a major concern that their leading trade body – the ACM (Association of Computer Machinery) – has created a universally respected Code of Ethics and Professional Conduct.
This article explores both an overview of that code and the reasons it is so vital in the technological age.
The impact of software engineering
To illustrate how prolific software engineering is, you only have to consider just how much it permeates all levels of industry, commerce, healthcare, and public service. Also, you probably use its programs and systems every day, at work and when you utilize modern devices to shop, entertain yourself, or find information.
Software engineering is the reason we have the Internet of Things, the interconnected programs and devices that can run smart TVs, smart homes, self-driving vehicles, and a myriad of other things we are beginning to take for granted. According to Baylor University – which delivers a highly respected Online Master’s in Computer Science program for future IoT innovators – the market for IoT devices is set to grow from 13 billion in 2022 to an eye-watering 29.4 billion in 2030. Students wishing to excel in a career as a software engineer can learn about object-oriented and knowledge-based database systems, as well as database integrity, ensuring strict adherence to ethical and legal standards.
The rapidly expanding IoT also means that demand for professionals in this field is increasing rapidly. Estimates suggest that by 2024, the worldwide software developer population will be 28.7 million – an increase of 3.2 million in just four years.
As this technological sector has such a massive impact across all of modern life, one of its primary duties is to focus on benefiting society rather than being totally profit-driven. That links with another of the ethical principles for software engineers, which is to promote fairness.
Perhaps the best-known ethical responsibility for this profession is to protect data and, therefore, the security and privacy of its entire marketplace, from commissioning companies to everyday users.
To sum it all up, the requirement placed on software engineers is that they build trust, act with honesty, and avoid harm.
The ethical code of software engineers can be broken into categories as you would imagine, there are responsibilities placed on them that are specific to their technological sector and commissioners or clients.
These include striving for excellence as well as producing outcomes that organizations can utterly depend on. It is easy to see why that is so essential when reliance on computer programs and systems can be so crucial to business survival or could be running everything from healthcare devices to agricultural machinery.
The professional code that software engineers must adhere to also includes respecting intellectual property.
There is a high degree of accessibility and sharing in this industry, which connects its ethical duty to its value in society. A good example of this is the .NET open-source platform, which shares tools, libraries, and languages to enable scalable software development. This creates important benefits of .NET services for enterprise applications; however, despite the commonality of freely available original source code for software development (Open Source), there is also a pressing need for engineers in this field to recognize, credit, and avoid plagiarizing the work of other professionals.
Alongside the obligation to keep data management secure and controllable, software engineers also have an ethical responsibility to keep their relationships with commissioning organizations confidential. Not only are they often handling sensitive data, but they could also be trusted with “trade secrets” and commercial information that their clients need them to protect.
In addition, as this is such a fast-growing professional sector, software engineers are tasked with helping to promote the industry and nurture future recruits by using their leadership skills. This involves such ethical responsibilities as being outstanding role models, promoting ethical decision-making within junior staff they manage, and mentoring young professionals in general.
Software engineers who have developed leadership skills are also tasked with improving public understanding of their technological field in terms of both its achievements and its challenges.
Mention has already been made of the public safety and welfare aspects of their obligations and duties. However, as you would expect in the modern era, software engineers are also expected to prioritize environmental considerations, finding sustainable and eco-friendly solutions whenever possible.
More subtle ethical considerations
There are some aspects of the ethical code for software engineers that cut across both professional and public responsibilities.
For example, when developing programs and systems for artificial intelligence applications and a multitude of situations, these professionals are tasked with avoiding unconscious or conscious bias in their programming activities.
There will also be times when software engineers are approached by clients who make unethical requests. This could include anything from corner-cutting to meet deadlines and budgets or even creating coding that compromises the user’s privacy, security, and trust obligations that this profession takes so seriously.
What happens when a software engineer is concerned about breaching their industry code of conduct and their own moral standards? There are ways to seek advice from peers and professional bodies, but it is ultimately the responsibility of each individual to balance their professional obligations against ethical considerations and to decide whether to go ahead.
What happens with ethical breaches?
Finally, it’s important to recognize that ethical breaches in this field have wide-ranging repercussions.
The consequences of a software engineer failing to adhere to the code of conduct depend largely on the type of program or system they are working on. For instance, a lack of care in the quality of their output and their protection of data could lead to easier access for cyber-criminals. Systems could crash or contain anomalies, risking damaging business interruption or data losses and corruption.
The repercussions for the individual professional and their employer could include fines for non-compliance and legal censorship for violating user privacy or intellectual property rights. Possibly worse still, they could damage their own reputation and the respect that this technological sector values so highly.