Creating Understanding and Educating Programmers, Developers and Technical Communities, one post at a time.

Wednesday, April 22, 2009

Software Engineering and Ethics

Software is the core for any computer–based system, which affect all aspects of our life. Software development is a complex, expensive, and ethical engineering task which requires qualified SWE professionals. Ethical and professional principles for software engineering professionals were adopted by professional committees such as IEEE and ACM.

In software engineering; there are several problems related to ethical issues. These issues include: professional responsibilities, social responsibility, quality as moral issue, software ownership and intellectual property rights, privacy, computer crimes, confidentiality, responsibility and liability, professional competence, impact on society and work place, security and reliability, and safety.

You should not use your skills and abilities to behave in a dishonest way or in a way that will bring disrepute to the software engineering profession. However, there are areas where standards of acceptable behavior are not bounded by laws but by the more tenuous notion of professional responsibility. Some of these are:

  • Confidentiality: You should normally respect the confidence of your employers or clients irrespective of whether a formal confidentiality agreement.
  • Competence: You should not misrepresent your level of competence. You should not knowingly accept work that is outside your competence.
  • Intellectual property rights: You should be aware of local laws governing the use of intellectual property such as patents and copyright. You should be careful to ensure that the intellectual property of employers and clients is protected.
  • Computer misuse: You should not use any technical skills to misuse other people’s computers.Computer misuse ranges from relatively trivial (game playing on an employer’s machine, say) to extremely serious (dissemination of viruses).
Software engineering is still a young field. In this regard software engineers should supportive of their colleague and provide good environment where they can grow and learn. Lead software engineer should also know about their competence areas. They also have to follow policies and procedure which established by technical communities.

References:
  • Software Engineering Code of Ethics and Professional Practice (ACM/IEEE-CS)
    http://www.acm.org/about/se-code
  • Software Engineering by Ian Sommerville, 8th Ed.

No comments:

Post a Comment