This article gives an overview of professional ethics as applied to
computer programming
Computer programming is the process of performing a particular computation (or more generally, accomplishing a specific computing result), usually by designing and building an executable computer program. Programming involves tasks such as anal ...
and
software development
Software development is the process of conceiving, specifying, designing, programming, documenting, testing, and bug fixing involved in creating and maintaining applications, frameworks, or other software components. Software development inv ...
, in particular the ethical guidelines that developers are expected to follow and apply when writing programming code (also called
source code
In computing, source code, or simply code, is any collection of code, with or without comment (computer programming), comments, written using a human-readable programming language, usually as plain text. The source code of a Computer program, p ...
), 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
Software is a set of computer programs and associated software documentation, documentation and data (computing), data. This is in contrast to Computer hardware, hardware, from which the system is built and which actually performs the work.
...
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
Norbert Wiener (November 26, 1894 – March 18, 1964) was an American mathematician and philosopher. He was a professor of mathematics at the Massachusetts Institute of Technology (MIT). A child prodigy, Wiener later became an early researcher ...
, professor of Mathematics and Engineering at
Massachusetts Institute of Technology
The Massachusetts Institute of Technology (MIT) is a Private university, private Land-grant university, land-grant research university in Cambridge, Massachusetts. Established in 1861, MIT has played a key role in the development of modern t ...
, 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
Technology is the application of knowledge to reach practical goals in a specifiable and reproducible way. The word ''technology'' may also mean the product of such an endeavor. The use of technology is widely prevalent in medicine, scie ...
, 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
Ethics or moral philosophy is a branch of philosophy that "involves systematizing, defending, and recommending concepts of right and wrong behavior".''Internet Encyclopedia of Philosophy'' The field of ethics, along with aesthetics, concerns ...
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).
In 1976, a new term regarding Ethics, named “computer ethics,” was proposed by Walter Maner based on the ideas and principles of
Norbert Wiener
Norbert Wiener (November 26, 1894 – March 18, 1964) was an American mathematician and philosopher. He was a professor of mathematics at the Massachusetts Institute of Technology (MIT). A child prodigy, Wiener later became an early researcher ...
. 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
The Association for Computing Machinery (ACM) is a US-based international learned society for computing. It was founded in 1947 and is the world's largest scientific and educational computing society. The ACM is a non-profit professional member ...
(ACM) in 1992, and Software Engineering Code of Ethics and Professional Practice, adopted by the
Institute of Electrical and Electronics Engineers
The Institute of Electrical and Electronics Engineers (IEEE) is a 501(c)(3) professional association for electronic engineering and electrical engineering (and associated disciplines) with its corporate office in New York City and its operat ...
(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
The Institute of Electrical and Electronics Engineers (IEEE) is a 501(c)(3) professional association for electronic engineering and electrical engineering (and associated disciplines) with its corporate office in New York City and its operati ...
as the standard for teaching and practicing
software engineering
Software engineering is a systematic engineering approach to software development.
A software engineer is a person who applies the principles of software engineering to design, develop, maintain, test, and evaluate computer software. The term ' ...
. 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):
* Contribute to society and human well-being. Programmers should work to develop computer systems that can reduce negative consequences to society, such as threats to safety and health, and that can make everyday activities and work easier. It is “an obligation to develop to high standards” (Savage).
* Avoid harm to others. Computer systems have an indirect impact on third parties. They can cause loss of information and resources that might result severely harmful for users, the general public, or employers. Therefore, software developers should minimize the risk of harming others due to
coding errors, or security issues, by following standards to design and test systems (Code of Ethics and Professional Conduct).
* Be honest and trustworthy. This principle encourages programmers to be honest and aware of their limitations in knowledge and education when writing computer systems. Also, if a programmer knows there is something wrong with a computer system, he or she should report it immediately to avoid undesirable consequences.
* Give proper credit for intellectual property. It is mandatory for every software developer to never use and take credit for someone else's work, even when it has not been protected by a
copyright
A copyright is a type of intellectual property that gives its owner the exclusive right to copy, distribute, adapt, display, and perform a creative work, usually for a limited time. The creative work may be in a literary, artistic, education ...
law,
patent
A patent is a type of intellectual property that gives its owner the legal right to exclude others from making, using, or selling an invention for a limited period of time in exchange for publishing an sufficiency of disclosure, enabling disclo ...
, etc. They must recognize and fully credit other people's works, and they should use their own ideas to develop software.
* Respect the privacy of others. Computer systems are wrongly used by some people to violate the privacy of others. Software developers should write programs that can protect users’ private information and that can avoid other undesired people to have unauthorized access to it (Code of Ethics and Professional Conduct).
* Honor confidentiality. Unless required by law or any other ethical guideline, a programmer must keep secret any additional information related to his or her employer that arises from working in a project.
From Software Engineering Code of Ethics and Professional Practice
(IEEE, ACM):
* Approve software only if they have a well-founded belief it is safe and meets specifications. Programmers cannot assume that a system is ready to use only because it performs the tasks needed. They should make sure these systems are also safe and meet every specification required by the user. If programs are not safe, users are unprotected from hackers that could steal important information or money. Therefore, several tests should be performed in order to ensure a
system's security before approving it.
* Accept full responsibility for their own work. If a program presents errors, the software developer should accept full responsibility for his or her work, and should work on revising, correcting, modifying, and
testing
An examination (exam or evaluation) or test is an educational assessment intended to measure a test-taker's knowledge, skill, aptitude, physical fitness, or classification in many other topics (e.g., beliefs). A test may be administered verba ...
it.
* Not knowingly use software that is obtained or retained either illegally or unethically. If a computer system will be used as a base for the creation of another, then permission to do so should be asked by the programmer. This principle prohibits using any other software for any purpose if the way it was gotten is not clear or is known to be illegal or unethical.
* Identify, define, and address ethical, economic, cultural, legal and environmental issues related to work projects. If a programmer notices and identifies that working on a project will lead to any kind of problems, then the programmer should report it to his or her employer before continuing.
* Ensure that specifications for software on which they work satisfy the users’ requirements and they have the appropriate approvals. Software developers should come to their employers to ask for the correspondent approval to the system they are creating before continuing working on the next part. If it doesn't meet the requirements, then a modification to the source code of the system should be made.
* Ensure adequate testing,
debugging
In computer programming and software development, debugging is the process of finding and resolving ''bugs'' (defects or problems that prevent correct operation) within computer programs, software, or systems.
Debugging tactics can involve in ...
and review of software. Programmers should perform the appropriate tests to the pieces of software they work with, and should check for errors and system security holes to make sure that the programs are well implemented.
* Not engage in deceptive financial practices such as bribery, double billing, or other improper financial practices. Programmers are exposed to be participants in illegal activities to get money. They get involved in them due to threats, economic issues, or simply because they want to obtain easy money by taking advantage of their knowledge about how computer systems work. This guideline prohibits programmer involvement in such unlawful actions.
* Improve their ability to create safe, reliable, and useful quality software. Since
technology
Technology is the application of knowledge to reach practical goals in a specifiable and reproducible way. The word ''technology'' may also mean the product of such an endeavor. The use of technology is widely prevalent in medicine, scie ...
advances faster year by year, and so does virtual criminality, the need of well-structured and designed programs is increasing. Computer systems get old and limited by new ones and new devices. Programmers should “further their knowledge of developments in the analysis, specification,
design
A design is a plan or specification for the construction of an object or system or for the implementation of an activity or process or the result of that plan or specification in the form of a prototype, product, or process. The verb ''to design'' ...
, development,
maintenance
Maintenance may refer to:
Biological science
* Maintenance of an organism
* Maintenance respiration
Non-technical maintenance
* Alimony, also called ''maintenance'' in British English
* Champerty and maintenance, two related legal doctrine ...
, and testing software and related documents” (Software Engineering Code of Ethics and Professional Practice)
in order to create better pieces of software.
University's Role
Ohio University
Ohio University is a public research university in Athens, Ohio. The first university chartered by an Act of Congress and the first to be chartered in Ohio, the university was chartered in 1787 by the Congress of the Confederation and subsequ ...
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.
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
*
ACM: Association for Computing Machinery
*
IEEE: Institute of Electrical and Electronics Engineers
*
Computer science
Computer science is the study of computation, automation, and information. Computer science spans theoretical disciplines (such as algorithms, theory of computation, information theory, and automation) to practical disciplines (includin ...
*
Computer programming
Computer programming is the process of performing a particular computation (or more generally, accomplishing a specific computing result), usually by designing and building an executable computer program. Programming involves tasks such as anal ...
*
Computer ethics
Computer ethics is a part of practical philosophy concerned with how computing professionals should make decisions regarding professional and social conduct.
Margaret Anne Pierce, a professor in the Department of Mathematics and Computers at Ge ...
*
Code of conduct
A code of conduct is a set of rules outlining the norms, rules, and responsibilities or proper practices of an individual party or an organization.
Companies' codes of conduct
A company code of conduct is a set of rules which is commonly writt ...
*
Software
Software is a set of computer programs and associated software documentation, documentation and data (computing), data. This is in contrast to Computer hardware, hardware, from which the system is built and which actually performs the work.
...
References
{{reflist
Ethics