Programming ethics explained

This article gives an overview of professional ethics as applied to computer programming and software development, in particular the ethical guidelines that developers are expected to follow and apply when writing programming code (also called source code), and when they are part of a programmer-customer or employee-employer relationship. These rules shape and differentiate good practices and attitudes from the wrong ones when creating software or when making decisions on a crucial or delicate issue regarding a programming project. They are also the basis for ethical decision-making skills in the conduct of professional work.

History

The American scholar Norbert Wiener, professor of Mathematics and Engineering at Massachusetts Institute of Technology, was the first person to set the basis for a new type of Ethics in the mid 1940s. He noticed that the innovations and advances in science and technology, along with the fast-growing computer industry, were leading to the appearance of this type of Ethics that he named “cybernetics” (from the Greek word for the pilot of a ship). The emerging use of computers and other technologies were bringing up new ethical issues that needed to be analyzed carefully using new ethical guidelines.

Wiener wrote three books that lay down a foundation to a new division of Ethics after World War II ended. The books were Cybernetics (1948), The Human Use of Human Beings (1950) and God and Golem, Inc. (1963). Even though he never saw himself creating a new area of Ethics, Wiener gave detailed examples where some ethical and social issues and implications, which were generated by the use of computers, could be identified. However, his ideas were not taken seriously by other scholars because they considered him an eccentric scientist that fantasized about Ethics (Bynum).[1]

In 1976, a new term regarding Ethics, named “computer ethics,” was proposed by Walter Maner based on the ideas and principles of Norbert Wiener. Maner felt it was necessary to have a field of Ethics for the computer industry just as the medical and business industries had at that moment. Maner also defined that field as one that “studies ethical problems aggravated, transformed or created by computer technology” (Bynum), and he even designed a computer ethics course that could be imparted to university students.

In the early 1990s, Donald Gotterbarn claimed that computer ethics should be considered as professional ethics that could have the power to lead towards the development and advancement of standards of good practice and codes of conduct for computing professionals (Bynum). He worked with several professional-ethics advocates to write ethical guidelines for creating codes of Ethics. He formed part of the creation of Code of Ethics and Professional Conduct, adopted by the Association for Computing Machinery (ACM) in 1992, and Software Engineering Code of Ethics and Professional Practice, adopted by the Institute of Electrical and Electronics Engineers (IEEE) and the ACM as well. These codes also include Programming Ethics principles.

Programming Ethical Guidelines

The Association for Computing Machinery (ACM) is the world's largest educational and scientific computing society. It has its own Code of Ethics and another set of ethical principles that were also approved by the IEEE as the standard for teaching and practicing software engineering. These codes are Code of Ethics and Professional Conduct and the Software Engineering Code of Ethics and Professional Practice, respectively, and some of their guidelines are presented below:

From the Code of Ethics and Professional Conduct (ACM):[2]

From Software Engineering Code of Ethics and Professional Practice[4] (IEEE, ACM):

University's Role

Ohio University also trains their computer science majors on the field of programming ethics. They expect every student to understand and follow ACM's principles and responsibilities.[5]

Legal consequences

Intentionally making mistakes like creating insecure passwords or leaving security holes in the implementation of a program that could compromise a system's security and reliability exposes the programmer to trial. The specific sanctions that might result from a programming-related legal dispute will vary from one state to another. Sanctions may include corrective actions, a certain number of hours of social work, or months or years in jail.

See also

Notes and References

  1. Encyclopedia: Bynum, Terrel. Computer and Information Ethics. The Stanford Encyclopedia of Philosophy (Spring 2011 Edition). Edward N. Zalta. 2015-10-26. 2001-08-14. 2021-06-21.
  2. Web site: ACM Code 2018 Task Force. ACM Code of Ethics and Professional Conduct. Association for Computing Machinery. 2013-09-28.
  3. Web site: Savage, Brandon. Ethics for Programmers?. BrandonSavage.net. 2009-08-12. 2013-09-29.
  4. Donald Gotterbarn, Keith Miller, and Simon Rogerson. Software Engineering Code of Ethics and Professional Practice. Association for Computing Machinery, IEEE. 2013-09-28. 10.1145/265684.265699. 9789551 . free.
  5. Web site: World of Programming. Ohio University. 2021-05-08.