The primary contribution of this study is the analysis of the normative elements of codes of ethics in software engineering and the explanation of how their value-based approach may make them ineffective from a normative position. Ethics-related thought cannot take the place of codes of conduct. They lack determination. Hence they cannot and will not provide advice. The reactionary behaviors of "selective selecting," "risk of being indifferent," and "ex-post orientation" are allegedly brought on by this absence of direction. We suggest introducing ethical dialogue within software development teams as a remedy.
Introduction
Software systems are playing an increasing role in our daily lives. Public debate is centered on software systems that support or decide on high-stakes issues, such as creditworthiness or probation. Software-supported decisions are becoming more critical. This means that ethically sound software is increasingly needed.
Software developers find themselves in a situation where they can be held accountable for undesirable outcomes and biases. We use the term "software engineer" to refer to anyone with a technical influence on the product's design, including database experts and programmers. We are working in an agile environment. All were involved in the development process and organized into agile teams.
Although it may seem a shortsighted and incongruous decision to transfer responsibility to developers, software companies feel the need to address these issues. There are two reasons software companies feel the need to do so. Firstly, they face backlash from companies that use unethical software in legal and reputational terms. Companies and employees are motivated to make better software because it is ethical.
We will briefly explain the problem in this paper. Software developers (or the development teams) should only be able to address some ethical problems a software company may face. Many ethical issues, such as whether a software tool should ever be developed, fall under the umbrella of business ethics. After identifying the potential influence that software engineers have regarding ethical values implementation, we will examine a common approach to aid software engineers in making ethical decisions: Codes of Ethics or Codes of Conduct.
We will demonstrate why Codes of Ethics (or Codes of Conduct) are insufficient to guide software engineers (SE). Five weaknesses of CoCs make them unfit to offer guidance to engineers. We will also argue that a software engineering approach based on corporate clients' ethical deliberation by the software engineer could be a way for us to create "ethically sound software."
Software Companies: Ethical Decision Making
Before we can answer the question of ethical software development, it is crucial to identify the domain, scope, and limits of the ethical considerations that software engineers can perform. Software development and its use can lead to many problems. However, some business models have underlying legal, political, and cultural factors. These issues must be addressed at the business ethics level, not in the software development process. Consider, for example, the impact on the rental and housing markets from services like Airbnb.
This paper does not address these issues but focuses on a narrower area: The development teams have some flexibility in developing the product after a business decision has been made at the management level. You must note that the influence of both management and development teams fluctuates over time. The former holds exclusive decision-making power in the initial stages, such as the decision to create software or not. Management has limited control over the development of software products.
These developers are experts in the technical field and develop the product within the parameters. These parameters are not final. The development team is allowed to have some flexibility in developing the product. One example: Consider a care facility with many elderly residents who do not drink enough water. The task of a software engineer is to implement a technical solution that encourages water consumption. This is a smart home, and the intelligent cup estimates how much water someone drinks per day. After considering all options, and some sloppy deliberation, it was decided that the cup could be connected to the smart TV. The TV would turn off if the patient did not meet their water quota. When asked why he chose this option, he replied that it satisfied all technical requirements. He knows the elderly love TV shows, and this is what they will react to.
What to Expect from Software Development Ethics: Ethical Questions
We have mentioned several important ethical software issues, including:
1. Log Files: How to Deal
At its most basic, a log file is a time-stamped and automatically produced documentation of various events. A web server's access log lists every file a user has requested from the site. These log files can be used for workplace surveillance. It is not enough to delete an email or file. Who has access to these log files when it comes down to ethics? Consider how Facebook could gain access to your private information via log files. What length should Facebook allow these log files to be kept? These are just a few ethical issues social CRM software developers and companies face daily.
2. Security of Customers' Data
Many CRM services websites collect data that you don't want. Google is one example. It includes your location, search history, and who you used them with. Google has a way to download all information about you - it could fill millions of Word documents.
What happens if the government requests customer data? What is your ethical responsibility? What is your moral obligation?
3. Your Software Makes Use of the Work of Others (Without Them Having to Pay)
Many apps offer content for free. Are content aggregators simply spreading content, or are they stealing the news? This questionable ethical decision is often defended with elaborate reasonings, e.g., These apps merely share information. Are honest software developers required to consider how their Code will benefit everyone in the food chain? You may ignore potential piracy issues if you don't ask this question. These are just a few data privacy challenges in custom software development.
However, there are still some additional and more important moral issues:
-
Who will use your software?
-
Where will it be used?
-
What would happen if someone tried to commit foul play and got their hands on the technology?
-
What safety measures can you implement to prevent this from happening?
-
Is your software able to harm, control, or profile others?
-
You might feel different if you were born into a different race or gender.
-
Are there any global consequences for the planet?
-
Are you susceptible to bias in your system?
Want More Information About Our Services? Talk to Our Consultants!
Strategies to Deal with Ethical Issues In Software Development
There is a Software Engineering Code of Ethics. It outlines the professional and ethical obligations of software engineers. A multinational task force gathered input from educational, military, and industrial professionals to create this Code. These are the eight basic principles:
Public: Software developers shall act in the public's best interest.
Client and Employer: Software engineers must act in their client's or employer's best interest and follow the public interests.
Product: Software Engineers shall ensure that products and modifications are up to the highest professional standards.
Judgment: Software engineers must maintain integrity and independence in a professional appraisal.
Management: Software engineers, managers, and leaders must subscribe to and support an ethical approach to software maintenance and development.
Profession: Software engineers must promote client libraries' integrity and reputation in their work, consistent with the public's interest.
Coworkers: Software engineers should be fair and supportive of each other.
Self: Software developers shall be actively involved in learning about practicing and promoting an ethical approach to their profession.
Read More: Artificial Intelligence (AI) Researchers Should Learn & Follow Ethics
Codes of Conduct, Values, and Principles in AI and Software Engineering
Codes of Ethics or Codes of Conduct guide engineers dealing with ethically-relevant issues. They also provide a general overview of values and principles. For example, the ACM Code of Ethics and Professional Conduct declares:
"The actions of computing professionals change the world. They must be aware of the more significant impacts of their work and support the public good to act responsibly. The ACM Code of Ethics and Professional Conduct (the Code) outlines the professional's conscience.
"The Code was created to encourage and guide ethical conduct among all computing professionals, including students and instructors, as well as influencers and anyone who effectively uses computing technology.
The situation can be improved if the product is in the upper right corner. You can do this by increasing compliance with either or both values, which is how we get closer to each axis. It is impossible to improve compliance for one value while decreasing the other once the line has been reached.
Software design should aim for a product that optimizes the values that we want. However, it can sometimes be clarified where the line should go or which of the many trade-offs should be made. For example, consider an app that allows geo-tracking.
This app can be used to implement anti-doping measures to monitor professional athletes, or it can be used as a navigation app to help the average person find the fastest route to her vacation destination. While we may agree with professional athletes that they should be more transparent in fighting illegal doping, we are horrified that regular users of navigation apps are constantly monitored and tracked.
This is precisely where moral deliberation and ethical decision-making come into play. This is why CoCs don't offer ACM codes and require that computer professionals adhere to their general principles. Engineers must follow the rules and be judged according to them. This is because of their normative nature.
They are partly self-commitment but also contain legally binding obligations. CoCs are specific to a particular professional area, so they can still be detailed in forming values. However, codes lose their urgency when we look at the nominative function. This is because regulations must meet the normative requirements. The same normative standards apply to all industries: "They are guiding principles intended to uphold values that inspire trust, confidence, and integrity in public service discharge."
CoCs are available for software engineers and those working with artificial intelligence development solution. CoCs were initially introduced by businesses to address growing corruption and bad business practices. CoCs have been adopted by many other fields, including engineering, medicine, and business. A code of professional ethics is crucial for instructing individual engineers on how to conduct themselves, assessing them, and eventually comprehending the engineering profession. CoCs serve three primary purposes. They also set a standard for others, helping them identify potential unethical behavior and contribute to the profession's reputation. They also help define the profession's self-image by establishing rules for professional actors. This might be especially relevant in a young field like software engineering.
However, questions about the effectiveness of the CoCs have been raised from an early stage. An experiment showed no correlation and stated that participants were not instructed to use the ACM code while making decisions. Although it is uncertain, this article does not explicitly address the practical usefulness of CoCs. We instead show how CoCs conceptually fail to achieve their primary goal of providing ethical guidance for software engineers in uncertain situations.
A lot of research was done to compare ethical codes and their values. This effort was to quantify them and establish a consensus. Current literature has mainly focused on CoCs related to the custom software development of artificial Intelligence Systems.
They discover comparable ideas in the experiment. They propose eight themes:
-
Human control of technology.
-
Professional Responsibility.
-
Privacy.
-
Accountability.
-
Safety and security.
-
Transparency and explainability.
-
Justice and equality.
-
Promotion of human value.
As was already established, a theme is a set of principles. These principles include the right to erasure, the freedom to control processing, and consent. Data protection legislation, control over how data is used, the right to rectification, privacy by design, and privacy (other/general) are all recommended (ibid.). Another experiment meanwhile, found similar results, claiming that "particularly components of accountability and privacy or fairness come together in about 80% of the guidelines and seem to establish minimum requirements for developing an ethically acceptable AI system" (ibid.). The four principles are beneficence, equality, justice, and justification, by analyzing six significant initiatives in the field of socially beneficial AI.
Codes of Conduct and Their Normative Features
There are some overlaps between the listed values. Still, the recommendations for action derived are different. The CoCs' normative concepts (henceforth called "values") vary in how they are highlighted depending on who is originating them (NGOs, GOs, and companies), what product they are being addressed (drones and social platforms, work tracking and tools) and the target audience (technical professionals, regulators, regulatory agencies, civil society, citizens, specialized software development companies, professionals, and civil society. Each factor issues a different CoC that is targeted at an additional interest or need resulting from their products or users.
Always take into account a specific viewpoint when examining the respective CoCs. Product reliance, origin, and target group should be considered while reviewing and addressing ethical action suggestions. It is evident from this division of purpose and interest that there are noticeable variances in the standard and predominance of values. The average subject frequency differs based on the type of player (government vs. academia/NGO/corporate). The privacy issue, for instance, is quite prevalent in CoCs granted by the government. Still, it is statistically less prevalent in CoCs issued to academics and even less common in CoCs allocated to the corporate sector.
These divergences may explain why CoCs agree on specific core values but differ significantly in how they emphasize their respective sub-values. CoCs can range from abstract core values like justice and human dignity to more technical definitions. For example, government CoCs support broad and general moral imperatives like "AI software and hardware systems need to be human-centric."
An Analytical Approach to Software Codes of Conduct Failure to Guide
Most CoCs agree on core values like transparency, accountability, privacy, and transparency. CoCs can diverge when application-specific details or precise definitions supplement this level of abstraction. We also see significant differences in the priority of values and the derivation focal points. These observations raise the question: Why do CoCs differ in their core values? The nature of values could explain the difference: they are underdetermined. This is because CoCs can only provide normative software development orientation. This inability to provide normative direction in the cost of custom software development services can lead to reactive behaviors such as cherry-picking, risk of indifference, and ex-post exposure. We will discuss these issues below. These issues, when combined, lead to a need to rely on intuition, or so-called "heuristics," which seem to support ethical decision-making with minimal effort. These shortcuts are not a substitute for moral deliberation and therefore do not support a well-thought decision.
Read More: 12 Tips to Keep in Mind When Looking for a Developer for Your Custom Software Project
The Underdetermination Issue
Many CoCs include values that are fundamental to ethical software handling. These values can hardly be disputed. For instance, the idea that technology should serve humanity and respect human dignity (humanistic perspective). According to this philosophical perspective, people are valuable and have moral agency. While these normative values are not to be doubted or relativized, and they can undoubtedly be considered valid normatively, it is evident that reducing an entire value system down to these central (meta)norms does not have immediate practical implications. It is difficult or impossible to infer other values from these central values.
They are more like general statements that provide guidance but don't offer concrete or practical direction. In other words, a CoC's normative value system must often be clearer to give specific instructions in each case. CoCs are not applicable because they don't offer normative orientation for daily ethical issues. This means they need to accomplish what they were initially intended for. A worse problem is that the Codes contain so many different values it is difficult to find an appropriate ethical system to justify any action. Since no one can rank the values according to the particular case, creating a suitable value system becomes even more difficult.
Many CoCs include a range of values. These should be presented in a more organized manner. Software engineers are left to manage multiple values and comply with them without sufficient context, reference, contextualization, or explanation. When they are applied to software engineering, the nature of the discounts will cause them to conflict with one another (e.g. privacy vs. transparency or autonomy/freedom/safety). Implementing values often requires compromise. Take transparency and privacy as an example. Although both discounts are mentioned in most codes, it is usually impossible to comply with them simultaneously.
Any assistance in answering the question? They say nothing about why software engineers might consult them. For instance, the CoC of the IEEE and ACM declares that "the entire Code is concerned with how basic ethics apply to a computing profession's behavior." The Code does not provide an algorithm to solve ethical problems. Instead, it serves as a foundation for ethical decision-making.
A computing professional might consider multiple principles when addressing a specific issue. Different regulations may have additional relevance. These questions can be best answered by thoughtfully considering the customer relationship management fundamental ethical principles." CoCs are helpful as long as they can be used in win-win situations. They become very ineffective once we weigh legitimate, moral reasons and values. Therefore, it needs to be clarified what CoCs mean when used as a basis for ethical decision-making. However, the normative deliberations for engineer would be the foundation of ethical behavior.
Want More Information About Our Services? Talk to Our Consultants!
Conclusion
Software engineers shape the digital world and ecosystem, no matter what they intend to do. Software engineers must adhere to their Code of ethics, just like other engineers. This ensures that their products meet specific standards and are used for good. Keeping ethics central to a project can be challenging, but it will ensure that the software is used for good. You might be tempted to question the purpose of software engineering ethics. But think about how you could use your technology to make people's lives miserable. You will only face success if you abide by the Code.