1.5: Software Engineering Code of Ethics and Professional Practices
Software engineering activities involve many decisions that impact stakeholders: customers, clients, users, project team members, other projects, the employer company, related companies, the public, the responsible software engineer(s) and project managers, organizations, and the Software Engineering profession. When a project has multiple goals and objectives, tradeoffs are often inevitable. For example, every project has cost, schedule, functionality, and quality goals. An increase in one can negatively impact others: increasing quality(positive impact on users) but can increase cost and schedule for the developer (negative impact).
If a software engineering decision involves a decision that has a significant positive impact on a stakeholder but a significant negative impact on another stakeholder, such as injury or harm to others, the decision is called an ethical dilemma. The ACM (Association of Computing Machinery) and the IEEE Computer Society have promulgated professional codes of ethics. Read this summary article that lists eight guiding principles. Today, with the evolution of computing and networking technology, the impact of software and computer engineering decisions can be global. The risk of loss of privacy, security breaches, false information, fake news, harm on social media, and social platform support of one side over others in controversial issues of society occur frequently. As technology evolves, relevant laws, controls, and adherence to ethical codes must also evolve. After reading this summary, think of ethical dilemmas that could result from ubiquitous AI applications and societal use of virtual reality.
Computing, in general, and software engineering, in particular, has the risk of causing harm to others and society. The ACM Code of Ethics and Professional Conduct highlights the important responsibilities this risk places on software developers, project managers, other project team members, users, stakeholders, instructors, and students. Starting with a policy that "the public good is always the primary consideration", it presents supporting principles and guidance for understanding and applying them.
Reflect on the ethical principles, professional responsibilities, and professional leadership principles. Which principles apply to you as students in this course and to the authors of this course? What software engineering student responsibilities can you infer from the Professional Responsibilities? What can you do in this course that will prepare and enable you to apply Professional Leadership Principles in the future? In your opinion, will compliance with the code ever be enforced? If so, when?