There are movements afoot to regulate the software industry, much like OSHA regulates workplace safety. Although motivation behind this comes from well-meaning individuals frustrated with software quality, it also comes from consultants whose self-interest overtakes common sense.
Nevertheless, we programmers need to get better at explaining ourselves: Why can’t we make our software products more reliable … like engineers make bridges? My first thought on this is- hey, I love to hire engineers that can code, so if you know of one give me his cell number. Now! Engineers plan things. They document. They create unit tests. They test methodically. Although I haven’t known many engineers that could code, the ones that did were really good at it.
But most engineers don’t have the DNA to deal with the constantly shifting requirements of a software project. It’s rare that software creators get the chance to execute on a project with the architect-budget-blueprint-project plan-construction methodology used by engineers.
Let me show this with a picture of one of the engineering wonders of the world, the Pont Millau in France, and what the reaction might be like if the builders were subjected to the conflicting and changing requirements that we get in the software world: