Dr. Dobb's Journal April 2004
Professional Engineers
Dear DDJ,
In his discussion of the British Chartered Engineer system ("Letters," DDJ, February 2004), Jason Ross admits that "The main problem with this system appears to be a general ignorance of its existence in the electronic and software industries." My conviction is that ignorance and indifference are often very much the same thing. Persons of ability learn and propagate information they think useful, and failure to do so amounts to a negative verdict. The reason why large classes of engineers are indifferent to professional certification is, as much as anything, an imperfect fit between the idea of engineering and the idea of a profession. Not all skilled or learned occupations are professions. The basic notion of a profession is defined by reference to the layman. A professional person is someone who possesses special expertise and upholds a trust in employing this expertise. A surgeon is an exemplary professional. Artists, stage performers, writers, journalists, and so on are not professionals, in spite of their skill, precisely because they submit their works to the judgment of the reader or audience.
Is programming a profession? Computers have only been ubiquitous for 20 years, not even a single generation, and programming has not had a chance to reach equilibrium. If we look at mathematics as an analogy of a similar, but more mature, field, then mathematics is not a profession. Depending on circumstances, mathematics is either a scientific discipline or a literacy mode.
Prospective scientists, engineers, accountants, and the like are all taught sufficient mathematics so that they can do their work without relying on a mathematician. Such persons rely on books of mathematical tables, of course, in much the same way that programmers rely on software libraries. In all of these fields, the customary training programs require applicants to have advanced a considerable distance in their mathematical education before being considered for acceptance. A reasonable expectation with computers fully absorbed into the curriculum might be that children would learn to program per se in elementary school, and take an algorithms and data structures course in the 10th grade, in lieu of high-school geometry. As computer programming catches up to mathematics, engineers and accountants, themselves skilled programmers, are going to assert more or less decisive control over the computer systems within their purview. This necessarily defeats the idea of ordinary computer programming being an independent profession. Probably, at present, the largest number of programmers do work that is within the sphere of accounting. Such programmers will either be Certified Public Accountants or not.
Eminent mathematicians, of course, are not professionals. They customarily submit the results of their research to the anonymous peer review process, to be torn apart, and either eventually accepted into the canon or not. It is a matter of principle that a theorem's correctness does not depend upon the author's qualifications, but rather upon whether it can be disproved. Open-source software fits squarely in this tradition.
Another significant analogy is that of mechanical engineering. Mechanical engineers have traditionally been much less enthusiastic about licensing than civil engineers because the best mechanical engineers have traditionally worked for other engineers, that is, for expert customers. Mechanical engineering grew up in the first place, in the middle to late nineteenth century, as a core of expertise around machine tools and steam engines. Machine tools would be more or less equivalent to compilers; and steam engines to operating systems. Similarly, the vast majority of electrical engineers produce control or signal systems, built into other machines. Even autonomous electrical devices such as radar sets are commonly built into ships or airplanes, and are subject to expert criticism and review from the prime contractor, and, indeed, the user organization.
Software exhibits the same tendencies as mechanical and electrical devices, but additionally, one must look at the kind of software that is being produced by core programmers these days. Linux is essentially completed as a programming project. It has reached the level of fixing details, but the major work is over. The same goes for Gnome, Apache, Mozilla, Open Office, etc. They all work well enough to present a substantial commercial threat to Microsoft (itself a collection of static projects), and the SCO lawsuit can be considered a perverse sort of graduation ceremony. The unfinished business of advanced system software programming, as represented by graphics and artificial intelligence, is mostly ludic, the creation of tools with which to make better video games. If the software malfunctions, all that happens is that the illusion falters, the same as if an actor had flubbed his lines. It is difficult to see an overriding public trust in video-game component engineering.
The situation in civil engineering is quite different than in mechanical engineering. Civil engineers are traditionally coextensive with architects. The first civil engineers (eg., Benjamin Latrobe) were also architects, and even today, the most distinguished civil engineers tend to be architects as well. The most prestigious employment for a civil engineer was to superintend a large government project, for example, a transcontinental railroad. Professionalism meant being above politics in the expenditure of public money. At a lower level, civil engineers work for lay clients, but even these are likely to be institutional. The professional claimed to be acting in loco parentis, not for an individual, but for a public, which had no one voice of its own.
I have in front of me, Eric Laithwaite's Invitation to Engineering (1984), a sort of advertisement aimed at recruiting young people into engineering. Laithwaite was then Professor of Heavy Electrical Engineering at Imperial College, London. One of the points the author made, with some indignation at its nonrecognition, was that a British chartered electrical engineer had the right to sign passport applications (p. 5). Similarly, the author added that only a chartered electrical engineer was entitled to install wiring in a private house (p. 118). Installing household wiring does not require any identifiable engineering skill. Most of what an electrician actually does is "snaking," that is, getting a messenger cord into position with which to pull the electric cable home. The main requisite of safe household wiring is simply that the electrician shall consult a table and use the specified grade of wire, plugboxes, etc., and that he shall be sufficiently diligent in tightening the terminals. The idea built into the legal requirement is that an engineer is an ethical, educated person who would not substitute grossly inferior materials and pocket the difference in price, whereas a working-class electrician might very well do such a thing. In America, of course, we reserve such trust for a civil servant, such as a municipal building inspector, who does not have a vested interest in the job. At the industrial level, we have organizations such as Underwriters Laboratories.
Andrew D. Todd
adtodd@mail.wvnet.edu
DDJ