Professional Ethics: Should Software Engineers Adhere to a Professional Code of Conduct? Jonathan Schiff CS 301 Institute for Electrical and Electronics Engineers-Computer Society (IEEE-CS) general directives 1. Accept responsibility in making engineering decisions consistent with the safety, health, and welfare of the public 2. Avoid real or perceived conflicts of interest wherever possible 3. Be honest 4. Reject bribery in all its forms Association for Computing Machinery (ACM) moral imperatives 1.1 Contribute to society and human well being 1.2 Avoid harm to others 1.3 Be honest and trustworthy 1.4 Be fair and take action not to discriminate 1.5 Honor property copyrights and patents 1.6 Give proper credit for intellectual property 1.7 Respect the privacy of others 1.8 Honor confidentiality Association for Computing Machinery (ACM) imperatives cont. 2.1 Strive to achieve the highest quality in work 2.2 Acquire and maintain professional competence 3.1 Articulate social responsibilities of members 3.2 Manage personnel and resources to design and build information that enhances the quality of working life 4.1 Uphold and promote the principles of this code 4.2 Treat violations of this code as inconsistent with membership in the ACM Strengths of Professional Codes • Inspire software engineers to behave ethically • Guide software engineers in ethical choices • Educate software engineers about their professional obligations • Discipline software engineers when they violate one or more of the code’s directives Strengths of Professional Codes (cont.) • Sensitize software engineers to ethical issues and alert them to ethical aspects they otherwise might overlook • Inform the public about the nature and roles of software engineering • Enhance software engineering in the eyes of the public Weaknesses of Professional Codes • Directives included in codes tend to be too general and too vague • Codes are not always helpful when two or more directives conflict • A code’s directives are never complete or exhaustive • Codes are ineffective (have no “teeth”) in disciplinary matters Weaknesses of Professional Codes (cont.) • Directives in codes are sometimes inconsistent with one another • Codes do not always distinguish between microethics and macroethics issues • Codes can be self-serving for the profession Software Engineering Code of Ethics and Professional Practice (SECEPP) principles, late 1990s 1. 2. 3. 4. 5. PUBLIC: shall act consistently with the public interest CLIENT AND EMPLOYER: shall act in a manner that is in the best interests of their client and employer, consistent with the public interest PRODUCT: shall ensure that their products and related modifications meet the highest professional standards possible JUDGMENT: shall maintain integrity and independence in their professional judgment MANAGEMENT: managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance Software Engineering Code of Ethics and Professional Practice (SECEPP) principles cont. 6. PROFESSION: shall advance the integrity and reputation of the profession consistent with the public interest 7. COLLEAGUES: shall be fair to and supportive of their colleagues 8. SELF: shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession SECEPP’s Preamble (with high level of abstraction) • Consider broadly who is affected by one’s work • Examine if one and their colleagues are treating other human beings with due respect • Consider how the public, if reasonably well informed, would view one’s decisions • Analyze how the least empowered will be affected by one’s decisions Improvements Made in SECEPP Regarding Weaknesses of Earlier Codes • Achieves a balance between the general and the specific • Addresses the problem of incompleteness by providing general guidance for ethical decision making, where one would use thoughtful consideration of fundamental principles rather than blind reliance on detailed regulations • Addresses the problem of choosing between conflicting principles by having a hierarchy of principles, with the health, safety, and welfare of the public primary in all ethical judgments Certification of Software Engineers by States without Defining a Standard of Practice • Licensed software engineers will obey the law, but laws provide inadequate guidance in many critical situations • The failure to connect specific ethical standards to licensing encourages the mistaken view that there is little agreement among software engineers about their professional and moral obligations Conclusion • Professional codes cannot provide advice in how to make professional career choices or for trying to determine the extent which a software engineer should be involved in policy issues that affect society at large • Codes can never be a substitute for careful moral deliberation that is needed in controversial cases • However, well developed codes of conduct provide software engineers an important first step in the overall ethical deliberation process Questions? Comments? Complaints?