The ACM is updating its 1992 Code of Ethics [2] keeping its primary positive emphasis and reinforcing important elements of professionalism. Sometimes ethics codes are thought of as constraints—a list of "thou shalt nots" where failure to comply leads to censure, expulsion, and eternal damnation. Some professional codes of conduct are used to define negligence and malpractice. Focusing on the negative elements of a code is dangerous, and limits the profession. Many of us approach the ACM Code of Ethics, and perhaps the profession itself, in a way that we miss the best part of computing. In addition to the "should not's" of ethics that tell us how to avoid doing evil, the ACM's Code of Ethics focuses on the other side of professionalism—opportunities for doing good. The Code provides an ethical framework within which we can be inspired do good.

Professional codes of ethics allude to important principles: integrity, competence, not causing harm, and moral courage. These principles can undergird constraints and imperatives: don't cause harm, don't accept work beyond your skill, and don't violate privacy. If this is the only thing our students know about the ACM Code, no wonder students don't like studying it! Interpreted as a list of "do not's," the Code amplifies our reasonable concerns about risk analysis, cyber security, the drudgery of repetitive testing, and documentation requirements. Distracted by these concerns, we could lose sight of the ways in which computing can contribute positively to society and its citizens. Antilock brakes, heart pumps, bio-engineering, and communication with distant relatives are all made possible by computing professionals doing good. The last section of the ACM Code has only one sentence about 'compliance;' the last sentence. There is so much more to the Code

The Positive Side of Professionalism

The Code of Ethics emphasizes the positive side of professionalism. The first clause of the Code of Ethics [1] reads: "1.1 Contribute to society and human well-being." The suggested modification in Draft 2 [3]—recognizing computing's possible positive impact on all aspects of our life—expands the encouragement for this positive aspiration by making explicit that the possible positive impact goes well beyond developers and clients, "acknowledging that all people are stakeholders in computing."

Opportunities for Good

Clause 1.1 is a call to do good. The Code reflects how lucky we are to be in a profession that can have a significant positive impact on the lives of others. The illustrative guidelines for this principle in Draft 2 [3] have been modified to make clear some of the ways we can do computing for good and how far our concerns ought to reach. It says that "[Computing professionals] are encouraged to actively contribute to society by engaging in pro bono or volunteer work. When the interests of multiple groups conflict the needs of the least advantaged should be given increased attention and priority."

This same opportunity for doing good is also explicitly addressed in another code of ethics that is approved by the ACM—the Software Engineering Code of Ethics [11]: "1.08. Be encouraged to volunteer professional skills to good causes and contribute to public education concerning the discipline."

Pro Bono Publico—(Public Good)—A contribution to Human Well-being

The draft revised ACM Code [3] calls this positive work for society "pro bono" activity. People sometimes read this as "without pay," but that isn't the true intent of that Latin phrase. The phrase "Pro Bono Publico" means "for the public good." Highly differentiated professions like law and medicine, for example, are considered so important for the running of society that they frequently provide their services "for the public good" to individuals who cannot afford their services. Pro bono work is more than mere charitable volunteerism—it means using your special professional skills for the public good. Support of pro bono work is advocated in Rule 6 [8] of the American Bar Association's Rules of Professional Conduct and is frequently practiced in the legal profession; some law schools require pro bono work as part of their degree programs. Such work includes services to public service organizations, to those who can't afford it, or to improving the profession itself. The legal profession further describes such work as an individual ethical responsibility of each lawyer.

Given the ubiquitous impact of computing, there is a wide range of possibilities for professionals and computing students to contribute to society. And computing for society is a new idea.

Computing is already involved in many areas of pro bono work. Sharing is part of the computing culture—prominent examples can be seen in free and open source software (FOSS) [4] and in other not-for-profit software projects. Even corporations like Autodesk [10] encourage volunteer work by donating $100 per hour of volunteer work to the volunteer's chosen charity. Volunteers in these projects often work in teams, each with specific roles and responsibilities. These team building activities help to develop leadership and cooperative abilities of the volunteers.

Preventing Harm is More Fun When It Also Promotes Good

Many volunteers support the admonition, "Prevent Harm!" They work on a pro bono basis as ethical hackers to address internet vulnerabilities. Other volunteers have as their goal to promote good, sharing their special skills and work in FOSS projects. They contribute to society by developing better software, which can contribute to society as a whole. Some of these projects address needs in health care, disaster management, and education.

This kind of work can also be consistent with Principle 3.7 of the Code: "Recognize when computer systems are becoming integrated into the infrastructure of society, and adopt an appropriate standard of care for those systems and their users." [3] When FOSS and other volunteer projects become widely used (Apache and GitHub are good examples), then they become infrastructure important to society, and pro bono work on those projects fulfills principle 3.7.

Some computing departments provide service based courses. A university in Tennessee has a senior capstone course where students provide technical assistance to local schools, "Providing Area Schools with Technical Assistance (PASTA)." Students work at a help desk in local schools, addressing a variety of problems and helping students explore new ways to use computing. The program also upgrades the schools' computers with approximately 400 machines a year. In addition to the contributions they make, students learn how to address constantly changing unanticipated situations in responsible and creative ways. They develop professionalism and an understanding of their responsibility to the community. Students in this program learn that what they do matters more than simply completing classroom assignments.

In December of 2016, ACM's CEO Bobby Schnabel announced ... "ACM's new partnership with Social Coder: global opportunities for members to volunteer with deserving organizations."

There are many organized efforts to use computing for good that reach beyond university classes. Geeks without Bounds [5] works to intelligently accelerate humanitarian projects. Recent projects include reducing the potential misuse of a wearable tracking device, and a panic app intended to help victims of human trafficking. These volunteers also promote computing hackathons dedicated to public service. Random Hacks of Kindness are events sponsored by local organizations, schools, and interested professionals. One group in the Random Hacks of Kindness network [7] recently sponsored "A Hack Against Gender-Based Violence." There are many groups like this, who use their technical skills to work on meaningful projects.

The ACM strongly encourages volunteering within the ACM and beyond. After looking at several organizations, a subcommittee of the Professional Development Committee under the leadership of David O'Leary promoted ACM's partnership with Social Coder. In December of 2016, ACM's CEO Bobby Schnabel announced [9] "ACM's new partnership with Social Coder: global opportunities for members to volunteer with deserving organizations."

Social Coder, ACM Partner

Social Coder helps connect volunteers' skills and interests, such as database, web design, and product evaluation, with causes they are interested in, such as famine relief, children's welfare, and health care. Volunteers are from all areas of software development, not just coding. Social Coder provides support in developing the project and ensures that the client has a post project plan before the project starts. The product is then given to the organization, which is encouraged to use open source and permissive software licenses. Social Coder helps inexperienced volunteers by pairing them with more experienced volunteers.

The Challenge of Being Positive

Pro bono computing professionalism should have a prominent place in computer science education. Get your students excited by doing something beneficial to society; show them the power of computing for good. There are numerous opportunities to promote and participate in pro bono work. Service courses and projects are generally met with student enthusiasm; their work in a course serves a broader function beyond earning them a particular grade. Industries support this kind of public service for their employees both because of the general service function and because such projects encourage teamwork, technical expertise, and leadership skills.

Have your students identify pro bono projects. The opportunities on campus include developing a system for departments, and working on programs for ACM chapters. They can develop software for campus charity projects or library book sales. Students can contact service fraternities like Alpha Phi Omega, and other university service organizations. There are also numerous off-campus service organizations that need help: e.g., students could teach computing at senior citizen centers; help with veteran's services; assist at food distribution centers; and work with scouting organizations. If your students or you contact any of these groups you will find many possibilities for useful projects.

Pro bono work is an opportunity for team building. Each team must decide which projects can be undertaken based on the project's requirements and the team's current skill level. These kinds of projects alert students to the power and responsibility of computing while accomplishing many other academic goals.

Joy in the Code

This positive side of computing generates enthusiasm in students, in professional ACM chapters, and in student ACM chapters. Students and individual professionals get excited when they do something useful for others. Working on public service hackathons, service projects, and as volunteers with Social Coder and other organizations will help people develop a deeper understanding of the power of computing, and of their own professional responsibility.

Codes of Ethics are sometimes misrepresented as constraining documents, rather than documents that inspire. The next time you read the ACM Code of Ethics, we encourage you to recognize the opportunities for good that it presents.

• Acknowledgements

PASTA sign photography by Don Gotterbarn. Social Coder Volunteer Map. Google maps Social Coder Home Page Promote Good Cartoon by Don Gotterbarn.


1. ACM Code of Ethics and Professional Conduct (1992); Accessed 2017 February 28.

2. Brinkman, B., Gotterbarn, D., Miller, K., Wolf, M., Making a Positive Impact: Updating the ACM Code of Ethics. Communications of the ACM, 59, 12 (2016).

3. Draft 2 Suggested Updates to the ACM Code of Ethics, (2017); Accessed 2017 February 28.

4. Free and Open Source Software Projects; Accessed 2017 February 28.

5. Geeks without Bounds; Accessed 2017 February 28.

6. Providing Area Schools with Technical Assistance (PASTA); Accessed 2017 February 28.

7. Random Hacks of Kindness; Accessed 2017 February 28.

8. Rule 6 the American Bar Association's Rules of Professional Conduct; Accessed 2017 February 28.

9. Schnabel tweet 12/15/16; Accessed 2017 February 28.

10. Snyder, B. These 10 companies offer big incentives for volunteering. Fortune.Com March 2015; Accessed 2017 February 28.

11. Software Engineering Code of Ethics and Professional Conduct (1999); Accessed 2017 February 28


Don Gotterbarn
ACM Committee on Professional Ethics, Chair
[email protected]


F1Figure 1. "What the ACM Code really promotes." Two sides to a Code of Ethics

F2Figure 2.

F3Figure 3. Social Coder volunteers around the world

Copyright held by author.
Request permission to (re)publish from the owner/author

The Digital Library is published by the Association for Computing Machinery. Copyright © 2017 ACM, Inc.

Contents available in PDF
View Full Citation and Bibliometrics in the ACM DL.


There are no comments at this time.


To comment you must create or log in with your ACM account.