Discuss the ethical and moral obligations of programmers.


Teaching Note:

For example, adequate testing of products to prevent the possibilities of commercial or other damage. Acknowledging the work of other programmers. The main aims of the Open Source movement should be known.

S/E, AIM 8 An awareness of the ethical considerations when developing new code.


Sample Question:


JSR Notes:


Explain two ethical issues which should be taken into account when working on the project.


In relation to the Treatment object, discuss one ethical consideration when designing software that stores patients and their illnesses.


Outline the responsibilities that the programmer has when updating the program.



Moral Obligations (to The Public)

Adequate Testing

It could be all too easy to simply release your product and "walk away". But that is definitely not ethical. Certainly for life and death kinds of applications this is obvious. There are myriad programs on which all of our lives depend, whether they be obvious, like the control of our water systems and air-traffic control applications, or others not so obvious like those that control quality of food, or help manage traffic systems, and more.

But even non-life-threatening programs should be coded to properly handle a wide variety of possible exceptions. Not having a program robust like this is no different than a company selling shoes that fall apart in a matter of days, or a clock which loses a minute a day within a few months of use.

Testing is therefore a huge part of any respectable IT company or individual programmer. One bad product, or even a bad version, like Windows 7, can cause customers to "head for the exit" and switch company. (See the obligations to employer section below.)

But, ultimately, it is unethical to produce, and either sell, or even distribute, shoddy work of any form.

Public Welfare Considerations

Programmers have a moral obligation to keep public welfare foremost in their considerations, and not to pursue development of any software which could potentially do harm to people. Software developed solely for malicious purposes should be shunned. And adequate care and consideration needs to be taken with controversial and potentially harmful unknown areas such as artificial intelligence.

Privacy Considerations

Every effort should be taken to assure private information of individuals is kept private, and that only necessary information stored, and stored in a secure way. Programmers need do also do their best to assure the private nature of personal information is never used as a means for profit.



Ethical Obligations (to Other Programmers)

Acknowledging the Work of Other Programmers

Another thing that is all too easy with software is to use others' work via simple copy and paste. Certainly a lot out there on the Internet is fair game to be used, but even in that case, it should be acknowledged. And certainly the act of taking other code not freely offered is stealing, it's as simple as that. Though copyright laws took a while to catch up to new IT situations, there are now many laws around the world which protect the intellectual property rights of coders of original material.

Obligations to Client & Employer

As an employee of a company a programmer has an obligation to abide by the code of conduct for that company, and to work towards its benefit, as long as this does not contravene other moral and ethical statutes. And the programmer has an obligation not just to the user of his/her software, but to the client who requisitions its development. The reputation of both the client and the employer stands to be judged on the quality of the software, not just the reputation of the programmer.



The Open Source Movement

TheĀ open source movementĀ is a movement of individual programmers who support the use of open source licenses for software. Open source software is software made available for anybody to use or modify; its source code is made public ally available.

Finnish software engineer Linus Torvalds was among the first to get the open source movement going, with the development of his Linux free operating system. Since then, many groups have come together to produce quality software for free. Indeed, this website, as its backbone, uses a MySQL database system and PHP scripting, which are both open source. And you very well may be reading this through Firefox, from Mozilla, another key open source group.

The main difference between open source and traditional "proprietary" software is in the conditions of use imposed on the user by the owner of the software license. With open source software users are granted the right to use both the application itself, and also the code it is programmed in. With proprietary software programs, such as Microsoft Office, users only have the rights to its functionality, i.e .to use MS Word, not see how it was programmed.

Aims and Rationale

Often enough, the rationale for a programmer to take part in the open source movement is to "make a name for themselves" by contributing to open source projects, and so career advancement can be a prime motivator of this. Ego also likely enters into the reasons people contribute to the open source movement.

But there are also many admirable reasons people contribute to the open source movement. For many it is the simple human desire to create, and share that process. And at the heart of most contribution is also a desire to help others and society in general.

Furthermore, most open source contributors see the value of letting anyone and everyone contribute to solving a big problem, and feel that this approach of "uber" sharing and collaboration can lead to both better and more novel solutions, compared to the closed, sterile corporate environment of a Big IT.



In Summary, Back to the Assessment Statement:

"Discuss the ethical and moral obligations of programmers."

Ethical and moral obligations of programmers relate to both the public, and to those with whom the programmer works with and for.

He/she has an obligation to proved bug-free programs that adhere to high standards of quality so that the user experience is a good one. And these public obligations extend to issues of general public welfare and individual privacy.

The programmers should adhere to these high standards, not just for their own reputation but for that of their client and employer. And to other programmers, the need to respect copyright, acknowledging work which is not their own.