Engineers have an obligation to society to protect the public welfare. The public has endowed engineers, through indirect tax base, with the means for obtaining an education and, through legislation, the means to license and regulate themselves. Engineers have a responsibility to protect the safety and well being of the public in all of their professional efforts. As engineers test designs for ever-increasing speeds, loads, capacities and the like, they must be made aware of the effect they have and take responsibilities in their system. In every profession, there are rules of conduct to follow. Software engineers should adhere to the ACM/IEEE Software Engineering Code of Ethics. Violating the code of ethics can endanger the public, create havocs, cause loss of valuable resources and time, and create long-term unpredictable problems. Software engineers have great responsibilities, as the systems they built are use by many people. These systems must be built with maximum reliability and have fail-safe backup in case of failures.
If a problem or a bug in a system is known, it is the responsibility of a software engineer to ensure that the problem is identified and solution must be found. The safety and well being of the public must be kept at the top of their list of priorities. Although company loyalty is important, it must not be allowed to override the engineer's obligation to the public.
A serious disaster on January 28, 1986 the space shuttle Challenger (during mission 51-L) exploded 73 seconds into its flight due to a design flaw. There were a few engineers who blew the whistle on the project but their cry was ignored.The Challenger explosion is more the result of management failure in NASA and Morton Thiokol than the result of technical failures. In this case, a few engineers within Morton...