Earlier quoted context omitted.
Software development as practiced now by a huge number of individuals and companies is closer to a craft, but it can be and must be more than that if we want to be able to tackle the growing complexity of software and improve its overall barely adequate quality. Crafts don't scale and are a poor fit for highly complex domains. The curse of software development is its huge financial success, anemic legislative specifi…
"And finally, we do understand software engineering well enough to teach it properly." This is news to me. I would very much like a citation, please. Or do you mean applying formal proof verification to everything?
The above is neither widely known (I only found out about it after many years of doing professional programming), nor is it necessary in order to be successful in the profession and/or make a lot of money.
Commercial software development is mostly a wild west and we're calling that craftsmanship.