Is Software Engineering Engineering?

I remember back in the Mid 90ties I integrated University for a Major of Computer science Degree. I was coming from a Mathematics background having spent about two or three long years studying Maths; and in which solving hard and complex math problems was my sole activity. I was told that mathematicians were the first to write computer programs and were the best ones to do that. So I came with a certain confidence and serenity that i’ll be doing well as a Software Engineer Student. Needless to say that the first three or four months were so frustrating for me. Almost all the computer programs i wrote in Lab assignments were broken. My confidence began to shake!
I remember at a certain time during this semester, I felt a deep need to Talk to my adviser. I told him:

Sir, before i came here i was told that software writing is merely doing mathematics. why is it ,then, I’m capable solving hard math problems but yet incapable writing a correct computer program ?

My advisor smiled and told me :

Well, try to think about a computer program as a Dynamic Math problem. A Math problem in which all variables and data are constantly moving and changing. Before, you were doing Static Math. Now it’s time for you to start doing Dynamic Math!

I admit this advice helped me start thinking differently about computer programming. However, It didn’t gave me the full answer. I was feeling that the Software Engineering discipline couldn’t be easily categorized as being Science or Engineering or Art or any other known field. It turns out I was not the only one facing this dilemma. Recently I read an article by Bruce Eckel in which he claims that Writing Software is Like … Writing.
While i do agree with most of what Bruce said in his article; Yet i still tend to believe that software is more than writing. In my view, it’s a complex mixture of disciplines involving at the same time pure science , Engineering, Art , Writing and probably many other disciplines. A good software developer -for me- should be Many Men in one Man. He must be able to switch his mind pattern of thinking between different modes (To say disciplines). There are circumstances where the programmer should act as a pure scientist. In other situations he should behave as an Engineer; and In other times he has to think and feel like an Artist.
I Read an article in ACM Magazine (CACM , issue March 2009) by Peter J.Denning and Richard D.Riehle ; in which they are -too- complaining that

software Engineering Is Not Engineering !

They Note that :

software Engineering may suffer from our habit of paying too little attention to how other Engineers do Engineering.

In their article they propose :

we need to encourage system thinking that embraces hardware and user environment as well as software.

It seems that each discipline veterans are trying to adapt software writing to make it fit their own field. For me, I would love to see software continue being an obscure and undefined profession. It’s this obscurity that makes the beauty of this field. It is this nature of such a Multi-discipline , Multi-skill, Multi-facets activity that makes software an exciting , rich and continuously evolving discipline.

4 comments on “Is Software Engineering Engineering?

  1. James says:

    I agree with much of what you say. My thoughts however are that there are very few software engineers. The reason for this is that the word engineer often has additional legal meanings particular in terms of regulation and criminal liability. For example, engineers who build bridges are liable for their work often decades after the construction is finished whereas software engineers may only be bound by contractually defined liabilities for fixed periods much shorter than the lifetime of a bridge.

  2. othmanelmoulat says:

    Yes I totaly agree with you. there is also this legal facet of software Engineering. I heard there are some Countries in the world where you could be sued or jailed for claiming to be a software engineer without having a Real Degree in Software Engineering. However there are many places in the world where programmers Are hired to do software engineering jobs without being certified or legally approved for this Title. That’s why i said the software engineering field is still ambiguous without clear specification of its legal , academic and professional nature. Should we do something about it ? I don’t know. Probably when there start to be cyber crimes under the umbrella of software engineering jobs then we should get our act on it.
    thanks for your valuable comment.

  3. Thanks for the software tips, great info. Any chance you can give us a review of the RainMaker Craigslist ad posting software? Do you have any other tips on marketing software? Thanks again for the usefull guide…

  4. I have been visiting various blogs for my term paper research. I have found your blog to be quite useful.Keep updating your blog with valuable information… Regards

Leave a reply to Craigslist posting software Cancel reply