Physical engineering creates products for a world which operates according to rules that are fairly well-understood. Gravity will affect buttresses in a particular way that never changes. If you imagine building bridges for a world in which the gravitational pull may change in intensity or even reverse itself, you have a better understanding of the inherent problem of engineering software. Software runs in an environment of such complexity that the problems of engineering for it appear to be much greater than in mechanical or electronic engineering. Even very simple issues can be extraordinarily difficult to solve.
Every computer user is used to occasional crashes as a fact of life.
Large corporations live by a particular set of rules which involve knowing when things are going to get done and how much money they will cost. Naturally they want to commission software projects, or do them internally, according to this same rulebook. There is a fascinating gap between experience and current practice when you compare the creation of Mosaic or Visicalc by individuals working alone or in very small groups with today's received wisdom that no commercial product can be created by a team of less than fifty to one hundred developers. I think it would be helpful to regard software largely as an art form. New disciplines often start under the radar and are perceived only later to be art.