Software Design Testing -- NSPE Case No. 96-4
An engineer, hired by a software company, believes that the company's new software design is safe under existing standards. However, the new software may not meet the new standards that he knows are about to be released -- standards that performing more tests could cost both the company and the public significantly. Issues of conflicting obligations to the company and the general public also arise.
Engineer A is employed by a software company and is involved in the design of specialized software in connection with the operations of facilities affecting the public health and safety (i.e., nuclear, air quality control, water quality control). As part of the design of a particular software system, Engineer A conducts extensive testing, and although the tests demonstrate that the software is safe to use under existing standards, Engineer A is aware of new draft standards that are about to be released by a standard setting organization -- standards which the newly designed software may not meet. Testing is extremely costly and the company's clients are eager to begin to move forward. The software company is eager to satisfy its clients, protect the software company's finances, and protect existing jobs; but at the same time, the management of the software company wants to be sure that the software is safe to use. A series of tests proposed by Engineer A will likely result in a decision whether to move forward with the use of the software. The tests are costly and will delay the use of the software at least six months, which will put the company at a competitive disadvantage and cost the company a significant amount of money. Also, delaying implementation will mean the state public service commission utility rates will rise significantly during this time. The company requests Engineer A's recommendation concerning the need for additional software testing.
- Under the Code of Ethics, does Engineer A have a professional obligation to inform his company of the reasons for needed additional testing and his recommendations that it be undertaken?
- Code of Ethics - Section II.1.a. - "Engineers shall hold paramount the safety, health and welfare of the public. If engineers' judgment is overruled under circumstances that endanger life or property, they shall notify their employer or client and such other authority as may be appropriate."
- Section II.1.b. - "Engineers shall approve only those engineering documents which are in conformity with applicable standards."
- Section II.4.a. - "Engineers shall act for each employer or client as faithful agents or trustees. Engineers shall disclose all known or potential conflicts of interest which could influence or appear to influence their judgment or the quality of their services."
- Section III.6.b. - "Engineers shall not attempt to obtain employment or advancement or professional engagements by untruthfully criticizing other engineers, or by other improper or questionable methods. Engineers in salaried positions shall accept part-time engineering work only to the extent consistent with policies of the employer and in accordance with ethical considerations."
Engineers are frequently faced with ethical dilemmas that balance the interests of the employer or client and the interests of the public health, safety, and welfare (see NSPE Code Sections II.1.a. and II.1.b.). While this is not a new or novel issue, with the increasing use of technological advances such as computers and specialty software, the decisions and judgments by engineers can have heightened importance in a wide variety of areas. The BER has discussed this issue on numerous occasions (see BER Cases 89-7, 90-5, 92-4, 92-6, 93-7).
With increasing frequency, new, innovative software and computerized solutions are being employed to instantaneously model and solve problems earlier performed over a lengthy period of time by individuals in teams. Experience has demonstrated that these efforts have played a key part in increasing the quality of the work being performed while reducing the overall long-term costs involved in performing these tasks. Clearly, an engineer's obligation to serve the interests of the client and the public are advanced by such efforts and activities.
While the use of these techniques have had a salutary effect on engineering practice and in many cases engineers have been able to more accurately measure the effects of their efforts on the public and the environment, there are obvious costs associated with the use of tests in evaluating the effects of some of the work performed by engineers in this area. While there is a strong bias in engineering toward design safety through the use of redundant systems to help assure the greatest degree of public protection possible, these considerations always must be balanced with the overall costs. As noted earlier, with advanced testing techniques, issues heretofore left unexamined are now equally subject to further testing, thus increasing the expense to the client and to the public.
Obviously, one of the most difficult questions facing engineers is how much testing is enough. This issue will always depend upon a careful assessment of all of the facts and circumstances in each individual case. Each individual engineer must make this determination based upon reasonable professional judgment.
Turning to the facts of the case, Engineer A must balance a variety of factors. Engineer A generally believes that the software designed by his company is safe but has become aware of a new testing procedure that is likely to demonstrate results that might cast a cloud over the software's viability. The financial pressures that exist, including the financial impact on his company, the client, and the public, as well as the potential loss of jobs and delays if additional testing is pursued, are clearly important factors and need to be addressed in some manner. However, it would seem that these nontechnical considerations are factors that need to be given weight separate and apart from the decision as to whether the additional testing should be recommended by Engineer A.
Engineer A would be well advised to prepare a technical report explaining the current testing analysis and results, as well as a reference to the new testing procedure that was recently reported in the professional literature so that the engineer's employer can make an informed decision regarding additional testing (reference Code Sections III.6.b. and II.4.a.). The nature of the industries using the software -- water, air, and nuclear -- clearly have an enormous impact upon the public health, safety, and welfare, and therefore, Engineer A should be certain that the information imparted to his employer and to the employer's clients is clear, accurate, and direct. Under the facts in this case, it is clear that the employer wants to have a significant degree of certainty that the products designed and manufactured have a high degree of reliability. Engineer A is in a strong position to assist his employer, and ultimately his 's client, in carefully evaluating all of the appropriate facts and circumstances in order to take a course of action.
Engineer A has a professional obligation under the Code of Ethics to explain why additional testing is required and to recommend to his company that it be undertaken. By so doing, the company can make an informed decision about the need for additional testing and its effects on the public health, safety, and welfare.
Board of Ethical Review:
- James G. Fuller, P.E.
- William W. Middleton, P.E.
- Robert L. Nichols, P.E.
- William E. Norris, P.E.
- Paul E. Pritzker, P.E.
- Jimmy H. Smith, P.E.
- C. Allen Wortley, P.E. (Observer)
- Donald L. Hiatte, P.E., Chairman
NSPE Code of Ethics An earlier version may have been used in this case.
In regard to the question of application of the Code to corporations vis-a-vis real persons, business form or type should not negate nor influence conformance of individuals to the Code. The Code deals with professional services, which services must be performed by real persons. Real persons in turn establish and implement policies within business structures. The Code is clearly written to apply to the Engineer and it is incumbent on a member of NSPE to endeavor to live up to its provisions. This applies to all pertinent sections of the Code.
For a version of this case adapted for classroom use, see: Software Design Testing (adapted from NSPE Case No. 96-4).