Re: Why the different standards?
"IMHO the real double standard is that programmers aren't held to such high practical standards as civil engineers during the design and build phase. We can write shit code all day long and only ever be called on it when/if something goes horribly wrong."
Roads get pot holes in them. That is a civil engineering failure. Traffic lights fail for electrical reasons, as do power grids. Every mechanic in town currently has a car or two being repaired because mechanical stuff failed.
It always comes down to a compomise between costs and features. We could make roads for $5bn per km that would never get pot holes o break during eathquakes but we don't. We could make $5000 water pumps for cars that would never wear out, but we don't.
Same deal with software: in this age of 99c apps, nobody wants to pay $5M to develop a nuke-proof traffic light system.
The only real difference is that Joe Sixpack can understand that roads will fail and that mechanical stuff wears out, but the failure modes of software are far less obvious. What they don't understand, they don't make allowances for.
Really good software engineers are as skilled as top-end surgeons and certainly more skilled than bottom-of-the-barrel lawyers. The skilled surgeon will get paid $800/hr or more the crap lawyer will get paid $300/hr. Yet a really top sw eng will not be getting a quarter of that. Why? Same reason.
Software is invisble. You can't see software duct tape. People do not appreciate the difference between working and working well. As a result people will not pay for it.