For comparison: https://www.nspe.org/resources/ethics/code-ethics
While I think software engineering is vastly different from other kinds of engineering, I can't think of a good reason that the code of ethics would be any different.
For comparison: https://www.nspe.org/resources/ethics/code-ethics
While I think software engineering is vastly different from other kinds of engineering, I can't think of a good reason that the code of ethics would be any different.
> Engineers are encouraged to participate in civic affairs; career guidance for youths; and work for the advancement of the safety, health, and well-being of their community. > Engineers shall not complete, sign, or seal plans and/or specifications that are not in conformity with applicable engineering standards. If the client or employer insists on such unprofessional conduct, they shall notify the proper authorities and withdraw from further service on the project. > Engineers are encouraged to extend public knowledge and appreciation of engineering and its achievements. > Engineers are encouraged to adhere to the principles of sustainable development1 in order to protect the environment for future generations. > Engineers shall continue their professional development throughout their careers and should keep current in their specialty fields by engaging in professional practice, participating in continuing education courses, reading in the technical literature, and attending professional meetings and seminars.
That's rather different from the ACM's take:
> 1.02. Moderate the interests of the software engineer, the employer, the client and the users with the public good.
> 1.03. Approve software only if they have a well-founded belief that it is safe, meets specifications, passes appropriate tests, and does not diminish quality of life, diminish privacy or harm the environment. The ultimate effect of the work should be to the public good.
I'd summarize the NSPE list as roughly "follow the rules, know your limits, and don't be dishonest (and if you can maybe try to spare a bit of time to improve the world)".
And the ACM takes that "if you can" and puts it as the top priority.
So, would writing software to manage say a lithium mine "harm the environment" or not? Obviously mines themselves aren't great for the immediate surroundings, but then lithium is rather critical for electric cars which are supposed to be helping save the world. Do they really want to mandate that someone designing SCADA stuff analyze that and come to a defensible conclusion before deciding if they're allowed to take a particular employer?
An easier target is just anything that uses up more energy than it saves; video games use a lot of energy and give us what in return?
At any rate yes it's probably too draconian in its present wording.
In that case, it kind of make me wonder if engineering is the proper label.
So yes you could say "engineering" is the wrong label (and we go back to "development"), but it's still interesting that ethically they have such similar concerns.