Carl Banks' Blog

Viewing single post

Why Software Engineering is not Engineering in the classical sense

I recently had some odd experiences with some software engineering firms that made me realize, poignantly, how different software engineering is from engineering in the classical sense (that is, mechanical, civil, elecrtrical, etc.).

(I'm not going to play word politics here and say that software engineers are not engineers [1]. Software engineers can call themselves whatever they want, as far as I'm concerned. But regardless of what you call it, software engineering is not in the same job as mechanical, civil, electrical, etc., engineering.)

Anyways, I recently interviewed for two software positions, one of which I was extremely qualified for technically, the other borderline qualified [2]. I was quite surprised to be rejected for both positions, not because of any lack of technical merit, but apparently because I didn't seem excited enough about the job. Even for the job I was only borderline qualified for, my interviewer's main objection was that he couldn't see any "passion". Coming from a background in engineering in the classical sense, it was inconceivable to me that it would even be a factor.

Now, I know for a fact that, at least in aerospace, many engineers walk around all day with about as much passion as a block of wood, and yet do their jobs just fine. I was one of them myself. But, apparently, software engineering is different. "Passion" or "excitement" is a common requirement for software engineering jobs (that is, unless you work for Microsoft, which is well known to be one of the most emotionless companies there is).

But is outward passion really necessary to do the job? At first glance, it seems that if aerospace engineers can do their job without passion, software engineers should be able to, too.

But first glances can be deceiving.

Compare the subject matter of the two fields. Computer programming has a subtle human warmth to it that classical engineering tasks (say, control theory or truss analysis) lack. There's a level of expressiveness in writing software that is utterly absent in truss analysis, and I believe that this expressiveness attracts passion. In other words, software engineering is inherently passionate. In this respect, it is a lot closer to architecture than engineering.

Whether passion is actually necessary or even helpful for software engineering is not so certain. Personally, I doubt it. Regardless, the fact that software engineering can even generate passion demonstrates what aa different beast it is. Though classical engineering and software engineering are both technical fields, the expressiveness of software leads to crucial differences between the two.

Bottom line is: Engineers in the classical sense don't get excited. Software engineers do. Therefore, software engineers aren't engineers in the classical sense.

[1]Besides, if I wanted to do that, there's a better argument: software engineers are not eligible to receive an engineering licence from any state.
[2]The job seemed to entail having detailed knowledge of arcane aspects of C++; totally not my thing.
Tags: engineering, software_engineering
Permalink: http://blog.aerojockey.com/post/softwareengineering
Last Edited: 30 May 2007, 4:19 PM
1 comment:
Tyler Cox wrote: Sad that you had to spend a career where no engineer got excited about what they were doing. My experience as a product development engineer (BSME and MSME) has allowed for alot of excitement. Perhaps your problem has more to do with the industry you come from versus the industry you are trying to change to
Viewing single post