                                                               
                           THE PROFESSIONAL CODE OF ETHICS     
                                                               
                                         OF                    
                                                               
                         THE INTERNATIONAL PROGRAMMERS GUILD   
                                                               


GENERAL

In this document "Guild" represents "International Programmers Guild".

1. A professional programmer owes certain duties to the Guild, to the public,
to an employer, to other members of the profession, and to themselves and
shall act at all times with:

(a)       fairness and loyalty towards the Guild, associates, employers,
          employees, and clients.

(b)       fidelity to public needs.

(c)       devotion to high ideals of personal honour and professional
          integrity.



DUTIES OF A PROFESSIONAL PROGRAMMER TO THE GUILD

2. A Professional programmer shall:

(a)       acknowledge the Guild as the self governing body that represents
          the profession of programming world-wide.

(b)       adhere to the constitution, bylaws and regulations of the Guild
          unless they conflict with the legal statutes of the nation in which
          the programmer applies his/her profession.

(c)       accept programming as a true profession and accept the Guild's
          mandate to inform and promote programming as a profession to all
          directly or indirectly involved.

(d)       adhere to the Code of Ethics of the Guild as declared herein.

(e)       accept the Guild as an authority empowered to provide evaluation and
          certification of programmers.

(f)       adhere to the methods and procedures of professional evaluation of
          the Guild.

(g)       recognize the Guild, it's meetings and electronic communications as
          a source:
          -  of fellowship with other programmers
          -  of sharing professional data and techniques
          -  both to seek gainful employment of his/her services and to
             obtain the services of other programmers.

(h)       inform other programmers of the existence, nature, and mandates of
          the Guild and of the need and benefits of being a Fellow of the
          Guild, and present for membership any programmers expressing
2
          interest.

(i)       assist and encourage others training to become professional
          programmers.

(j)       assist and encourage other programmers who are relatively new to the
          profession and who are working toward becoming established.

(k)       inform the Guild Master or governing body of any actions within the
          body of the Guild that have created or could create a serious
          contravention of professional integrity or cause harm to the Guild
          or its members.



DUTIES CONCERNING THE INTEGRITY OF PROGRAMS AND CODE OF A PROGRAMMER

3. With regards to all programs and programming code a programmer creates,
   markets, installs, maintains or is otherwise involved with, he/she shall:

(a)       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.

(b)       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.

(c)       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.

(d)       with regards to Guildware, code and libraries shared within the
          Guild:
          -  ensure that all code in the Guildware libraries and source code
             are not divulged outside of the Guild membership except with the
             explicit written permission of the author.
          -  acknowledge code derived from the ranks of the Guild in all work
             done by the programmer.

(e)       avoid and refuse to use code that was:
          -  created 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.

(f)       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.

(g)       not knowingly alter or corrupt data with malicious intent.



3
DUTIES OF A PROFESSIONAL PROGRAMMER TO THE PUBLIC

4. A Professional programmer shall:

(a)       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.

(b)       have high regard for his/her duty to public welfare.

(c)       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.

(d)       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.

(e)       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.

(f)       make effective provisions in creating or maintaining programs to
          ensure health and safety of life and avoid financial loss.

(g)       act to correct or report any situation which could cause losses,
          whether humanly injurious or financially damaging.

(h)       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.

(i)       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

5. A professional programmer shall:

(a)       act in professional programming matters for each employer as a
          faithful agent or trustee.

(b)       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 in writing or with explicit verbal
          consent.

(c)       avoid or disclose any conflict of interest which might influence
          his/her actions or judgement.

(d)       present clearly to his/her employers the consequences to be expected
          from any deviations proposed in the work if his/her professional
4
          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.

(e)       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.

(f)       not tender on competitive work upon which he/she may be acting as a
          professional programmer unless he/she first advises his/her
          employer.

(g)       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

6. A professional programmer in private practice, in addition to all other
   sections, shall:

(a)       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.

(b)       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.

(c)       carry out work in accordance with applicable statutes, regulations,
          standards, codes, and by-laws.

(d)       co-operate as necessary in working with such other professionals as
          may be engaged in the project.



DUTIES OF A PROFESSIONAL PROGRAMMER TO OTHER PROFESSIONAL PROGRAMMERS

7. A professional programmer shall:

(a)       conduct himself towards other professional programmers with courtesy
          and good faith and without malicious intent.
(b)
          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
5
             of a programmer.

(c)       not maliciously injure the reputation or business of another
          professional programmer.

(d)       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.

(e)       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.

(f)       give proper credit for programming work done by another person.

(g)       uphold the principle of adequate compensation for programming work.

(h)       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.

(i)       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.

(j)       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.

(k)       abide by all licensing requirements accompanying the software that
          he/she shall use.



DUTIES OF A PROFESSIONAL PROGRAMMER TO HIMSELF/HERSELF

8. A professional programmer shall:

(a)       maintain the honour 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 Guild and other proper tribunals.

(b)       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.

(c)       where advisable, retain and co-operate with other professional
          programmers or specialists.

(d)       endeavour to constantly keep updated on the most recent technology
          and methods in programming and the hardware on which it must run.


6
                              Revised: June 19th, 1991

REVISION OF THE CODE OF ETHICS

The Code of Ethics of the International Programmers Guild may be reviewed for
revision annually.

  -  Fellows, Masters and Guild Masters of the Guild in good standing may
     suggest changes in additions to the Code of Ethics.
  -  They shall expect no obligation or duty for the acceptance of these
     suggestions into the Code of Ethics.
  -  All suggested changes shall be well documented, showing why the changes
     are considered by the member as beneficial or necessary.
  -  All suggested changes must be provided in writing to the Guild Master who
     shall review them, then forward them to the Council within one month of
     the time that the Council is to meet to deliberate changes.

All revisions, additions, or deletions must be approved by the Council at the
International Headquarters in Geneva Switzerland after careful deliberation of
these changes. Once accepted by the Council, the old Code of Ethics shall
immediately cease to be of effect and the new Code of Ethics shall be in force
and used.

In those countries where special restrictions to the Code of Ethics may be
needed due to the statutes, laws, regulations and political climate of the
country, the Guild Master or Guild Masters of that country may apply to the
Council for special revisions to the Code of Ethics to accommodate the legal
existence of the Programmers Guild in that country.

