IEEE/ACM Software Engineering Code of Ethics – Guiding Principles

Introduction

Introduction

The ACM Software Engineering Code of Ethics consists of 8 Guiding Principles:

  1. Public
  2. Client & Employer
  3. Product
  4. Judgement
  5. Management
  6. Profession
  7. Colleagues
  8. Self

 

Public

PRINCIPLE 1 – PUBLIC

Software engineers shall act consistently with the public interest

This principle includes:

  • Taking responsibility for your work
  • Ensuring software is safe and words
  • Disclosing potential dangers in software to the public or the environment
  • Being honest when addressing the public
  • Considering physical disabilities & economic disadvantages
  • Volunteering professional skills

Examples

https://en.wikipedia.org/wiki/Boeing_737_MAX_groundings

Prince Phillip Death rail websites issue

Client

PRINCIPLE 2 – CLIENT AND EMPLOYER

Software engineers shall act in a manner that is in the best interests of their client and employer (consistent with the public interest.)

This principle includes:

  • Being honest about the nature and limitations of our skills.
  • Not knowingly using pirated / illegal software.
  • Only using equipment in the manner intended
  • Keeping information confidential, where such confidentiality is consistent with public interest / the law
  • Keeping the client up to date with potential issues
  • Manage conflicts of interests when considering outside work

Examples

Bill Gates Software Piracy BASIC

 

Product

PRINCIPLE 3 – PRODUCT

Software engineers shall ensure that their products and related modifications meet the highest professional standards possible.

This principle includes:

  • Producing the best possible product within the constraints given
  • Ensuring that goals set are achievable and realistic.
  • Ensuring any legal, ethical or cultural issues related to the product are identified
  • Ensuring that you are qualified, experienced and following professional standards of software development
  • Ensuring products are fully tested and debugged
  • Ensuring products are fully documented
  • Ensuring the security and privacy of data used in the software development.

Examples

Star Citizen Development

Facebook Data Leak

Judgement

PRINCIPLE 4 – JUDGEMENT

Software engineers shall maintain integrity and independence in their professional judgment.

This principle includes:

  • Maintaining objectivity and avoid conflicts of interest, especially when being asked to advise on public or professional issues.
  • Only endorsing work that you have personal oversight of.
  • Avoiding bribery or other improper financial activities

Examples

https://www.reuters.com/article/us-ptc-settlement-corruption-idUSKCN0VP23P

 

 

Management

PRINCIPLE 5 – MANAGEMENT

Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance.

This principle includes:

  • Ensuring good management of a project.
  • Ensuring engineers know standards, policies and procedures that apply.
  • Ensuring realistic estimation of costs and timescales for work.
  • Only assigning work to engineers that they are capable of doing.
  • Offering fair conditions and enumeration
  • Ensuring that their is fair agreement of ownership of software or other intellectual property.
  • Not punishing people for expressing ethical concerns about a project.
  • Not punish anyone for expressing ethical concerns about a project.

Examples

https://www.reuters.com/article/us-alphabet-google-research-idUSKBN2AJ2JA

Profession

PRINCIPLE 6 – PROFESSION

Software engineers shall advance the integrity and reputation of the profession (consistent with the public interest).

This principle includes:

  • Promoting ethical development
  • Promoting public knowledge of software engineering
  • Supporting other engineers
  • Obeying all laws except where incompatible with the public interest.
  • Taking responsibility for detecting and dealing with errors in software.
  • Being honest when stating claims in regards to software
  • Reporting violations of the code to the necessary bodies where appropriate

 

Colleagues

PRINCIPLE 7 – COLLEAGUES

Software engineers shall be fair to and supportive of their colleagues.

This principle includes:

  • Ensuring colleagues adhere to the code
  • Assisting colleagues in their professional development
  • Crediting others for their work
  • Reviewing the work of others in an objective and hones manner.
  • Listening to complaints and concerns of others
  • Asking for assistance where necessary

 

 

Self

PRINCIPLE 8 – SELF

Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession.

This principle includes:

  • Continuing your own professional development
  • Continually improve your ability in all aspects of software development.
  • Avoiding unfair treatment of anyone due to your own prejudices.

Resources