Using the Code
The ACM Code of Ethics and Professional Practice (“the Code”) is meant to be a useful code, a document that can inform practice and education. It is useful as the conscience of the profession, but also for individual decision-making. The following resources may be of use in learning to apply the Code to your own situation.
Proactive CARE for Computing Professionals
- Proactive CARE for Computing Professionals: When faced with complex situations, it is helpful to use a guided ethical process that leads to informed decisions. Proactive CARE (Consider, Analyze, Review, and Evaluate) uses a set of questions derived from the Code to help computing professionals think through such issues.
ACM Tech Talks
- Don Gotterbarn and Marty J. Wolf, “Leveraging the ACM Code Of Ethics against ethical snake oil and dodgy development.” June 8, 2020. [Slides]
Case Studies
As prescribed by the Preamble of the Code, computing professionals should approach the dilemma with a holistic reading of the principles and evaluate the situation with thoughtful consideration to the circumstances. In all cases, the computing professional should defer to the public good as the paramount consideration. The analyses in the following cases highlight the intended interpretations of members of the 2018 Code task force.
- Malware Disruption: Security vendors and government organizations collaborate to disrupt the operation of an ISP that hosts malware.
- Medical Implant Risk Analysis: A medical implant device maker creates a smart phone application to monitor and control the device.
- Abusive Workplace Behavior: A manager fails to address abusive behavior by a technical team leader.
- Autonomous Active Response Weapons: A defense contractor that specializes in autonomous vehicles begins to integrate automated weaponry.
- Dark UX Patterns: A web developer realizes that their client’s requests are intended to trick users into making accidental and expensive purchases.
- Malicious Inputs to Content Filters: An Internet content filtering service deploys machine learning techniques to automate the classification of blocked content.
- Accessibility in Software Development: A web-based collaboration tool deploys a new inline feature that has significant accessibility issues.
These cases studies are designed for educational purposes to illustrate how to apply the Code to analyze complex situations. All names, businesses, places, events, and incidents are fictitious and are not intended to refer to actual entities.
Uses of the Code in the News
While many computing professionals have never heard of the Code, it often plays a role in court proceedings. Some particularly interesting examples:
-
Markoff, John. “Apple’s Engineers, If Defiant, Would Be in Sync With Ethics Code.” The New York Times, March 18, 2016. http://www.nytimes.com/2016/03/19/technology/apples-engineers-if-defiant-would-be-in-sync-with-ethics-code.html. — The author argues that the Code may support engineers that refuse certain kinds of government requests.
-
Mullin, Joe. “Google Puts Its Expert on the Stand to Combat Oracle, Wraps up Its Case.” Ars Technica, May 16, 2016. http://arstechnica.com/tech-policy/2016/05/google-puts-its-expert-on-the-stand-to-combat-oracle-wraps-up-its-case/. — Oracle’s lawyers in the Oracle v. Google case about the Java API used the Code when cross-examining an expert witness.
Know of some other cases where the Code has been used? Let us know via the Contact page.
Additional References
- Ronald E. Anderson, Deborah G. Johnson, Donald Gotterbarn, and Judith Perrolle. 1993. Using the new ACM code of ethics in decision making. Commun. ACM 36, 2 (February 1993), 98-107. DOI: 10.1145/151220.151231 — Using case studies, the authors demonstrate how to apply the code in professional situations.
- C. Dianne Martin, Chuck Huff, Donald Gotterbarn, and Keith Miller. 1996. Implementing a tenth strand in the CS curriculum. Commun. ACM 39, 12 (December 1996), 75-84. DOI: 10.1145/240483.240499 — The authors describe the specific skills and learning outcomes that could be implemented in a computing curriculum.