Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
40 views9 pages

Software Engineering Ethics Guide

Uploaded by

ValentinIonescu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
40 views9 pages

Software Engineering Ethics Guide

Uploaded by

ValentinIonescu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

Software

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

decisions, professional certification, and educational


curricula can be based.” To accomplish these tasks
they made the following recommendations:

110 November 1997/Vol. 40, No. 11 COMMUNICATIONS OF THE ACM


COMMUNICATIONS OF THE ACM November 1997/Vol. 40, No. 11 111
Codes, if carefully written and properly

promoted, can be powerful instruments

in the drive for professionalism and in

establishing safeguards for society.

•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.

112 November 1997/Vol. 40, No. 11 COMMUNICATIONS OF THE ACM


identify the various relationships in which individu- ethics, given the circumstances.
als, groups, and organizations participate and the pri- These ethical tensions can best be addressed by
mary obligations within these relationships. thoughtful consideration of fundamental principles,
Each principle of this code addresses three levels of rather than reliance on detailed regulations. These prin-
ethical obligations owed by professional software ciples should influence you to consider broadly who is
engineers in each of these relationships. The first level affected by your work; to examine if you and your col-
identified is a set of ethical values, which professional leagues are treating other human beings with due
software engineers share with all other human beings respect; to speculate on how the public would view
by virtue of their humanity. The second level obliges your decision if they were reasonably well informed; to
software engineering professionals to more challeng- analyze how the least empowered will be affected by
ing obligations than those required at Level One. your decision; and to consider whether your acts would
Level Two obligations are required because profes- be judged worthy of the ideal professional working as a
sionals owe special care to people who may be affected software engineer. Since this code represents a consen-
by their work. The third and deeper level comprises sus of those engaged in the profession one should take
several obligations that derive directly from elements into account what is likely to be judged as the most
unique to the professional practice of software engi- ethical way to act in the circumstances by informed,
neering. The clauses of each principle are illustrations respected, and experienced peers in possession of all the
of the various levels of obligation included in that facts and only depart from such a course for profound
relationship. reasons, backed with careful judgment.
The clauses under each principle consist of three dif- The dynamic and demanding context of software
ferent types of statement corresponding to each level. engineering requires a code that is adaptable and rel-
evant to new situations as they occur. However, even
Level One: Aspire (to be human). Statements of aspira- in this generality, the code provides support for the
tion provide vision and objectives, and are intended software engineer who needs to take positive action by
to direct professional behavior. These directives documenting the ethical stance of the profession; an
require significant ethical judgment. ethical foundation to which individuals within teams
and the team as a whole can appeal. The code also
Level Two: Expect (to be professional). Statements of helps to define those things which are ethically
expectation express the obligations of all profession- improper to request of a software engineer.
als and professional attitudes. Again, they do not The code has an educational function, stating what
describe the specific behavior details, but they is required of anyone wishing to join or continue in
clearly indicate professional responsibilities in com- the software engineering community. Because it
puting. expresses the consensus of the profession on ethical
issues it can be used as a guide to decision making and
Level Three: Demand (to use good practices). Statements as a means to educate both the public and aspiring
of demand assert more specific behavioral responsi- professionals about the professional obligation of all
bilities within software engineering, which are more software engineers.
closely related to the current state of the art. The
range of statements is from the more general aspira- Principle 1: Product
tional statement to specific measurable requirements. Software engineers shall, insofar as possible, assure
that the software on which they work is useful and of
Although all levels of professional obligation are rec- acceptable quality to the public, the employer, the
ognized, the code is not intended to be all inclusive nor client, and the user, completed on time and at rea-
is it intended that its individual parts be used in isola- sonable cost, and free of error. In particular, software
tion to justify errors of omission or commission. The engineers shall, as appropriate:
list of principles and clauses is not exhaustive, and
should not be read as separating the acceptable from the 1.01 Ensure that specifications for software on
unacceptable in professional conduct in all practical sit- which they work have been well documented,
uations. The code is not a simple ethical algorithm that satisfy the user’s requirements, and have the
generates ethical decisions. In some situations standards client’s approval.
may conflict with each other or with standards from 1.02 Strive to fully understand the specifications for
other sources. These situations require the software software on which they work.
engineer to use ethical judgment to act in a manner 1.03 Ensure they are qualified, by an appropriate
that is most consistent with the spirit of the code of combination of education and experience, for

COMMUNICATIONS OF THE ACM November 1997/Vol. 40, No. 11 113


Codes are not meant to encourage litigation, and

they are not legislation; but they do offer practical

advice about issues that matter to professionals and

their clients, and they do inform policy makers.

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.

Principle 2: Public Principle 3: Judgment


Software engineering shall, in their professional role, Software engineers shall, insofar as possible and con-
act only in ways consistent with the public safety, sistent with Principle 2, protect both the indepen-

114 November 1997/Vol. 40, No. 11 COMMUNICATIONS OF THE ACM


dence of their professional judgment and their repu- documents on which they work or of which
tation for such judgment. In particular, software they are aware.
engineers shall, as appropriate: 4.07 Inform the client or the employer promptly if,
in their opinion, a project is likely to fail, to
3.01 Maintain professional objectivity with respect prove too expensive, to violate intellectual
to any software or related documents they are property legislation, in particular, copyright,
asked to evaluate. patent, and trademarks, or otherwise be prob-
3.02 Affix their signature only to documents pre- lematic.
pared under their supervision and within their 4.08 Accept no outside work detrimental to the
areas of competence. work they perform for their primary employer.
3.03 Reject bribery. 4.09 Represent no interest adverse to their employ-
3.04 Accept no payback, kickback, or other pay- er’s without the employer’s specific consent,
ment from a third party to a contract, except unless a higher ethical concern is being com-
with the knowledge and consent of all parties promised; then in that case the employer or
to the contract. another appropriate authority should be
3.05 Accept payment from only one party for any informed of the engineer’s ethical concern.
particular project, or for services specific to
that project, except when the circumstances Principle 5: Management
have been fully disclosed to parties concerned A software engineer in a management or leadership
and they have given their informed consent. capacity shall act fairly and shall enable and encour-
3.06 Disclose to all concerned parties those con- age those who they lead to meet their own and col-
flicts of interest that cannot reasonably be lective obligations, including those under this code.
avoided or escaped and aspire to resolve them. In particular, those software engineers in leadership
3.07 Refuse to participate in any decision of a gov- roles shall, as appropriate:
ernment or professional body, as a member or
advisor, concerned with software, or related 5.01 Ensure that employees are informed of stan-
documents, in which they, their employer, or dards before being held to them.
their client have a financial interest. 5.02 Ensure employees know the employer’s poli-
3.08 Temper all technical judgments by the need cies and procedures for protecting passwords,
to support and maintain human values. files, and other confidential information.
5.03 Assign work only after taking into account
Principle 4: Client and Employer appropriate contributions of education and
Software engineers shall, consistent with the public experience tempered with a desire to further
health, safety, and welfare, always act in professional that education and experience.
matters as faithful agents and trustees of their client 5.04 Provide for due process in hearing charges of
or employer. In particular, software engineers shall: violation of an employer’s policy or of this code.
5.05 Develop a fair agreement concerning owner-
4.01 Provide service only in areas of their compe- ship of any software, processes, research, writ-
tence. ing, or other intellectual property to which an
4.02 Ensure that any document upon which they employee has contributed.
rely has been approved by someone authorized 5.06 Attract employees only by full and accurate
to approve it. description of the conditions of employment.
4.03 Use the property of a client or employer only 5.07 Offer only fair and just remuneration.
in ways properly authorized, and with the 5.08 Not unjustly prevent a subordinate from taking a
client’s or employer’s knowledge and consent. better job for which that subordinate is qualified.
4.04 Not knowingly use illegally obtained or 5.09 Not ask an employee to do anything inconsis-
retained software. tent with this code.
4.05 Keep as confidential information gained in
their professional work that is not in the pub- Principle 6: Profession
lic domain, where such confidentiality is not Software engineers shall, in all professional matters,
inconsistent with matters of public concern. advance both the integrity and reputation of their
4.06 Identify, document, and report to the profession as is consistent with public health, safety,
employer or the client any problems or mat- and welfare. In particular, software engineers shall,
ters of social concern in the software or related insofar as possible:

COMMUNICATIONS OF THE ACM November 1997/Vol. 40, No. 11 115


6.01 Associate with only reputable businesses and 7.06 Assist colleagues in being fully aware of cur-
organizations. rent standard work practices including poli-
6.02 Ensure that clients, employers, and supervi- cies and procedures for protecting passwords,
sors know of the software engineer’s commit- files, security measures in general, and other
ment to this code of ethics, and their own confidential information.
responsibility under it. 7.07 Not interfere in the professional career pro-
6.03 Support those who similarly do as this code gression of any colleague.
requires. 7.08 Not undermine another software engineer’s
6.04 Help develop an organizational environment job prospects for one’s own personal gain.
favorable to ethical behavior. 7.09 In situations outside of their own areas of com-
6.05 Report anything reasonably believed to be a petence, call upon the opinions of other pro-
violation of this code to appropriate authorities. fessionals who have competence in that area.
6.06 Take responsibility for detecting, correcting,
and reporting errors in software and associ- Principle 8. Self
ated documents on which they work. Software engineers shall, throughout their careers,
6.07 Only accept remuneration appropriate to pro- strive to enhance their own abilities to practice their
fessional qualifications or experience. profession as it should be practiced. In particular,
6.08 Be accurate in stating the characteristics of software engineers shall continually endeavor to:
software on which they work, avoiding not
only false claims but claims that might rea- 8.01 Further their knowledge of developments in
sonably be supposed to be deceptive, mislead- the design, development, and testing of soft-
ing, or doubtful. ware and related documents, together with
6.09 Not promote their own interest at the expense the management of the development process.
of the profession. 8.02 Improve their ability to create safe, reliable,
6.10 Obey all laws governing their work, insofar as and useful quality software at reasonable cost
such obedience is consistent with the public and within a reasonable time.
health, safety, and welfare. 8.03 Improve their ability to write accurate, infor-
6.11 Exercise professional responsibility to society mative, and literate documents in support of
by constructively serving in civic affairs. software on which they work.
6.12 Promote public knowledge of software engi- 8.04 Improve their understanding of the software
neering. and related documents on which they work and
6.13 Share useful software-related knowledge, of the environment in which they will be used.
inventions, or discoveries with the profession, 8.05 Improve their knowledge of the law governing
for example, by presenting papers at profes- software and related documents on which they
sional meetings, by publishing articles in the work.
technical press, and by serving on the profes- 8.06 Improve their knowledge of this code, its inter-
sion’s standard-setting bodies. pretation, and its application to their work.
8.07 Refrain from requiring or influencing others
Principle 7: Colleagues to undertake any action that involves a breach
Software engineers shall treat all those with whom of this code.
they work fairly and take positive steps to support 8.08 Consider violations of this code inconsistent
collegial activities. In particular, software engineers with being a professional software engineer.
shall, as approriate:
ACM/IEEE-CS joint task force on Software Engineering Ethics and
7.01 Assist colleagues in professional development. Professional Practices, Chair: Donald Gotterbarn; Executive Com-
7.02 Review the work of other software engineers, mittee: Keith Miller and Simon Rogerson; Members: Peter Barnes,
which is not in the public domain, only with Steve Barber, Ilene Burnstein, Amir El-Kadi, N. Ben Fairweather,
their prior knowledge, provided this is con- Milton Fulghum, N. Jayaram, Tom Jewett, Mark Kanko, Ernie
sistent with safety. Kallman, Duncan Langford, Joyce Currie Little, Ed Mechler,
7.03 Credit fully the work of others. Manuel J. Norman, Douglas Phillips, Peter Ron Prinzivalli,
7.04 Review the work of others in an objective, Patrick Sullivan, John Weckert, S. Weisband, and Laurie Honour
candid, and properly documented way. Werth.
7.05 Give a fair hearing to the opinion, concern, or
complaint of a colleague.

116 November 1997/Vol. 40, No. 11 COMMUNICATIONS OF THE ACM


Code of Ethics Feedback Form
For the code to have currency it needs to be carefully considered by software engineers especially those who
are ACM or IEEE members. Therefore, it is essential that you review this draft code and supply feedback to
the task force. For each clause within the eight keyword principles, please indicate how strongly you are either
in favor of it, or opposed to it, or whether you are uncertain. If you are opposed to any clause please indicate
your reasons why and offer an alternative wherever possible. Please also indicate any suggested improvements
to this document. Please use additional pages for your comments. The draft code is also available electroni-
cally at http://www.computer.org/tab/seprof/code.htm or http://www.acm.org or http://www.ccsr.cms.
dmu.ac.uk

Abbreviated clause for Strongly Favor Uncertain Oppose Strongly


Products
1.01 Ensure adequate software specification
1.02 Understand specifications fully
1.03 Ensure you are suitably qualified
1.04 Ensure all goals are achievable
1.05 Ensure proper methodology use
1.06 Ensure good project management
1.07 Ensure all estimates are realistic
1.08 Ensure adequate documentation
1.09 Ensure adequate testing and debugging
1.10 Promote privacy of individuals
1.11 Use data legitimately
1.12 Delete outdated and flawed data
1.13 Identify and address contentious issues
1.14 Promote maximum quality and minimum cost
1.15 Follow appropriate industry standards

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

Client and Employer


4.01 Provide services only where competent
4.02 Ensure resources are authentically approved
4.03 Only use property as authorized by the owner
4.04 Do not use illegally obtained software
4.05 Honor confidentiality of information
4.06 Raise matters of social concern
4.07 Inform when a project becomes problematic
4.08 Accept no detrimental outside work
4.09 Represent no interests adverse to your employer

COMMUNICATIONS OF THE ACM November 1997/Vol. 40, No. 11 117


Abbreviated clause for Strongly Favor Uncertain Oppose Strongly
each principle Favor Oppose

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:

118 November 1997/Vol. 40, No. 11 COMMUNICATIONS OF THE ACM

You might also like