Software Engineering is an a oxymoron
When a Mechanical Engineer designs a Connecting Rod, he does it the same way every single time. An Engineer in Ghana does it the same way as an Engineer from Canada as does an Engineer from New Zealand. And when the connecting rod has to be redesigned after a decade, it is done in about the same sequence of steps as it was done earlier; not withstanding the steps that were automated or the specific design tools that were used.
That is Engineering! It is a repeatable methodology; a systematized branch which can be taught as definite sequence of steps that when followed will yield a measurable outcome. The planned Vs the actual resources utilized are about the same. It is structured. It is a discipline.
The same can be said of Civil, Chemical, Electrical, Electronics, Automotive, Structural, Instrumentation and Metallurgical Disciplines. They no doubt evolve and refine over time. But they are Disciplines today! They represent Engineering.
Software is not Engineering yet! It is almost impossible to measure at scale.
A software engineer does the same thing differently each time he does it. He does not understand Engineering as there is no discipline!
Developing the Software process as an Engineering discipline is over due!