Margaret Hamilton coined the term "software engineering" circa 1965, because she recognised that she and her fellow Apollo programmers were doing engineering, and had to be doing engineering, because otherwise people would die.
Engineering involves requirements analysis, specification, and the mathematical analysis of families of components to demonstrate – according to the known laws of reality – that the proposed solution meets the requirements and won't kill people.
E.W.Dijkstra advocated, repeatedly, from the 1970s onwards (EWD340 – and probably earlier than that also), that software should be formally-analysed and -verified as a matter of course. He called this humility. We call him arrogant, and insane.
> I now suggest that we confine ourselves to the design and implementation of intellectually manageable programs. If someone fears that this restriction is so severe that we cannot live with it, I can reassure him: the class of intellectually manageable programs is still sufficiently rich to contain many very realistic programs for any problem capable of algorithmic solution. We must not forget that it is not our business to make programs, it is our business to design classes of computations that will display a desired behaviour.
Nobody does this. We don't even try. As you said, everyone in programming is insane: so much so, that proposing "hey, why don't we try writing computer programs we actually understand" elicits laughter and scorn.
In every other engineering discipline, proposing a solution that you do not understand will get you fired. In software engineering, it's a Tuesday.
Engineering involves requirements analysis, specification, and the mathematical analysis of families of components to demonstrate – according to the known laws of reality – that the proposed solution meets the requirements and won't kill people.
E.W.Dijkstra advocated, repeatedly, from the 1970s onwards (EWD340 – and probably earlier than that also), that software should be formally-analysed and -verified as a matter of course. He called this humility. We call him arrogant, and insane.