Skip to content

Latest commit

 

History

History

lecture21

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

Lecture 21: Ethics and Professionalism

Behavioural Objects

At the end of this lecture you will be able to:

  • Define ethics in the context of IT professionals.
  • Describe the core principles of engineering ethics.
  • Review the ACM Code of Ethics.
  • Give examples of a Code of Conduct.
  • Review the BCS Code of Conduct.

Ethics

What does the term ethics mean? From Wikipedia (emphasis mine):

Ethics or moral philosophy is a branch of philosophy that involves systematizing, defending, and recommending concepts of right and wrong conduct.

We will not look at the moral philosophy aspect - this is not a philosophy module. A more in-depth introduction is available from the BBC. Here you will find ethics broken down into three types:

  • Meta-ethics deals with the nature of moral judgement. It looks at the origins and meaning of ethical principles.
  • Normative ethics is concerned with the content of moral judgements and the criteria for what is right or wrong.
  • Applied ethics looks at controversial topics like war, animal rights and capital punishment.

As software engineers, we are concerned with applied ethics. That is, we are concerned with how our creative work is used in the real world. There are three types of ethics to consider in this frame.

Engineering Ethics

Engineering Ethics have risen from first from the growth of the profession and second from the various disasters that have occurred due to the output of engineering works. A well known example in Scotland is the Tay Bridge Disaster which was deemed the result, amongst other things, of poor design.

Engineering ethic definitions depend on the body that the engineer is associated with. For computing and IT this is typically the British Computer Society (BCS), Association of Computer Machinery (ACM), Institute of Electrical and Electronic Engineers (IEEE), and the Institute of Engineering and Technology. Of these, only the BCS is UK body with a Royal Charter to assess the quality of IT professionals (Chartered IT Professional or CITP). The BCS and IET can also confer Chartered Engineer (CEng) status.

Although different criteria exist depending on domain, there are some core engineering ethical principles:

  • Obligation to Society.
  • Reporting Misconduct.
  • General Conduct.

An engineer's obligation to society is to ensure the safety of their efforts and to report honestly and quickly any discovered issues. This is similar to a medic's Hippocratic Oath - first, do no harm. A key idea in engineering ethics is that an engineer works for the betterment of the majority, not the minority.

An engineer should also report any misconduct by other engineers or employers immediately. This follows from the obligation to society. If an employer, client, other engineer, or another person is known to be causing harm, it is the engineer's moral and ethical duty to report it. Otherwise, harm will come to others.

Finally, an engineer must act professionally when conducting their work. They have an obligation to their employer and their clients to perform their duties with professionalism and respect. Doing otherwise goes against the general conduct of an engineer.

Ethics of Technology

Broadly speaking, the Ethics of Technology can be summarised as two areas:

  1. The creation of new technology and what that technology may be used for.
  2. The use of technology to exploit others.

Point one is concerned with questions such as was it right for scientists to create nuclear weapons? The question is not easy to answer as there are different views on what would have happened is nuclear weapons were not developed in the way they were.

Point 2 concerns ideas such as digital surveillance and the right to privacy. A government may argue that it must collect data to protect its citizens. Privacy advocates would argue that a government should not have data to ensure it does not exploit its citizens.

Both of these areas can cause debate, and as a software engineer you are at the heart of them:

  1. Would you create the software that controlled a nuclear weapon?
  2. Would you use existing software and data to monitor people?

These questions are hard, and have to be individually judged. Engineering ethics provides a framework to evaluate such questions. Business ethics is another such framework.

Business Ethics

Business Ethics are harder to explicitly define than engineering ethics. The reason being, the ethics of a business are defined by its purpose. Consider a non-profit organisation with the purpose of saving the whale. In this case, all judgements in the business will be taken against this purpose. Most companies, however, fall into a particular area: the maximising of profits to increase the value of the company and the return to shareholders.

For engineers, the challenge when working for an organisation is recognising the different ethical framework you are working within. Remember - an engineer does not make choices based on company profits but on what is best for society.

ACM Code of Ethics

As an example, let us consider the ACM Code of Ethics and Professional Conduct.

First, the General Ethical Principles state that a Computing Professional should:

  1. Contribute to society and to human well-being, acknowledging that all people are stakeholders in computing.
  2. Avoid harm.
  3. Be honest and trustworthy.
  4. Be fair and take action not to discriminate.
  5. Respect the work required to produce new ideas, inventions, creative works, and computing artifacts.
  6. Respect privacy.
  7. Honor confidentiality.

These principles are within the sphere of engineering ethics. A particular aspect is respect privacy and honor confidentiality which the ACM consider especially important to computing professionals.

  • Reflect on and grade yourself against these general ethical principles. Use the following grading mechanism: 2) I uphold this principle in all cases; 1) I do not uphold this principle in all cases; 0) I do not agree with this principle. Compare your scores with your team.

The Professional Responsibilities are that a Computing Professional should:

  1. Strive to achieve high quality in both the processes and products of professional work.
  2. Maintain high standards of professional competence, conduct, and ethical practice.
  3. Know and respect existing rules pertaining to professional work.
  4. Accept and provide appropriate professional review.
  5. Give comprehensive and thorough evaluations of computer systems and their impacts, including analysis of possible risks.
  6. Perform work only in areas of competence.
  7. Foster public awareness and understanding of computing, related technologies, and their consequences.
  8. Access computing and communication resources only when authorized or when compelled by the public good.
  9. Design and implement systems that are robustly and usably secure.

Points 1-5 are very familiar from engineering ethics. Point 6 is an important one - perform work only in areas of competence. It can be easy to think you know everything and can solve all problems. You need to control that urge. Remember one of the mantras of the module - ego is the enemy.

Point 7 implies that it is the responsibility of a computing professional to educate the public in computing. An example scheme you can sign-up to for this is STEM Ambassadors.

Point 8 basically states not to access systems you are not meant to (e.g., no hacking). Finally, point 9 states you should design your systems to be secure, not vulnerable. In modern IT this is a particular point of concern.

  • Reflect on and grade yourself against these professional responsibilities. Use the following grading mechanism: 2) I act in this manner in all cases; 1) I do not act in this manner in all cases; 0) I do not agree with this responsibility. Compare your scores with your team.

The Professional Leadership Principles state a Computing Professional should:

  1. Ensure that the public good is the central concern during all professional computing work.
  2. Articulate, encourage acceptance of, and evaluate fulfillment of social responsibilities by members of the organization or group.
  3. Manage personnel and resources to enhance the quality of working life.
  4. Articulate, apply, and support policies and processes that reflect the principles of the Code.
  5. Create opportunities for members of the organization or group to grow as professionals.
  6. Use care when modifying or retiring systems.
  7. Recognize and take special care of systems that become integrated into the infrastructure of society.

Many of these points are about good team working. Point 1 again emphasises public good from engineering ethics. Points 2-5 are about supporting the people you work with. Good work-life balance, supporting education of the team, etc.

Point 6 refers to turning off systems. Have all impacts been considered? All stakeholders informed? Normal procedures followed? etc.

Point 7 is a consideration when a system becomes part of societal infrastructure. This is an interesting one to consider. Obvious cases are train control systems, air traffic control systems, etc. But what about Facebook? Or Google? Are they part of the infrastructure of society, or simply tools that society currently favours? You're own judgement as an engineer is required here.

  • Reflect on and grade yourself against these professional leadership principles. Some of these may not be relevant to you at present. If so, leave the grade blank. Use the following grading mechanism: 2) I uphold this principle in all cases; 1) I do not uphold this principle in all cases; 0) I do not agree with this principle. Compare your scores with your team.

Finally, the ACM require that a Computing Professional is in Compliance with the Code as they should:

  1. Uphold, promote, and respect the principles of the Code.
  2. Treat violations of the Code as inconsistent with membership in the ACM.

In other words, it is your responsibility to ensure the Code is adhered to by you and other members of the ACM.

Code of Conduct

A Code of Conduct is defined in Wikipedia as:

... a set of rules outlining the social norms, religious rules and responsibilities of, and or proper practices for, an individual.

Emphasis is mine.

Many organisations have a Code of Conduct, and the ACM Code of Ethics contains points which fall into a Code of Conduct criteria. Essentially, a Code of Conduct is a set of rules that define how an individual must act when associated with an organisation. You should have defined one for your team already. As a student with the University you have agreed to a Code of Conduct and in particular a Classroom and Campus Code of Conduct. Examples of unacceptable behaviour include:

  • Talking in a way that disrupts others’ learning and engagement, for example:
    • talking at inappropriate times in classrooms, study spaces and libraries;
    • talking over others who are already speaking in class;
    • excessively loud talking or shouting at inappropriate times and/or places.
  • Using language, orally or in writing (including emails, texts and postings on social media websites), which is generally considered as having the potential to be offensive to others. This includes swearing and any offensive language/comments/conversation of a racist, sexist or sexual nature as well any offensive language/comments/conversation regarding any individual(s)’ religion, beliefs and/or right of freedom of speech.
  • Using mobile devices in class for purposes unrelated to material you are currently being taught.
  • Disturbing other students during exams/class based assessments or affecting their performance;
  • Refusing to work in peer groups without good cause;
  • Bullying and harassment of any form including via social media, text messages, email etc.
  • Being present on campus whilst under the influence of alcohol or drugs.
  • Violent, aggressive and/or indecent behaviour which has the potential to cause mental or physical harm to any individual(s) or damage to premises and/or property.
  • Any behaviour likely to cause injury or impair the health and safety of yourself and/or others.
  • Misuse or unauthorised use of University premises and/or misuse, unauthorised use and/or theft of items of University property or property of any member of the wider University Community including:-
    • Misuse or alteration of fire-fighting or security equipment/appliances
    • Misuse, alteration or unauthorised use of any electrical equipment, fittings and/or appliances including computer equipment.
  • Reflect on and grade yourself against the Student Code of Conduct. Use the following grading mechanism: 2) I uphold this principle in all cases; 1) I do not uphold this principle in all cases; 0) I do not agree with this principle. Ask your team for feedback to see if they agree with your scoring.

University staff also have Values and Conduct defined, and the Student Charter defines how academics and students interact.

Linux Code of Conduct

Codes of Conduct are also prominent in IT. In 2018, there was some controversy around the new Linux Kernel Developer Code of Conduct. The code as of writing these notes (in late 2018) is:

Contributor Covenant Code of Conduct

Our Pledge

In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.

Our Standards

Examples of behavior that contributes to creating a positive environment include:

  • Using welcoming and inclusive language
  • Being respectful of differing viewpoints and experiences
  • Gracefully accepting constructive criticism
  • Focusing on what is best for the community
  • Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

  • The use of sexualized language or imagery and unwelcome sexual attention or advances
  • Trolling, insulting/derogatory comments, and personal or political attacks
  • Public or private harassment
  • Publishing others’ private information, such as a physical or electronic address, without explicit permission
  • Other conduct which could reasonably be considered inappropriate in a professional setting

Our Responsibilities

Maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.

Maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.

Scope

This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.

Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the Technical Advisory Board (TAB) at tab@lists.linux-foundation.org. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The TAB is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.

Maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project’s leadership.

Attribution

This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html

The Linux Code of Conduct is concerned mainly with stopping harassment and promoting equality - which is fundamental to the ideals of the Linux community. The Linux Foundation Code of Conduct has similar themes.

BCS Code of Conduct

The British Computer Society (BCS) is the recognised professional body for IT in the UK. It defines a Code of Conduct that its members must adhere to. Under Public Interest, a member shall:

  1. have due regard for public health, privacy, security and wellbeing of others and the environment.
  2. have due regard for the legitimate rights of Third Parties.
  3. conduct your professional activities without discrimination on the grounds of sex, sexual orientation, marital status, nationality, colour, race, ethnic origin, religion, age or disability, or of any other condition or requirement
  4. promote equal access to the benefits of IT and seek to promote the inclusion of all sectors in society wherever opportunities arise.

As you can see, these are similar to many ideas from engineering ethics, the ACM Code of Ethics, and the Linux Code of Conduct.

  • Reflect on and grade yourself against the BCS codes for Public Interest. Use the following grading mechanism: 2) I uphold this principle in all cases; 1) I do not uphold this principle in all cases; 0) I do not agree with this principle. Compare your grade with your team.

Under Professional Competence and Integrity a BCS member shall:

  1. only undertake to do work or provide a service that is within your professional competence.
  2. claim any level of competence that you do not possess.
  3. develop your professional knowledge, skills and competence on a continuing basis, maintaining awareness of technological developments, procedures, and standards that are relevant to your field.
  4. ensure that you have the knowledge and understanding of Legislation and that you comply with such Legislation, in carrying out your professional responsibilities.
  5. respect and value alternative viewpoints and, seek, accept and offer honest criticisms of work.
  6. avoid injuring others, their property, reputation, or employment by false or malicious or negligent action or inaction.
  7. reject and will not make any offer of bribery or unethical inducement.

These codes contain similar ideas to the ACM about working only in competent areas. Point 3 requires a BCS member to be continuously updating their skills (continuous improvement). There are also points of legality and wellbeing of others.

  • Reflect on and grade yourself against the BCS codes for Professional Competence and Integrity. Use the following grading mechanism: 2) I uphold this principle in all cases; 1) I do not uphold this principle in all cases; 0) I do not agree with this principle. Compare your grade with your team.

For Duty to Relevant Authority a BCS member shall:

  1. carry out your professional responsibilities with due care and diligence in accordance with the Relevant Authority’s requirements whilst exercising your professional judgement at all times.
  2. seek to avoid any situation that may give rise to a conflict of interest between you and your Relevant Authority.
  3. accept professional responsibility for your work and for the work of colleagues who are defined in a given context as working under your supervision.
  4. NOT disclose or authorise to be disclosed, or use for personal gain or to benefit a third party, confidential information except with the permission of your Relevant Authority, or as required by Legislation
  5. NOT misrepresent or withhold information on the performance of products, systems or services (unless lawfully bound by a duty of confidentiality not to disclose such information), or take advantage of the lack of relevant knowledge or inexperience of others.

These points have a strong influence from engineering ethics, but also contain ideas of privacy which are a fundamental concept in IT.

  • Reflect on and grade yourself against the BCS codes for Duty to Relevant Authority. Use the following grading mechanism: 2) I uphold this principle in all cases; 1) I do not uphold this principle in all cases; 0) I do not agree with this principle. Compare your grade with your team.

For Duty to the Profession a BCS member shall:

  1. accept your personal duty to uphold the reputation of the profession and not take any action which could bring the profession into disrepute.
  2. seek to improve professional standards through participation in their development, use and enforcement.
  3. uphold the reputation and good standing of BCS, the Chartered Institute for IT.
  4. act with integrity and respect in your professional relationships with all members of BCS and with members of other professions with whom you work in a professional capacity.
  5. notify BCS if convicted of a criminal offence or upon becoming bankrupt or disqualified as a Company Director and in each case give details of the relevant jurisdiction.
  6. encourage and support fellow members in their professional development

These points are similar to those of the ACM Compliance with the Code, although Point 5 states a particular instance which may be considered a problem for a BCS member.

  • Reflect on and grade yourself against the BCS codes for Duty to the Profession. Use the following grading mechanism: 2) I uphold this principle in all cases; 1) I do not uphold this principle in all cases; 0) I do not agree with this principle. Compare your grade with your team.

Modern Developer Culture

All of these ideas can be seen in modern developer culture. The ideas of having integrity, being fair in your conduct, being supportive, etc. are important to agile and lean software development ideals. In other words, to be a modern software developer is not just in the tools and techniques you use, it is in the fundamental philosophy of the individuals and teams involved.

Summary

Although you might have found this lecture dry since we did not discuss new technology, it is probably one of the most important concepts covered when it comes to being a professional in the IT industry.

In this lecture we have:

  • Defined ethics in the context of IT professionals - looking at applied ethics as they relate to engineering, technology, and business.
  • Described the core principles of engineering ethics - focusing on the three key principles: Obligation to Society; Reporting Misconduct; and General Conduct.
  • Reviewed the ACM Code of Ethics - comparing it to engineering ethics and scoring ourselves against the criteria.
  • Given examples of Code of Conducts - the Student Code of Conduct and the Linux Code of Conduct in particular.
  • Reviewed the BCS Code of Conduct - illustrating the similarity to the ACM Code of Ethics, other Codes of Conduct, and more generally engineering ethics.

Appendix - BCS Membership and Grades

Joining the BCS is agreeing to the Code of Conduct and provides an avenue to becoming a Chartered IT Professional (CITP) and/or Chartered Engineer (CEng) as recognised by the Engineering Council. The School of Computing courses are accredited to meet criteria for chartered status.

The BCS has several membership grades and recognitions: