DEV Community

loading...

Discussion on: Are You a Developer or Engineer? Why?

Collapse
gombosg profile image
Gergely Gombos

Does 'software engineering' even exist?

I'm not even sure software engineering exists, or whether it should be called as such. As a reference, I have a 'mechatronics engineering' MSc, which is mostly a mix of electrical and mechanincal engineering. These classic engineering fields are called 'engineering disciplines'.

Mechanical (and also civil) engineering is about 200 years old, electrical engineering is about 70-80. Whatever you're designing, you're leaning on the 'shoulders of giants', leveraging knowledge that may be more than a hundred years old.

Computer science has really branched from mathematics, and computer engineering, the practical side, branched from electrical engineering.
Software started eating the world about 30 years ago, and now people call themselves 'software engineers'. Heck, my employer calls me a software engineer! :D

Software engineering vs. hard sciences

Software engineering activities are similar to existing engineering practice in that you are modeling, measuring, researching and methodically refining a design in order to work towards some concrete end goal i.e. a product.

On the other hand, software engineering is totally different, much 'softer' (no pun intended) than mechanical, electrical, chemical or civil engineering that build on hard sciences. There, if you want to do something, you refer to some relevant physical or whatever models, formulae, tables, whatever; get some results, maybe measure and simulate a bit and get a concrete result. Multiply by it some safety factor and there you go.

In software? Not so much. In that sense, it reminds me of soft sciences like social sciences or economics. For each problem, you have 10 different languages, 100 frameworks, 20 totally different 'paradigms' with their own consultants, zealots and flamewars, each getting replaced every 5 years. And several could produce a satisfying solution to your problem.

Mother Nature doesn't want to sell you anything when it comes to physical models. Consultants on the other hand do, when trying to sell their latest & greatest paradigms, 10x engineering practices and lean methodologies.

All in all, software engineering, if it exists, is fundamentally different than existing classical engineering disciplines, is changing much-much faster and probably we should come up with a better term for it, rather than abusing existing terminology.