Engineering is simply using knowledge & resources to develop systems or processes that solve human problems. When you're developing software to solve human problems, that is absolutely engineering.
EDIT: I think this is ok in such a young field, but we should not deceive ourselves into believing that what we have today is anything like more mature engineering fields. We should also strive to attain their levels by investing more into high quality studies and less "axioms".
I agree that software development (engineering) is a young field, and thus there's even MORE we don't know compared to many other more mature fields.
We should certainly strive to increase knowledge via high quality studies. We currently have a serious problem: There is little incentive to do useful high-quality studies. Many people in CS are in a "publish or perish" mode. Publishing ideas is what's important, while scientifically showing whether or not something is true is not required (and takes much longer than posting an untested idea). Just look at paper after paper, and then ask how many show the results of scientifically rigorous experiments. There's remarkably little about the control vs. the experimental group (as an example). There is work that does real science, and I highly praise it - we just need more of it.
I had to write an oath to my province to execute on that faithfully. I was working with private health records. I know lives weren’t at risk, but it took a lot of knowledge and resources to execute on that properly, and maintaining quality and privacy around those systems is genuinely very important.
I don’t call myself an engineer, but I don’t think my job is a joke either.
Middle English (denoting a designer and constructor of fortifications and weapons; formerly also as ingineer ): in early use from Old French engigneor, from medieval Latin ingeniator, from ingeniare ‘contrive, devise’, from Latin ingenium (see engine); in later use from French ingénieur or Italian ingegnere, also based on Latin ingenium, with the ending influenced by -eer.
So the evolution of the word engineer to encompass software engineering is its emergent, and I’d imagine by the middle of this century, it’s dominant, form.
The author is writing specfically about software engineering but by by-passing the 'software' word in the title he is making a disservice to the real engineers (those professionals who have to go through a rather demanding set of requirements to be considered as such, e.g. mechanical, structural, chemical, etc).
We software developers love to be called engineers because it give us gravitas and status. But we fool ourselves and, most importantly the public, as our field is not regulated and it doesn't have a clear mandate nor ethical rules as the registered engineers.