The majority of software development will never be engineering simply because it doesn't need to be.
The term "engineering" when referring to bridge building, etc. fundamentally reflects a level of process discipline and technical quality control. Although I think these notions appeal to many programmers, most software just isn't important enough to require them. And because these things hard to do and unnecessary, they just won't happen.
That said, there is software that benefits from and requires real discipline. There is quite a lot of hard real-time and safety-critical systems programming practiced today that constitutes engineering.
> UPDATE: My wife the attorney acidly points out yet another way in which Sonmez’s argument is flawed and unhelpful. “If surgeons had the failure rate of software engineers,” she observes, “they’d all be in jail.”
The term "engineering" when referring to bridge building, etc. fundamentally reflects a level of process discipline and technical quality control. Although I think these notions appeal to many programmers, most software just isn't important enough to require them. And because these things hard to do and unnecessary, they just won't happen.
That said, there is software that benefits from and requires real discipline. There is quite a lot of hard real-time and safety-critical systems programming practiced today that constitutes engineering.