It was always a mistake–except possibly as striking rhetoric–to speak of “software engineering” alongside “bridge engineering”.
Bridges can truly be engineered in that there is a small and fixed number of solutions and the engineer’s task is to apply whichever solution is appropriate to a situation. The software equivalent is not writing a web application or browser extension but porting gcc to very slightly different platform.
If we translate the other way from software to bridges, then the equivalent request is to build a bridge with two or more endpoints, where one or more endpoint can be crafted, and halfway through construction requests will come to hang motel-like rooms on the sides of the bridge.
Such a “bridge” cannot be engineered, even if one could undertake the risky proposition of trying to invent it. The engineering work in software is handled by COTS and Freshmeat acquisitions; if a team of developers is asked to do it, then it’s probably not something that could be engineered in the first place.
I’m glad we don’t have software engineering: if we did, most of the work that draws me would be dead.