Considering whether software engineering
and engineering can share a profession.
An AnonYmoUSLY AttriB- UteD adage states: “With another name, social engi- neering would not be mis- taken for engineering.” Approximately 15 years ago, I published a
short article in the Journal of Engineering Education arguing—among other
things—that software engineering was
not then engineering.
1 I have now been
asked whether enough has changed to
make me think software engineering
is engineering. My answer is: much
has changed—with some changes
weakening the separation between
engineering and software engineering
and some reinforcing it—but, overall, the argument stands. This answer
will surprise those who, unaware of
that article, think software engineering’s status as engineering is obvious.
I therefore think it wise to precede any
explanation of why software engineering is not engineering by disposing of
a few unexamined presumptions that
might make software engineering’s
status as engineering seem obvious.
senses of engineering
“Engineering” has at least four senses
in English. One, the oldest, understands
engineering as tending engines (
originally, “engines of war”). Casey Jones
was an engineer in this sense; so is the
custodian of my building, a licensed
“boiler engineer”; and so too, the sailor
of ethics and
differs in significant
ways from all
codes i know.
rated “marine engineer.” Neither engineers (strictly speaking) nor software
engineers are engineers in this sense.
Almost the opposite of this first
sense is what we might call the func-
tional sense, engineering-as-inven-
tion-of-useful-objects. In this sense,
the first engineer may have been the
caveman (or cavewoman) who in-
vented the club, cutting stone, or fire
pit. Though this sense would certainly
make software engineers engineers,
there are at least two reasons to reject
it here. First, the functional sense is too
broad. Architects, industrial designers,
and even weekend inventors are all en-
gineers in this sense, making software
engineering’s claim to be engineer-
ing uninteresting. Second, the func-
tional sense is anachronistic. It takes
a sense of “engineering” that did not
exist much before 1700 and applies it
to cavemen, carpenters, tinkerers, and
the like, who would have understood
themselves quite differently.