Licensing and Software Engineers

advertisement
Licensing and Software Engineers
Jacob Lloyd
October 23, 2003
The License Dispute
In 1998, Texas became the first jurisdiction in the United States to license
software engineers as professional engineers, adding software engineering to the list of
engineering disciplines. The Texas decision was a flashpoint for controversy as well
as a catalyst for the discussion of the differences and similarities between traditional
engineering disciplines, software engineering, and computer science in general.
Before and since, a long and sometimes bitter debate has raged concerning the place of
software engineers among professionals.
On one side of the debate, engineers insist that the title of engineer should be
reserved for those who have successfully passed a course of instruction and the proper
qualifying exams.
In this sense licensing is a matter of public safety; as civil and
mechanical engineers are licensed in the interest of assuring that only knowledgeable
professionals serve the public in vital capacities, so software engineers ought to be.
This view holds licensing crucial since large pieces of software now hold critical
positions in systems related to the public trust (the power grid, for instance).
On the other hand are computer scientists and software professionals who hold
that software engineering is far too young a field for licensing.
Other fields of
engineering have had as long as centuries to develop the bodies of knowledge that they
require their practitioners to consume.
Software engineering has no commonly
acclaimed body of knowledge (despite some efforts to create one), and changes rapidly,
rendering qualifying examinations useless within a dozen months. Also, the products
of software engineering are so far removed from the physical works of other fields as to
be incompatible with existing standards in the engineering community.
Software
engineering as a discipline is considered by this group to be an outgrowth of computer
science and should not be held to the same standards as, for example, civil engineering.
Pros and Cons of Software Engineer Licensure
When considering the questions of licensure, the benefits must be weighed
against the negative aspects of such a plan.
A good understanding of why licensed
software engineers are attractive may be an incentive to risk the minefields attendant in
the regulation of a field so alien to traditional professions is desired.
However,
comprehension of the inherent impediments might also force regulation down another
path.
Why should software engineers be licensed?
Software, like bridges, buildings,
and power plants, is an artificial construct used by a wide variety of people for vital
purposes. Software is intimately woven into our power grid, our advanced aircraft,
even our toasters.
A software failure, like the failure of a bridge, can block the
performance of vital work activities and even cost lives, as in the case of Therac-25.
As architects and engineers are required to assimilate a body of knowledge-procedures,
physical science, design principles, etc.-concerning the basic principles needed to
perform engineering tasks, an analogous body of knowledge for software engineers
would help ensure the quality of software produced.
Licensing, in both cases, is
intended to guarantee the comprehension by the engineer of his field’s body of
knowledge.
In other words, licensing exists to protect the public from charlatans and
hacks who claim competency without merit.
What are the problems involved in licensing software engineers?
Firstly, the
body of knowledge for software engineering largely does not exist. Efforts have been
made by a joint venture of the Association for Computing Machinery (ACM) and the
Institute of Electrical and Electronics Engineers Computer Society (IEEE-CS) are
currently engaged in this undertaking.
However, the task is not easy.
Software
engineering is, at this point, less a discipline and more a research question and an
agglomeration of tools and techniques. Deciding which are vital and which may be
ignored from the standpoint of the body of knowledge cannot be easy.
Also, the products of software engineering are conceptual rather than physical.
The products of other engineering disciplines are objects governed by the laws of
physics. Computer software does not necessarily have this limitation.
The heavy
emphasis on physical science and continuous mathematics found in most engineering
programs leaves much less time for computing-related knowledge, and may not even
serve the software engineer who elects to write operating systems or accounting
software.
At the least, examinations which lean heavily on physical science (such as
the Fundamentals of Engineering examination, a common prerequisite for licensure)
would have to be rethought with respect to software engineering.
Thirdly, software engineering is often taught as a part of a computer science
curriculum, not as an engineering course.
Removing software engineering from
computer science and establishing it as a separate field of engineering takes away much
of the computer science work integral to the field while adding much which might be
irrelevant to the course of instruction. For the foreseeable future, computer science
and software engineering are likely to remain so entwined.
Finally, information technology moves at a prodigious rate compared to classical
engineering disciplines.
Certification tests would likely be outdated before they were
administered, and licenses issued decades ago would still be current.
One must ask if a
software engineering licensee from IT’s distant past (circa 1990) should be re-examined
to ensure competency with the current set of tools used in software engineering.
Cases: Texas
In June of 1998, the Texas Board of Professional Engineers added software
engineering to its list of recognized engineering disciplines, making Texas the first state
to issue licenses to software engineers. The decision was not without controversy.
While the IEEE-CS was in favor of licensing software engineers, the ACM was not.
Although the ACM participated in a joint IEEE-CS/ACM working group when asked by
the Licensing Committee of the Texas Board of Professional Engineers, it later
withdrew, citing its opposition to the licensing scheme, and later withdrew support from
the Software Engineering Coordinating Committee (SWECC), a joint venture between
the two groups charged with preparing a Software Engineering Body of Knowledge
(SWEBOK). Engineers shouted public protection on one side, and computer scientists
proclaimed software engineering unready for such a step.
In the event, software engineers in Texas must be licensed, but only if they offer
their services to the public. Under Texas law, engineers who work for companies need
not seek a license; the company assumes liability for the quality of the work done.
Software engineers who consult and their like do need to seek licenses.
The corporate
loophole also explains the relatively low numbers of engineers generally who become
licensed. 40% of civil engineers seek licenses, the highest figure, compared to 10% of
Texan electrical engineers, the lowest.
Several Rice University professors report that
they have fielded not questions from students concerning licensing issues at all.
Software engineering has been licensed in Texas, and hardly a whimper ensues.
Cases: Canada
The process of licensing software engineers has not gone so smoothly in Canada.
When the Memorial University of Newfoundland (MUN) created a software
engineering curriculum within its computer science department, the Association of
Professional Engineers and Geoscientists of Newfoundland (APGEN) sued the
university over misuse of the word “engineer.”
In Canada, certain engineering
associations are charged with regulating engineering on the national and territorial
levels; APGEN is one of these.
When news of the lawsuit became public, the
Association of Universities and Colleges of Canada (AUCC), the Canadian Information
Processing Society (CIPS), the Canadian Association of Computer Science (CACS),
and the Information Technology Association of Canada (ITAC) joined in on MUN’s
behalf, while the Canadian Council of Professional Engineers (CCPE) backed APGEN.
In addition to the suit, the CCPE has trademarked the words “engineer” and
“engineering” and is in the process of accrediting software engineering programs within
engineering faculties in Canadian universities.
CCPE also issues licenses for software
engineers (although most software engineers in the Ontario area are drawn from
backgrounds other than computer science).
CCPE and the Canadian information
technology organizations seem to be fighting a nasty turf war over who owns software
engineering.
Lessons and Conclusions
Licensing for software engineers is already here in some jurisdictions.
Texan
and Canadian engineering bodies are already pursuing that course, and New Mexico
may follow soon. Still others may never settle on licensing requirements and so their
jurisdictions will continue in the de facto void enjoyed by the profession today. We as
computing professionals cannot ignore the advent of licensing in our profession.
If we
are to ensure that the guidelines for licensing are germane to our profession, then
organizations such as the ACM and IEEE-CS must continue to advise engineering
boards, codify a body of knowledge, and intellectually prepare their membership for
licensing. Otherwise, we face regulations written by engineers and politicians ignorant
of computer science and software engineering, and that will hobble the bright young
software engineers of tomorrow. Only we can secure a sane licensing structure, and
we must do so now, before engineering boards and licensing authorities decide to do so
for us.
REFERENCES
Allen, Fran, Paula Hawthorn, and Barbara Simons. “Viewpoint:
This.” Communications of the ACM Feb. 2000: 29.
Not Now, Not Like
Bagert, Donald J. “Texas Licensing of Software Engineers: All’s Quiet for Now.”
Communications of the ACM Nov. 2002: 92-94.
Cupp, J. William. “Reviewing the Professionalization of Software Engineering: Can
Small Colleges Remain Viable?” The Journal of Computing in Small Colleges
17.1 (2001): 132-146.
Kennedy, Ken and Moshe Y. Vardi. “A Rice University Perspective on Software
Engineering Licensing.” Communications of the ACM Nov. 2002: 94-95.
Knight, John C. and Nancy G. Leveson. “Should Software Engineers Be Licensed?”
Communications of the ACM Nov. 2002: 87-90.
McCalla, Gord. “Software Engineering Requires Individual Professionalism.”
Communications of the ACM Nov. 2002: 98-101.
Myers, Brad, Jim Hollan, Isabel Cruz, Steve Bryson, Dick Bulterman, Tiziana Catarci,
Wayne Citrin, Ephraim Glinert, Jonathan Grudin, and Yannis Ioannidis
“Strategic Directions in Human-Computer Interaction.” ACM Computing
Surveys 28 (1996): 794-809.
Parnas, David Lorge. “Licensing Software Engineers in Canada.”
of the ACM Nov. 2002:
96-98.
Communications
Download