Page 33 -
P. 33

16   Chapter 1   Introduction


                                       systems. Because of their roles in developing software systems, software engi-
                                       neers have significant opportunities to do good or cause harm, to enable others to
                                       do good or cause harm, or to influence others to do good or cause harm. To
                                       ensure, as much as possible, that their efforts will be used for good, software engi-
                                       neers must commit themselves to making software engineering a beneficial and
                                       respected profession. In accordance with that commitment, software engineers
                                       shall adhere to the following Code of Ethics and Professional Practice.

                                       The Code contains eight Principles related to the behaviour of and decisions
                                       made by professional software engineers, including practitioners, educators,
                                       managers, supervisors and policy makers, as well as trainees and students of
                                       the profession. The Principles identify the ethically responsible relationships
                                       in which individuals, groups, and organizations participate and the primary
                                       obligations within these relationships. The Clauses of each Principle are illus-
                                       trations of some of the obligations included in these relationships. These obli-
                                       gations are founded in the software engineer’s humanity, in special care owed
                                       to people affected by the work of software engineers, and the unique elements
                                       of the practice of software engineering. The Code prescribes these as obliga-
                                       tions of anyone claiming to be or aspiring to be a software engineer.

                                       In any situation where different people have different views and objectives you
                                    are likely to be faced with ethical dilemmas. For example, if you disagree, in princi-
                                    ple, with the policies of more senior management in the company, how should you
                                    react? Clearly, this depends on the particular individuals and the nature of the dis-
                                    agreement. Is it best to argue a case for your position from within the organization or
                                    to resign in principle? If you feel that there are problems with a software project,
                                    when do you reveal these to management? If you discuss these while they are just a
                                    suspicion, you may be overreacting to a situation; if you leave it too late, it may be
                                    impossible to resolve the difficulties.
                                       Such ethical dilemmas face all of us in our professional lives and, fortunately, in
                                    most cases they are either relatively minor or can be resolved without too much dif-
                                    ficulty. Where they cannot be resolved, the engineer is faced with, perhaps, another
                                    problem. The principled action may be to resign from their job but this may well
                                    affect others such as their partner or their children.
                                       A particularly difficult situation for professional engineers arises when their
                                    employer acts in an unethical way. Say a company is responsible for developing a
                                    safety-critical system and, because of time pressure, falsifies the safety validation
                                    records. Is the engineer’s responsibility to maintain confidentiality or to alert the
                                    customer or publicize, in some way, that the delivered system may be unsafe?
                                       The problem here is that there are no absolutes when it comes to safety. Although
                                    the system may not have been validated according to predefined criteria, these crite-
                                    ria may be too strict. The system may actually operate safely throughout its lifetime.
                                    It is also the case that, even when properly validated, the system may fail and cause
                                    an accident. Early disclosure of problems may result in damage to the employer and
                                    other employees; failure to disclose problems may result in damage to others.
   28   29   30   31   32   33   34   35   36   37   38