Software Engineering Ethics Guide
Software Engineering Ethics Guide
Engineering
Code of
Ethics
Don Gotterbarn, Keith Miller,
and Simon Rogerson
T
he Board of Governors of
the IEEE Computer Soci-
ety established a steering
committee in May 1993
for evaluating, planning,
ACM and the and coordinating actions
related to establishing
IEEE Computer Society software engineering as a
join forces to create a profession. In that same
year the ACM Council
code of professional practices endorsed the establishment of a Commission on Soft-
within our industry. ware Engineering. By January 1994, both societies
formed a joint steering committee “to establish the
Now, we ask for your appropriate set(s) of standards for professional prac-
comments. tice of software engineering upon which industrial
MARTIN MAYO
•Adopt standard definitions tioners about the standards that society expects them
•Define required body of knowledge and recom- to meet, and what their peers strive for and expect of
mended practices each other. Codes are not meant to encourage litiga-
•Define ethical standards tion, and they are not legislation; but they do offer
•Define educational curricula for undergraduate, practical advice about issues that matter to profes-
graduate (Masters), and continuing education (for sionals and their clients, and they do inform policy
retraining and migration) makers. These concepts have been adopted in the
development of this code.1 Based on the feedback
The steering committee decided to achieve these from readers of this publication and from other
goals by establishing a series of task forces. The ini- sources, a final draft of the code will be developed and
tial task forces included: software engineering body presented to the steering committee for approval.
of knowledge and recommended practices; software
engineering ethics and professional practices; and Preamble
software engineering curriculum. Computers now have a central and growing role in
The purpose of the Software Engineering Ethics commerce, industry, government, medicine, educa-
and Professional Practices task force is to document tion, entertainment, social affairs, and ordinary life.
the ethical and professional responsibilities and oblig- Those who contribute, by direct participation or by
ations of software engineers. This draft code of ethics teaching, to the design and development of software
was developed by a task force of the Joint IEEE Com- systems have significant opportunities both to do
puter Society and ACM Steering Committee for the good and to cause harm and to influence and enable
Establishment of Software Engineering as a Profession others to do good or cause harm. To ensure, as much
and has been reviewed by the steering committee. The as possible, that this power will be used for good,
task force on Software Engineering Ethics and Profes- software engineers must commit themselves to mak-
sional Practices developed this code for a subspecial- ing the design and development of software a bene-
ization within the constituencies of both of the ficial, and respected profession. In accordance with
professional societies. The purpose of this distribution that commitment, software engineers shall adhere to
is to solicit comments from practitioners and other the following code of ethics.
interested parties. The code contains eight keyword principles related
Codes, if carefully written and properly promoted, to the behavior of and decisions made by professional
can be powerful instruments in the drive for profes- software engineers, be they practitioners, educators,
sionalism and in establishing safeguards for society. managers and supervisors, or policy makers, as well as
They do not have to be and should not be sterile, trainees and students of the profession. The principles
which is often the perception that people have of 1
Codes referred to include: The American Association of Engineering Societies; Model
them. This draft code evolved after extensive study of Guide for Professional Conduct; Accreditation Board for Engineering Technology’s
several computing and engineering codes [1]. All of Code of Ethics for Engineers and Guidelines for the Fundamental Canon of Ethics; The
ACM’s Code of Ethics and Guidelines for Professional Conduct; The British Computer
these codes try to educate and inspire the members of Society Code of Practice; The Institute for the Certification of Computing Profession-
the professional group that adopts the code. Codes als; The Engineer’s Council for Professional Development; Faith of the Engineer; The
IEEE Code of Ethics; The National Society of Professional Engineers Code of Ethics for
also inform the public about the responsibilities that Engineers; and the Project Management Institute Code of Ethics for the Project Man-
are important to a profession. Codes instruct practi- agement Profession.
any project on which they work or propose to health, and welfare. In particular, software engineers
work. shall:
1.04 Ensure proper and achievable goals and objec-
tives for any project on which they work or 2.01 Disclose to appropriate persons or authorities
proposed work. any actual or potential danger to the user, a
1.05 Ensure an appropriate methodology for any third party, or the environment, they reason-
project on which they work or propose to work. ably believe to be associated with the software
1.06 Ensure good management for any project on or related documents for which they are
which they work, including effective procedures responsible, or merely know about.
for promotion of quality and reduction of risk. 2.02 Approve software only if they have a well-
1.07 Ensure realistic estimates of cost, scheduling, founded belief that it is safe, meets specifica-
personnel, and outcome on any project on tions, has passed appropriate tests, and does
which they work or propose to work and pro- not diminish quality of life or harm the envi-
vide a risk assessment of these estimates. ronment.
1.08 Ensure adequate documentation on any pro- 2.03 Affix their signature only to documents pre-
ject on which they work, including a log of pared under their supervision or within their
problems discovered and solutions adopted. areas of competence and with which they are
1.09 Ensure adequate testing, debugging, and in agreement.
review of software and related documents on 2.04 Cooperate in efforts to address matters of
which they work. grave public concern caused by software or
1.10 Work to develop software and related docu- related documents.
ments that respect the privacy of those who 2.05 Endeavor to produce software that respects
will be subjected to that software. diversity. Issues of language, different abili-
1.11 Be careful to use only accurate data from legal ties, physical access, mental access, economic
sources and use only in ways properly authorized. advantage, and allocation of resources should
1.12 Whenever appropriate, delete outdated or all be considered.
flawed data. 2.06 Be fair and truthful in all statements, partic-
1.13 Work to identify, define, and address ethical, ularly public ones, concerning software or
economic, cultural, legal, and environmental related documents.
issues related to any work project. 2.07 Not put self-interest, the interest of an
1.14 Promote maximum quality and minimum employer, the interest of a client, or the inter-
cost to the employer, the client, the user, and est of the user ahead of the public’s interest.
the public. Make any tradeoffs clear to all par- 2.08 Donate professional skills to good causes
ties concerned. when opportunities arise and contribute to
1.15 Work to follow industry standards that are public education with respoect to the disci-
most appropriate for the task at hand, depart- pline.
ing from these only when technically justified. 2.09 Accept full responsibility for their own work.
Public
2.01 Disclose any software-related dangers
2.02 Approve only safe, well tested software
2.03 Only sign documents in area of competence
2.04 Cooperate on matters of public concern
2.05 Produce software that respects diversity
2.06 Be fair and truthful in all matters
2.07 Always put the public’s interests first
2.08 Donate professional skills to good causes
2.10 Accept responsibility for your own work
Judgment
3.01 Maintain professional objectivity
3.02 Only sign documents within your responsibility
3.03 Reject bribery
3.04 Do not accept secret payments from the client
3.05 Accept payment from only one source for a job
3.06 Disclose conflicts of interest
3.07 Avoid conflicting financial interests
3.08 Temper technology judgments with ethics
Management
5.01 Assure standards are known by employees
5.02 Assure knowledge of confidentiality protocols
5.03 Assign work according to competence
5.04 Provide due process for code violations
5.05 Develop fair ownership agreements
5.06 Accurately describe conditions of employment
5.07 Offer only fair and just remuneration
5.08 Do not prevent a subordinate’s promotion
5.09 Do not ask a person to breach this code
Profession
6.01 Associate with reputable people
6.02 Promote commitment of this code
6.03 Support followers of this code
6.04 Help develop an ethical environment
6.05 Report suspected violations of this code
6.06 Take responsibility for errors
6.07 Only accept appropriate remuneration
6.08 Be accurate and honest regarding software
6.09 Place professional interests before personal
6.10 Obey all laws governing your work
6.11 Exercise professional responsibility
6.12 Promote public knowledge of the subject
6.13 Share software knowledge with the profession
Colleagues
7.01 Assist colleagues in professional development
7.02 Review other’s work only with their consent
7.03 Credit fully the work of others
7.04 Review others work candidly
7.05 Give fair hearing to colleagues
7.06 Assist colleagues’ awareness of work practices
7.08 Do not hinder a colleague’s career
7.09 Do not pursue a job offered to a colleague
7.10 Seek help with work outside your competence
Self
8.01 Further your own professional knowledge
8.02 Improve your ability to produce quality work
8.03 Improve your ability to document work
8.04 Improve your understanding of work details
8.05 Improve your knowledge of relevant legislation
8.06 Improve your knowledge of this code
8.07 Do not force anyone to violate this code
8.08 Consider code violations inconsistent with
software engineering
Please return this form and additional comments to: Donald Gotterbarn, Computer and Information Sciences,
East Tennessee State University, Box 70711, Johnson City, TN 37614-0711,
[email protected], fax: 423-461-7119.
Comments: