Which of the below ACM IEEE Code of Ethics principles represents software engineers acting in a manner that is consistent with the public interest?

Just for you: FREE 60-day trial to the world’s largest digital library.

The SlideShare family just got bigger. Enjoy access to millions of ebooks, audiobooks, magazines, and more from Scribd.

Read free for 60 days

Cancel anytime.

CS 451 Homework 1
Robert Rice

The Software Engineering Code of Ethics and Professional Practice was created by the IEEE-CS/ACM Joint Task Force on Software Engineering Ethics and Professional Practices to provide guidelines for software engineering professionals to follow in order to promote integrity and honesty within the profession. This code is composed of eight basic principles:

  1. Software engineers shall act consistently with the public interest.
  2. Software engineers shall act in a manner that is in the best interest of their client and employer, consistent with the public interest.
  3. Software engineers shall ensure that their products and related modifications meet the highest professional standards possible.
  4. Software engineers shall maintain integrity and independence in their professional judgement.
  5. Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance.
  6. Software engineers shall advance the integrity and reputation of the profession consistent with the public interest.
  7. Software engineers shall be fair and supportive of their colleagues.
  8. Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession.

The code describes each of these principles in greater detail, providing specific behaviors to be followed in order to support each principle. Because of the assortment of principles that compose this code, there is plenty of opportunity for these principles to come into conflict with each other.

For example, consider clause 3.12, which states that software engineers will "work to develop software and related documents that respect the privacy of those who will be affected by the software." The conflict arises when an engineer is assigned to develop high quality, reliable software (clause 3.01) that is to be used for the purpose of intelligence gathering by the military or by law enforcement agencies. Those people most affected by the use of this software will be those upon who the intelligence is being gathered. This would be a blatant violation of clause 3.12. Given that intelligence gathering is an unavoidable activity, careful consideration will need to be given to this clause in relation to this particular type of software. This is a conflict that comes down to the ethical feelings of the engineer and to what he values more: the privacy of the individual or the safety of the society as a whole. The only solution in this case is to weigh these principles carefully against each other and to reach a decision that sits well with one's conscious. Either go ahead with the project for the sake of the public good, or abandon the project in an effort to protect the privacy rights of the individual.

A conflict also arises when considering clause 3.10, which states that engineers will "ensure adequate testing, debugging, and review of software and related documents on which they work." Adequate testing may not be possible if the client significantly restricts the usage of its property driven or affected by the software to a point where full testing cannot be performed. For instance, consider a company that produces highly secret experimental scientific equipment. The company requires software for this equipment and can provide only minimal access to the equipment for the software developer. Unauthorized usage of a client's property is protected by clause 2.03, which states that software engineers will "use the property of a client or employer only in ways properly authorized, and with the client's or employer's knowledge and consent." Therefore, adequate testing cannot be performed because of the limited access to this equipment. If there is a significantly dangerous or ethically contradictory potential to the product, then a request asking for a higher level of access to the product should be submitted, including a thorough explanation of the concerns of the developer. Barring that, the engineer should remove himself from the project and provide explicit explanations as to his reasons.

Consequently, if adequate testing cannot occur because of the restrictions on the usage of the client's property, but for some reason development continues anyway, the software engineer should not be expected to adhere to clause 1.01, which states that the engineer will "accept full responsibility for their own work." If the engineer is not confident in the integrity and dependability of his product, but is not allowed to remedy it because of the restrictions placed on him regarding the necessary equipment, he cannot be expected to take responsibility for it. Obviously this point becomes irrelevant if a solution to the previous conflict is found. Given that the engineer attains higher level access, he can have confidence in his product and be willing to take the responsibility for it. Or, if he abandons the product, he is obviously no longer required to take responsibility for it.

Consider, as well, the engineer who is expected to take responsibility (1.01) for a high-quality, reliable product (3.01) whose true usage is unknown to him. There are no provisions in this code for the integrity and honesty of the client of a software developer. As an example, consider a developer who is given the task of programming software for some sort of nuclear energy device that, so far as he has been told, is to be used as a benefit to society such as a nuclear power device. What if the client goes on to use this software as part of a system to operate a destructive nuclear device? The developer had no knowledge that his work would be used in this way. He might even have been informed to the contrary. It should not be expected of him to take responsibility for a product whose use about he was misinformed. However, we should also consider the inherently dangerous potential of technology such as nuclear devices, regardless of whether they are meant to be beneficial or not. The engineer must weigh these risks carefully before agreeing to work on such a project.

Conflicts also arise when addressing concerns regarding the "public good." These conflicts come from the inadequate definition of "public". It is acceptable to say that development of high-quality, reliable software for military weapons is necessary to protect the public good. However, this reasoning protects only the public good of the country for which the weapons software is developed. This software is now a detriment to the public good of whatever country is the target of this weaponry. Therefore, in this case, the clause could effectively contradict itself. This is an unfortunate example of the moral ambiguity of war. If "public" is meant to imply the public of the country in which you reside and develop for, then this conflict is more easily resolved. You can produce software for weaponry to protect your own "public" while having no concern for the "public" of any other countries that are not allied with yours. However, if "public" is meant to include all people of the world, then this conflict becomes unresolvable. In this case, I think it is necessary to restrict the definition of public to one's own country.

There arises another conflict concerning the environment when an engineer is asked to design high quality, reliable systems that would be used to operate destructive devices for his country's government. This conflict becomes apparent when one considers clause 3.03, which states that the software engineer shall "identify, define and address ethical, economic, cultural, legal and environmental issues related to work projects." The important consideration is this clause is the environment. Destructive devices, and especially nuclear destructive devices, have an extremely adverse effect on the environment (understatement noted-R.R.). This type of conflict is unavoidably connected to the conflict between the public good and software for weapons systems mentioned above. It comes down to a matter of weighing the value of the protection of one's own country to the value of protecting the environment of the rest of the world. This again is at the discretion of the engineer. I think that destruction of life and environment is an unfortunate effect of war, but is an acceptable trade-off for the protection of one's own country.

A different consideration comes from the conflict between clause 1.08, which states that the software engineer will "be encouraged to volunteer professional skills to good causes and to contribute to public education concerning the discipline," and 2.08, which states that the software engineer will "accept no outside work detrimental to the work they perform for their primary employer." An excellent example would be a software engineer working for Microsoft on their operating systems, who helps to code freely-distributable, open source operating systems in their free time. This volunteering is a direct conflict of interest with the developer's work at Microsoft. There are quite likely even company policies against such behavior. For whatever reason anyone might do this, it would be interesting as a comparative exercise. Given the situation, I think this would be acceptable as long as specific knowledge gained in the workplace was not used in the development of the open source project.

Finally, consider clause 2.05, which states that the engineer will "keep private any confidential information gained in their professional work, where such confidentiality is consistent with the public interest and consistent with the law." This clause could refer not only to software engineering techniques and implementation practices, but also to information gained concerning the client's product that will be using the software. This can potentially conflict with clause 1.04, which states that the engineer will "disclose to appropriate persons or authorities any actual or potential danger to the user, the public, or the environment, that they reasonably believe to be associated with software or related documents." This decision comes down to the developer's opinion as to what constitutes a danger and whether or not the security of the client's information is worth compromising. There is also the additional distinction of how 1.04 is stated. The engineer is required to disclose information about dangers he "reasonably believes" to be possible.

These conflicts show that professional software engineers have a great responsibility to the public. Every major decision we make, whether it is in the projects we choose or the way in which we develop, must consider the effect they will have on the public good. However, these decisions are not always easy, as the principles that guide them can come into conflict at times when the results can affect the greatest consequences.

What is the ACM IEEE ethics?

Between them, these organisations developed the ACM/IEEE Software Engineering Code of Ethics. These ethics aim to provide rules, standards and protection for software developers and their clients. The Code of Ethics has eight principles: 1. PUBLIC – Software engineers shall act consistently with the public interest.

What is the software engineering code of ethics and professional Practice?

Abstract. The Software Engineering Code of Ethics and Professional Practice, intended as a standard for teaching and practicing software engineering, documents the ethical and professional obligations of software engineers.

Why the software engineers shall act consistently with the public interest?

Software engineers shall act consistently with the public interest. – Approve software only if they have a well-founded belief that it is safe, meets standards, passes tests and does not diminish quality of life, privacy or harm the environment.

What is the code of ethics for engineers?

Engineers shall be guided in all their relations by the highest standards of honesty and integrity. Engineers shall acknowledge their errors and shall not distort or alter the facts. Engineers shall advise their clients or employers when they believe a project will not be successful.