1-A practical problem is being solved in a scientific way.
2-Safety, repeatability, understanding of the how and why of the solution are non-negotiable.
3-The person solving the problem has been credentialed as an engineer in both ethics and scientific rigour.
4-Because he is credentialed, there is non-waivable liability for the engineer signing off on the solution if it fails.
No whining or superiority intended, but if any of the four criteria is missing, you're not practicing engineering. In my experience most software development is missing all four. That's not necessarily a bad thing, it's just that most software development isn't engineering.
Again, nothing intended by it. There's no superiority to engineering over development.