The trend of giving high sounding titles started decades ago as more and more educated people entered the workforce and involves all jobs.
Manager? Vice president.
Secretary? Executive assistant.
Developer? Engineer.
Reports and collects some data for his bosses? Data analyst.
Warehouse worker? Logistics and distribution specialist.
It doesn't have to always be self-aggrandizing for it to be true that lots of people are now called VP who used to just be middle-managers.
As opposed to learn about a type of algorithms, some math, some language or some pattern.
10 years latter, I’m glad for the exposure.
It was more useful to understand and talk to folks on the sides of the dev department : security, ops, qa, support. Heck, even product.
I felt that with those, the dev could monkey patch whatever together and still be part of some engineering process.
Now I don’t know. I sure do push code around.
If not, then, at least in my mind, it seems difficult to pin down exactly how software engineering can occupy a space in the domain of modern engineering.
Some sort of specific liability in the legal code could make sense, though.
In physical engineering, you really get one chance. If you make a mistake or miscalculation, there is a cost associated with undoing what's been done, as well as trying again.
In software, there is no such additional cost. You can trivially start from scratch, or any point between scratch and here, at any given time. There is no disposal cost.
Security breaches, locked in data (poor dB structure or no direct access) reverse engineering undocumented functionality, even just dismantling supporting infrastructure and migration costs are huge. Another huge factor is when business logic is codified and the knowledge is lost from the business and only temprarily held by transient consultants or developers.
An sap project for a single region for a $1bn per year company can easy cost over $10m and no software is being developed, only config, process change and data migration. Never mind increased staff turnover reduced productivity.
But very few people have the experience and expertise to understand what they are really signing up for.
Just think about a 3d model can do for a construction project and what that would look like for code and you can see how poorly we do this really.
(Make software actually be engineered)
That's without even considering all the kinds of rules-lawyering that would be applied afterwards.
To me the term didn't come from HR it came from trying to get "programmers" to think in terms of constraints, value, risks etc. Seems a pretty clear and simple definition.
The reason I think its not taken off in the same ways as say mechanical engineering is because in general customers cannot actually see the product, only certain elements of its outputs.
If you couldn't see bridges either in use or after a failure. You just saw cars disappear at one end and appear at the other, not even able to measure the gap or time taken to cross in any meaningful way then structural engineers would bullshit and self grandise as much as software engineers.
Maybe one day the average person will know enough to hold us to account, then we will begin engineering properly.