Table of Contents |
The Association for Computing Machinery (ACM) has published a short and full version of the Software Engineering Code of Ethics. The short version summarizes the guiding principles, and the full version provides additional details and examples. The full version can be found on their website. Below is the short version of the Software Engineering Code of Ethics and Professional Practice.
Software engineers shall commit themselves to making the analysis, specification, design, development, testing, and maintenance of software a beneficial and respected profession. In accordance with their commitment to the health, safety, and welfare of the public, software engineers shall adhere to the following Eight Principles:
Jonathan Cameron is a software engineer working for LFB Software Company. He is currently working on a project, for the Whitestone County School System, that will provide students, teachers, and parents with a way to electronically receive access to a student's transcript upon request. Jonathan’s current role on the team is as a software tester. Early tests show that, while the software is functional, it does not take measures to fully authenticate users, and could result in private student data being given to the wrong people, or even criminals. Jonathan would like to develop a patch for the software, but the project is severely over budget. Further complicating the situation is the fact that the project is two months late. Jonathan feels that he can resolve the problem, but it will take another month of software design, development, and implementation. Jonathan has raised his concerns with his supervisor, and has been instructed to complete development on the patch to fix the problem; however, the patch will be released next year in the second version of the software. Jonathan is under a tremendous amount of pressure from the company to sign off on the software so that it can be released to the school system. His supervisor has even suggested that Jonathan’s employment with LFB Software company may be terminated. What should Jonathan do?
Relevant Clauses:
Principle 1. Public Software engineers shall act consistently with the public interest. In particular, software engineers shall as appropriate:
Principle 5 of the code addresses the behavior or management. Based on the code, Jonathan’s manager would be in violation based on Sections 5.01 and 5.11. Section 5.01 addresses the reduction of risk, while 5.11 stipulates that a manager not ask an engineer to do anything in violation of the code.
In this example, Jonathan finds himself in a tough situation. On one hand, he would like to act ethically as a software engineer, but faced with tight deadlines, the overall quality of the application could be diminished, and user privacy may be compromised. To further complicate things, it has been implied that Jonathan’s job could on the line if the software is not released on time. With this being the case, it would be advisable that Jonathan, as he rightly did, express his concerns to his manager regarding end users' privacy being compromised if the application is deployed. If Jonathan is still concerned about the software, he may even ask that a team meeting be called (or ask to put his concerns on an agenda for another already scheduled meeting) with all key development personnel in attendance, where he can then express his specific concern to the entire team, thereby ensuring that other team members understand the ethical ramifications of going forward with the software release. After initially listening to Jonathan’s concerns, his manager might want to commission a software test in which Jonathan’s concerns are documented and tested. If it turns out that his concerns are valid, then the manager should address this issue with his supervisor and the development team. If the manager has the authority to stop work on the project until the issue is resolved, then the manager should have development stopped. It would not be advisable for the manager to sign off on the software and wait until the second version to fix or patch the software.
Chris Sellers is a computer engineering professor who sits on the board of directors for Sophia University. His role on the board of directors is to serve as the chair of the technology committee. It is his responsibility to evaluate the University’s technology needs and make recommendations based on the assessment of the board’s technology committee. Chris has been asked by the dean of the chemical engineering department to assist with evaluating process simulation software packages that will used by students, professors, and researchers at the University. The University provided Chris with software applications from several different companies. After carefully evaluating each application based on the University’s expressed needs, Chris recommended an application developed by Bison Software Firm (BSF). His recommendation included a report on the software, and why he felt the BSF application was best suited for the needs of the University’s chemical engineering department. Chris did not inform the University or the board of directors that he currently owns 35% of BSF’s stock, and that the purchase of a software application by the University will significantly increase the value of Chris’s stock. Assuming that Chris’s evaluation of the software packages was fair and balanced, were Chris’s actions in not informing the University or board of directors ethical?
Relevant Clauses:
Principle 4. Judgement. Software engineers shall maintain integrity and independence in their professional judgement. In particular, software engineers shall, as appropriate:
Source: Software Engineering Code of Ethics and Professional Practice from http://www.acm.org/about/se-code. This Code may be published without permission as long as it is not changed in any way and it carries the copyright notice. Copyright (c) 1999 by the Association for Computing Machinery, Inc. and the Institute for Electrical and Electronics Engineers, Inc.