But software engineering is a real discipline and something that exists. It is also something distinctly different from computer science, as the relationship between computer science and software engineering is one that is identical to that to other scientists like physicists and material scientists to mechanical, structural, and aerospace engineers.
The problem is having somebody who has read a book about Visual Basic or taken a two week certification course and then is proclaimed "an engineer"... which is the furthest from what a real engineer actually does.Actual engineering is something that is learned gradually over time and really does require mentorship, apprentices, and many of the things described in this article. The regulation and the other bullshit that comes with compliance to governments is something that can be left out, but is already sadly a major part of software engineering anyway if you want to be truthful. A proper software engineer will understand not only the coding part, but will also know the legal and moral limits of what it is that they are doing as well and be responsible with what they are doing.
As for the data breeches and software failures that were mentioned in the article, that is a pure sign of somebody who was not doing their job, and using tools and I dare say operating systems that are simply not up to the task. Proper software engineering takes a look at everything, including the full software stack going from the BIOS to what the end user is directly experiencing with a user interface and understanding in depth that whole software stack too. Sadly that isn't something taught in most universities any more and definitely can't be picked up by a hobbyist programmer without a whole lot of effort either. If you can't code an assembler or compiler and make that whole software stack from scratch, you shouldn't call yourself a software engineer. I'm not saying you should necessarily ignore existing software nor constantly reinventing the wheel, but it is the level of skill and knowledge that you should have to be considered competent.
On the other hand, those capable of such tasks and doing so in a full time professional manner, that can intelligently communicate with other engineers in other engineering disciplines and make their products (the stuff made by other engineers doing something other than developing software) a whole lot better, they legitimately can be called properly engineers. I will even go so far as to say the worst kind of software developers I've met are electrical engineers who have moved over to the software side of things and don't know that software engineering is its own discipline with its own standards and ideas separate and independent from building gates or power supplies. A few electrical engineers get that it is a new discipline separate from the one they were trained in doing, and can certainly grow into competent software engineers in their own right as they really do understand computer hardware from the ground up. None the less, even these "proper" engineers going into software development need to realize they have gaps in their education.
I would agree that perhaps some companies need to restrict the use of the title "software engineer" to perhaps fewer people than is typical done in the industry. I particularly hate the use of "network engineer" unless there is some actual engineering processing involved in something like that too. What definitely needs to go is the specialized certification like "Microsoft Certified Engineer", unless Microsoft is actually running a real engineering school that is itself accredited. The two week wonder courses particularly shouldn't be using the term at all or calling those who complete such courses anything approaching the term "engineer".