Code 2018 Draft 3: Section 4 discussion


Please use this thread for discussion of the changes to the Section 4 (text of Draft 3 of section 4 is included below). If you have a significant issue to discuss you can start a new thread about it and ping me (Bo Brinkman) and I will add a link to it below.

Draft 3 text


A computing professional should…

4.1 Uphold, promote, and respect the principles of the Code.

The future of computing depends on both technical and ethical excellence. Computing professionals should adhere to the principles of the Code. Each ACM member should encourage and support adherence by all computing professionals regardless of ACM membership.

4.2 Treat violations of the Code as inconsistent with membership in the ACM.

Computing professionals who recognize breaches of the Code should take actions to resolve the ethical issues they recognize, including, when reasonable, expressing their concern to the person or persons thought to be violating the Code. Possible actions also include reporting the violation to the ACM, which may result in remedial action by the ACM up to and including termination of the violator's ACM membership.

Related threads

None yet.

Section 4 (overall) - Compliance
Code 2018 discussion - Start here!

Even after reading all of these drafts and past discussions, I’m still unsure what is a “violation of the Code”. Most of the contents are open for interpretation. That’s fantastic for an aspirational code - it helps us make decisions and kicks off discussions. However, it’s not enforceable. If you can’t enforce it, you can’t violate it.

There are some general things missing regarding the application of the code, such as not asking a computing professional to do something inconsistent with the Code and not punishing anyone for expressing ethical concerns about an effort with respect to the Code.

Although perhaps controversial, the SE Code suggests that one should avoid being associated with businesses or organizations that are in conflict with the code. I don’t believe that this is realistic and it should not be part of an enforceable code, but it may be interesting to incorporate.


This section is too problematic.

Clause 4.1 states that a computing professional should “Uphold, promote, and respect the principles of the code”: let’s analyse each one in turn.

  • It’s unwise to ask for a computing professional to “uphold” a code of ethics, given the very rapid evolution the field undergoes, along with concomitant changes in laws and public opinion. The call to uphold the code contains an underlying assumption that all principles of the code can stand the test of time, but it is much more likely that future circumstances will change the technological and ethical landscape to the extent that the code will attract needed questioning – if not revising. Calls to upholding what could very well be an outdated code will be counter-productive.

  • In a similar vein, clauses that ask the computing professional to “promote” the Code are likely to create situations where we have to promote a Code that may be outdated.

Upholding and promoting the Code itself won’t scale. The Code should rather promote and uphold the questioning of it. To demonstrate, would you uphold or promote today v5.2 of The Software Engineering Code of Ethics and Professional Practice, written in 1999, where the social and technological landscape did not contain things such as, say, massive social networks, self-driving cars, or blockchain technology?

  • As for “respecting” the principles in the Code, it goes without saying that if you adhere to a code of ethics, then you also respect its principles. So it’s redundant to ask for “respect” for the Code.

If consider clause 4.2 in this light, we realise that we’re allowing a scenario where a computing professional could have to violate the Code because it is out of date, with their ACM membership rescinded as a result. Unless we take “membership of the ACM” to mean blind allegiance to the Code, the mere act of violating the code is therefore not necessarily inconsistent with membership of ACM.


I would (and continue to) promote the Software Engineering Code of Ethics and Professional Practice over this code. Whenever I’ve participated in ethical discussions recently, I’ve used the SE Code to frame my perspectives. I think it’s aged very well for something that’s almost 20 years old. There are a few things that could be improved, but it’s far closer to a useful code of ethics than this.

I think this is a key point.

Just about every professional organization that I’ve ever been a part of has had some kind of code of ethics or code of conduct or some other kind of behavioral code. This Code is very different than those with respect to the content. They were written in such a way that the code was far less ambiguous and enforceable to the point where violations would be inconsistent with membership.

The current code of ethics is one of the most broad codes I’ve seen associated with professional organizations. This is even more broad and aspirational - there are too many “shoulds” and not enough “shalls” and “musts”. It leaves the ACM without an enforceable code of ethical behavior for members, which greatly diminishes the value of membership in the organization.


It’s interesting that I would take this in a slightly different direction, namely enforcement of a code like this should be reserved solely for cases of gross violation, and the code of ethics should be supplemented with a body of rules and opinions which should be relied on for determining what is considered a censurable breach.

Think of it as being similar to the relationship between a constitution and statutes and judicial opinions in common law governance: the constitution exists to provide a minimal framework and set of principles which the legislature and judiciary then extend into a useful reliable set of restrictions. Shoulds become shalls and musts through supplementation and stare decisis.


Oh, and one further note, It probably does make sense to have some limitation on Ex Post Facto rulings for terminating ACM membership.