
Duties Concerning the Integrity of Programs and Code of a Programmer
With regards to all programs and programming code a programmer creates, markets, installs, maintains or is otherwise involved with, he/she shall:
1. never create, implement or support any code that is knowingly malicious, harmful, detrimental or directly contrary to the effect and actions that the programmer's services are being called upon to effect.
2. in particular, shall never create, implement or support any programs or sections of code that are of a parasitic, self replicating nature, of which computer viruses or Trojan horses are vivid and destructive examples.
3. shall not knowingly create code in such a manner as to make it virtually impossible to understand and maintain in situations in which the client or employer is allowed to retain source code. In addition, documentation shall not knowingly be written in a deliberately confusing or erroneous manner that is contrary to the actual code for which it is written.
4. with regards to IPGware, code and libraries shared within the IPG:
* ensure that all code in the IPGware libraries and source code are not divulged outside of the IPG membership except with the explicit written permission of the author.
* acknowledge code derived from the ranks of the IPG in all work done by the programmer.
5. avoid and refuse to use code that was:
* created or edited by another programmer and not released by the original author for public use
* released with the stipulation that remuneration to the original author must be paid and such due remuneration has not been paid.
6. not use code or programming techniques that are knowingly obsolete unless the party requesting such work is first informed and still requests such work to be done. If so, no malicious intent must be implied or enacted.
7. not knowingly alter or corrupt data with malicious intent.
Duties of a Professional Programmer to the Public
A Professional programmer shall:
1. abide by the laws and statutes of the country in which the programmer's services are rendered. If there is a conflict between the statutes and Code of Ethics, the programmer shall abide by the laws of the country and report such conflicts to the Guild Master. The Guild Master shall inform the Council in Geneva of the conflict or conflicts.
2. have high regard for his/her duty to public welfare.
3. endeavour at all time to enhance the public regard for his/her profession by extending the public knowledge thereof and discouraging untrue, unfair or exaggerated statements with respect to professional programming.
4. not give opinions or make statements on professional programming projects that are inspired or paid for by private interests unless he/she clearly discloses on whose behalf he is giving the opinions or making the statements.
5. not express publicly, or while he/she is serving as a witness before a court, commission or other tribunal, opinions on professional programming matters that are not founded on adequate knowledge and honest conviction and integrity.
6. make effective provisions in creating or maintaining programs to ensure health and safety of life and avoid financial loss.
7. act to correct or report any situation which could cause losses, whether humanly injurious or financially damaging.
8. make effective provisions and strive to meet lawful standards, rules, or regulations in connection with any work being undertaken by him/her or under his/her responsibility.
9. give final approval only on code, plans, specifications and reports actually made by him/her or under his/her personal supervision and direction.
Duties of a Professional Programmer to an Employer
A professional programmer shall:
1. act in professional programming matters for each employer as a faithful agent or trustee.
2. regard as confidential any information obtained by him/her as to the business affairs, technical methods or processes of an employer unless released by the employer with explicit verbal consent and/or in writing.
3. avoid or disclose any conflict of interest which might influence his/her actions or judgement.
4. present clearly to his/her employers the consequences to be expected from any deviations proposed in the work if his/her professional planning and/or analytical judgement is overruled by non-technical authority in cases where he/she is responsible for the technical adequacy of professional programming.
5. have no financial interest, direct or indirect, in any materials, supplies, equipment, hardware or commercial software used by his/her employer or in any persons or firms receiving contracts from his/her employer unless he informs his/her employer in advance of the nature of the interest.
6. not tender on competitive work upon which he/she may be acting as a professional programmer unless he/she first advises his/her employer.
7. not accept compensation, financial or otherwise, for a particular service, from more than one person except with the full knowledge of all interested parties.
Duties of a Professional Programmer in Independent Practice to a Client
A professional programmer in private practice, in addition to all other sections, shall:
1. disclose immediately any interest, direct or indirect, which might in any way be construed as prejudicial to his/her professional judgement in rendering service to his client.
2. if said programmer is contracting in his/her own name to perform professional programming for other than his/her employer, provide the client with a written statement of the nature of his status as an employee and the attendant limitations on his services to the client. In addition, the programmer shall satisfy himself/herself that such work will not conflict with the programmer's duty to his/her employer.
3. carry out work in accordance with applicable statutes, regulations, standards, codes, and by-laws.
4. cooperate as necessary in working with such other professionals as may be engaged in the project.
Duties of a Professional Programmer to Other Professional Programmers
A professional programmer shall:
1. conduct himself towards other professional programmers with courtesy and good faith and without malicious intent.
2. not accept any engagement to review the work of another professional programmer for the same employer except:
* with the knowledge of that programmer, or
* except where the connection of that programmer with the work has been terminated or
* with special knowledge and dispensation obtained by a Guild Master in situations where serious breach of safety, health, financial loss or integrity is suspected from the prior actions of a programmer.
3. not maliciously injure the reputation or business of another professional programmer.
4. not attempt to gain an advantage over other members of his profession by paying or accepting a commission in securing work relating to professional programming.
5. not advertise or represent his/her services in a misleading manner or in a manner injurious to the dignity and integrity of the profession of programming. The professional programmer shall seek to use the media of advertising with a level of integrity that will permit establishing a well merited reputation for personal capability.
6. give proper credit for programming work done by another person.
7. uphold the principle of adequate compensation for programming work.
8. promote opportunity for professional development and advancement of his/her associates and subordinates and provide opportunities for this to happen where and when it is reasonable.
9. assist in extending the effectiveness of the profession through the interchange of programming information and experience except where sharing of information or data would contravene confidentiality.
10. not copy programs (source code, object code or documentation) unless it is clear that the author and owners to the rights of the software (including corporate owners if applicable) would not object to this copying and all licensing requirements are met.
11. abide by all licensing requirements accompanying the software that he/she shall use.
Duties of a Professional Programmer to Himself/Herself
A professional programmer shall:
1. maintain the honor and integrity of his/her profession. A professional programmer shall report without fear of reprisal, unprofessional or dishonest conduct by any other members of the profession to the IPG and other proper tribunals.
2. undertake only such work as he/she is competent to perform by virtue of his/her training and experience except where the programmer has explained his/her current knowledge with understanding that the needed knowledge to be competent for the work to be done will be acquired with on-job training and research.
3. where advisable, retain counsel and cooperate with other professional programmers or specialists.
4. endeavour to constantly keep updated on the most recent technology and methods in programming and the hardware on which it must run.
INTERNATIONAL PROGRAMMERS GUILD
PROGRAMMER'S CODE OF ETHICS