Code of Ethics for Software Engineers (Version 1.0)

 Author: Michael Davis
 Date: September 1996
 Recepient: Unknown
 Format: Electronic Document


Computers now have a central and growing role in commerce, industry, government, medicine, entertainment, and ordinary life. Because the utility of computers depends in large part on the instructions written for them, those who design, develop, and test software have enormous opportunities both to do good and to cause harm. To assure, as much as possible, that this power will be used for good, software engineers commit themselves to making the design, development, and testing of software a distinct, beneficial, and respected profession. In accordance with that commitment, software engineers shall adhere to the following standards of conduct. The seven main paragraphs state general rules. Each subsidiary clause is a specific application of its general rule, one experience has shown needs express statement; but no set of subsidiary clauses exhausts the general rule.

Rule 1: PRODUCT. Software engineers shall, insofar as possible,
Assure that the software on which they work is useful to public, employer, customer, and user, completed on time and at reasonable cost, and free of significant error. In particular, software
engineers shall, as appropriate:

1.01. Assure that specifications for software on which they work have been put in writing, satisfy the user's requirements, and have the customer's approval.
1.02. Assure that they understand fully the specifications for software on which they work.
1.03. Assure that they are qualified, by education and experience, for any project on which they work.
1.04. Assure proper goals and objectives for any project on which they work.
1.05. Assure proper development methodology on any project on which they work.
1.06. Assure proper management on any project on which they work, including proper procedures for control of quality and risk.
1.07. Assure proper estimates of cost, schedule, personnel, and outcome on any project on which they work.
1.08. Assure adequate documentation on any project on which they work, including a log of problems discovered and solutions adopted.
1.09. Assure proper testing, debugging, and review of software and related documents on which they work.
1.10. Assure that software and related documents on which they work respect the privacy of those who will be subject to the software.
1.11 Assure that raw information used in software is accurate, derives from a legitimate source, and is used only in ways properly authorized.
1.12. Assure ethical, economic, cultural, legal and environmental issues are properly identified, defined, and addressed.
1.13. Promote maximum productivity and minimum cost to employer, customer, user, and public.
1.14. Avoid fads, departing from standard practices only when justified.

Rule 2: PUBLIC. Software engineers shall, in their professional role, act only in ways consistent with the public safety, health and welfare. In particular, software engineers shall:

2.01. Disclose to appropriate persons any danger that the software or related documents on which they work may pose to the user, a third party, or the environment.
2.02. Approve software only if they have a well?documented belief that it is safe, meets specifications, and has passed all appropriate tests.
2.03. Affix their signature only to documents prepared under their supervision and within their areas of competence.
2.04. Cooperate in efforts to correct problems in software or related documents.
2.05. Be fair and truthful in all public statements concerning software or related documents.
2.06. Not put self?interest, the interest of an employer, or the interest of a client or customer ahead of the public's interest.
2.07. Accept full responsibility for their own work.

Rule 3: JUDGMENT. Software engineers shall, insofar as possible, protect both the independence of their professional judgment and their reputation for such judgment. In particular, software
engineers shall, as appropriate:

3.01. Maintain professional skepticism with respect to any software or related documents they are asked to evaluate.
3.02. Reject bribery.
3.03. Accept no payback, kickback, or other payment from a third party to a contract, except with the knowledge and consent of all parties to the contract.
3.04. Accept payment from only one party for any particular project, or for services related to the same project, except when the circumstances have been fully disclosed to the parties concerned and they have given their informed consent.
3.05. Neither solicit nor accept a contract from governmental body on which a principal of officer of their employer serves as a member.
3.06. Participate in no decision of a governmental or professional body, as a member or advisor, concerned with software, or related documents, in which they, their employer, or their client have a financial interest.
3.07. Disclose to all concerned parties those conflicts of interest that cannot reasonably be avoided or escaped.

Rule 4: CLIENT AND EMPLOYER. Software engineers shall, consistent with the public health, safety, and welfare, always act in professional matters as faithful agents and trustees of their client or employer. In particular, software engineers shall:

4.01. Provide service only in areas of competence.
4.02. Assure that any document upon which they rely has been approved by someone qualified to approve it.
4.03. Use the property of a client or employer only in ways properly authorized.
4.04. Not knowingly use pirated software on equipment of a client or employer or in work performed for a client or employer.
4.05. Keep as confidential information gained in their professional work that is not properly in the public domain.
4.06. Identify, document, properly report to employer or client any problem in the software or related documents on which they work.
4.07. Inform client or employer promptly if, in their opinion, a project is likely to fail, to prove too expensive, to violate copyright laws, or otherwise to turn out badly.
4.08. Accept no outside work detrimental to the work they perform for their primary employer.
4.09. Represent no interest adverse to their employer's without the employer's consent.

Rule 5: PROFESSION. Software engineers shall, in all professional matters, advance both the integrity and reputation of their profession. In particular, software engineers shall, insofar as possible:

5.01. Associate only with reputable businesses.
5.02. Assure that clients, employers, and supervisors know of this code of ethics.
5.03. Support software engineers who do as this code requires.
5.04. Help develop an organizational environment favorable to acting ethically.
5.05. Report violations of this code to appropriate authorities.
5.06. Take responsibility for detecting, correcting, and reporting errors in software and associated documents on which they work.
5.07. Only accept a salary appropriate to professional qualifications.
5.08. Be accurate in stating the characteristics of software on which they work, avoiding not only false claims but claims that might reasonably be supposed to be deceptive, misleading, or doubtful.
5.09. Not promote their own interest at the expense of the profession.
5.10. Obey all laws governing their work, insofar as such obedience is consistent with the public health, safety, and welfare.
5.11. Serve in civic affairs constructively.
5.12. Improve public knowledge of software engineering.
5.13. Share useful software?related knowledge, inventions, or discoveries with the profession by reading papers at professional meetings, by publishing articles in the technical press, and by serving on the profession's standard?setting bodies.
5.14. Make no political contribution, gift, or commission for award of a contract.

Rule 6: COLLEAGUES. Software engineers shall treat all those with whom they work fairly. In particular, software engineers shall, as appropriate:

6.01. Assist co?workers in professional development.
6.02. Review the work of other professionals only with their knowledge.
6.03. Credit fully the work of others.
6.04. Criticize the work of others in an objective, candid, and properly?documented way.
6.05. Give a fair hearing to the opinion, concern, or complaint of a colleague.
6.06. Assure that employees are informed of standards before being held to them.
6.07. Assure co?workers know the employer's policies and procedures for protecting passwords, files, and other confidential information.
6.08. Assign work only upon considerations of professional qualifications.
6.09. Provide for due process in hearing charges of violation of an employer's policy or of this code.
6.10. Develop a fair agreement concerning ownership of any invention an employee makes.
6.11. Not supplant another software engineer after steps have been taken for employment.
6.12. Attract employees only by full and accurate description of the conditions of employment.
6.13. Offer only fair and just compensation.
6.14. Not prevent a subordinate from taking a better job for which the subordinate is qualified.

Rule 7: SELF. Software engineers shall, throughout their career, try to enhance their own ability to practice their profession as it should be practiced. In particular, software engineers shall
continually endeavor to:

7.01. Improve their knowledge of recent developments in the design, development, and testing of software and related documents.
7.02. Improve their ability to create safe, reliable, and useful software at reasonable cost and within a reasonable time.
7.03. Improve their ability to write accurate, informative, and literate documents in support of software on which they work.
7.04. Improve their understanding of the software and related documents on which they work and of the environment in which they will be used.
7.05. Improve their knowledge of the law governing the software and related documents on which they work.
7.06. Improve their knowledge of this code, its interpretation, and its application to their work.

return to top