Re: Awesome conference on Software Engineering
Something people always miss when it comes to comparing software products to other engineered products... software doesn't contain material defects or manufacturing defects. It doesn't wear out. So it doesn't have those classes of problems.
However, it often fails in ways very similar to how other complex systems fail: design flaws. Software crashes or exhibits bugs when the system encounters an unanticipated set of inputs and doesn't handle them well.
This is the exact same thing that's brought down many structures- for example, the Tacoma Narrows Bridge. The guy that designed it had a theory about how to optimize suspension bridges. He created a bridge for light traffic with an extremely thin bridge deck. It worked great, except he didn't anticipate the influence of a factor that wasn't significant on previous bridge designs: his super-thin bridge deck acted like an airfoil. The upward loads imparted by high winds tore the bridge apart. That's one hell of a "bug".
Both space shuttle disasters- same thing. Complex systems interacting and failing in complex ways... i.e. the foam falling off the side of the external tank and punching a hole in the thermal protection system at a critical point. No one anticipated that in the design of the vehicle- it didn't wear out; a design flaw brought it down.
Deepwater Horizon, Piper Alpha, Three Mile Island, Chernobyl, Ford Pinto, etc, etc, etc- all killed by flawed designs. This is the same class of defects that produces most software problems. Software and bridges have more in common than most people realize, the problem is most people pick the wrong analogies between software & physical products.