With much of our lives involving some form of software, today’s software engineers and developers have ethical responsibilities toward their end-users. They must innovate without losing sight of best practice and ethics. While they may work in the background, remote from their customers, software engineers and developers can have a deep impact on their lives.
Regardless of whether engineers and developers are developing a gaming app or a sophisticated financial software system for a large bank, the impact such software has on customers is the core consideration. Ethical questions arise at each software engineering stage. There are so many ethical considerations that the Association for Computing Machinery’s Committee on Professional Ethics has created a Software Engineering Code of Ethics and Professional Practice to help software engineers and developers balance the push for cutting-edge technology and the implementation of sound, ethical practices.
This article examines why ethics matter in software engineering, outlining the core points and questions software professionals must address.
Why do ethics matter in software engineering?
Whether someone becomes a site reliability engineer or a software programmer, they need to master the technical aspects and skills necessary for a successful career. Ethics education is threaded through degree programs, such as Baylor University’s Online Masters in Computer Science, as software products contribute to many daily tasks and underpin people’s lifestyles, privacy and overall well-being. Design, use, privacy, security and other factors all shape the user’s experience of software.
For example, software engineers must ensure their products do not have a negative impact on, or harm, consumers even if they never directly interact with them. Ethics in software engineering means maintaining professional standards and operating with integrity, competence, honesty, accountability and always with the best interest of the public in mind.
Failure to adhere to good ethical practice may lead to the creation of software that violates human rights and decency, or causes injury to the user.
The core principles of the code of ethics for software engineers
The Software Engineering Code of Ethics and Professional Practice focuses on eight core principles relating to the behavior and decision-making of software professionals. The code also outlines the obligations and responsibilities software engineers and developers must take on when they work.
- Public – Software professionals must act in line with the public interest.
- Employers and clients – Software engineers and developers must proceed in the best interest of their employer, clients and the public.
- Products – Software engineers must ensure all products and modifications meet the highest professional standards.
- Judgment – Software engineers must maintain independence and integrity in all their professional judgments.
- Management – Leaders and managers must promote and apply good ethics to the development and maintenance of software.
- Profession – Software developers and engineers must promote and expand the reputation and integrity of their industry in line with the public interest.
- Colleagues and coworkers – All software staff must be supportive and fair.
- Self – Software developers and engineers must continue lifelong education in relation to best practices while promoting sound ethics throughout their industry.
The eight principles combine to prioritize the public interest and individual well-being in software engineering and development.
The importance of software engineering ethics
There are three considerations that lie at the heart of ethics in relation to software engineering: firstly, software professionals must promote and safeguard the public interest and individual health and safety; secondly, they must apply the highest professional standards; and thirdly, software engineers and developers must develop and create top-quality products.
The unquestionable need for ethics is clearly evident in relation to focusing on the public interest and the safety and health of people using their products. No engineer can ignore such considerations or develop products that have a negative impact on individuals or society at large. With the well-being and experience of software users in mind, engineers and developers must create tools that make people’s lives easier while making societies run more smoothly and harmoniously.
Professional engineering standards must include ethical considerations to ensure software professionals prioritize the user’s interests, whichever product they are creating.
As today’s software fuels many essential services, including energy supply and finance, all software products must meet top-quality standards. The Software Engineering Code of Ethics and Professional Practice stipulates that newly-developed software must pass rigorous quality tests and controls. Above all, products must never cause harm.
The ethics of software engineering in everyday life
Let’s look at some examples of how ethics in software engineering come into play in everyday life.
Business software shapes staff and customer experience, meaning good ethics respect everyone’s interests. It enables business operations to run smoothly, staff members to communicate well, and clients to enjoy a positive outcome.
Social media is another example where ethical considerations are essential. The addictive nature of the most popular platforms has arguably tipped the balance, leading the software to arguably create more harm than good. Developers and owners must consider the end user’s long-term health. The use of personal data for financial gain is another core consideration. Software engineers must be transparent across all levels, especially regarding the highest-level beneficiaries.
The unethical use of personal data is one of the most dominant issues for software engineers. AI tools gather vast amounts of data that companies can monetize. Good software engineering practices must ensure that all processes are transparent while upholding ownership and privacy rights.
Software engineers also shape algorithms that have a significant impact on the user. If, for instance, someone chooses to watch harmful footage, algorithms are likely to present similar content more frequently. A stellar approach to ethics would ensure that algorithms direct users away from such content rather than towards it.
Built-in algorithm biases can pitch people against each other, which may multiply page views and revenue but create deeply-divided societies. Users are powerless in this regard, so it is up to the developers to act in the public interest by applying solid ethics.
Making the internet a safe and constructive place
The internet has taken over much of people’s everyday lives. As a result, the people who shape it bear enormous moral and ethical responsibilities. Software engineering educators must place ethics right at the heart of their training programs to ensure that the future generation of software professionals always acts in the best interest of individuals and the public.