Mice Or Men: Are We Engineers, Or Just Geeks?
By Eric Kolb


     As the calendar marches onward, certain things occur to people inevitably: our cars deprecate in value, we have to adapt to new technologies, and eventually, we pay off our college loans. But long before any of that can really set in, something else happens to us. We begin to take certain things for granted. In particular, we tend to take the label of "engineer" (which, for many of us, will be printed on our degrees), for granted.
     Computer science is a highly versatile field. Indeed, it does fall somewhere between mathematics and engineering, but how far along that axis does it really fall? How much like engineers are computer scientists?
     The key issue that I'd like to focus on here is the licensing of software engineers. Not of the software itself, mind you, but of the engineers who created it. At a glance, this may seem like an absurd idea, but it's more than someone's passing fancy. It's an issue that highlights the difference between software engineers and other engineers.
     Engineer licensing is a function of state and provincial governments that is conducted as a means of protecting the general public from bad engineers making potentially dangerous decisions. Engineers are required to pass a certification test to earn such a license, and a licensed engineer is liable for the designs he or she signs off on and the decision that he or she makes. It's worth noting that licensing is not a ubiquitous effort - licensing is needed when you're dealing with smaller firms and new designs. Field engineers working on turbine engines for General Electric, for example, do not need to be licensed.
     Some of you may recall hearing or reading about the structural disaster with the walkways at the Hyatt Regency Hotel in Kansas City from 1981. The disaster was caused by a failure of communication between the architects and the building engineers, as well as a failure of the engineers to catch the literally fatal error. (Visit http://www.uoguelph.ca/~ajenney/webpage.htm for more information.) Ultimately, the result of the incident was that the individual engineers who signed the drawings lost their licenses, and the firm that employed them lost its ability to be an engineering firm. While the Hyatt Regency disaster is the most significant of such cases in the US, this is exactly what engineer licensing is designed to protect us from.
     For the last four years, the issue of licensing software engineers has been an open case for software engineering professionals. Both the ACM and IEEE have their own collective opinions on the matter, and, in fact, the ACM withdrew from the Software Engineering Coordinating Committee (SWECC), originally a joint ACM/IEEE effort, in 2000 over the differing opinions on the issue of software engineer licensing.
     The official stance of the ACM on software engineer licensing is that it is an unfeasible idea, for a

number of reasons. The most significant among these is the sheer impracticality of licensing.
     Unlike other fields of engineering, which are based on physical laws and theories that have not changed significantly for years, software engineering has no professionally established body of knowledge on which consistent testing methods can be produced. Computer scientists and software engineers are not taught how to engineer software in concrete terms - we are taught flexible models that will change in time, we are taught how to keep up with the ever-changing field.
     Another point to consider is that, while the field is ever-changing, a state license is essentially eternal. Were we to impose software engineer licensing despite the testing impracticalities of it, a software engineer who has fallen out of touch with the craft may still be considered qualified to authorize a a project, twenty years after he or she moved into a different profession.
     Herein we see the most notable difference between engineers and software engineers - our world is infinitely malleable. When it comes to computers, there are few rules we must obey, because there are so few rules that we cannot bend or break. (There is no spoon.)
     It is this difference that puts us at such odds with the rest of the engineering world. In September of 1999, The Canadian Council of Professional Engineers sued the Memorial University of Newfoundland over the use of the term "engineer" in conjunction with its new Honors (B.S.) degree in computer science with a specialization in software engineering. The lawsuit was soon dropped upon the establishment of an agreement between MUN and CCPE, but this wasn't until MUN's accreditation was called into question for the offending descriptor.
     While these events have all passed, we must still consider whether or not we are really "engineers" at all. American Heritage tells us that engineering is "the application of scientific and mathematical principles to practical ends such as the design, manufacture, and operation of efficient and economical structures, machines, processes, and systems." While the dictionary seems to be on our side, as it were, it seems that software engineers are at odds with the rest of the body of professional engineers time and time again. So, are we engineers, or are we just geeks? I haven't got a straight answer for you, and I don't know that anyone ever will.
     If you're interested in this or other issues related to computing, both professional and non-professional, keep your eyes open for SIGCAS (Special Interest Group for Computing And Society), a computing discussion group, next fall. Email erickolb@uiuc.edu to be added to the mailing list sooner rather than later.

4