Complex systems fail in complex ways not anticipated by engineers. You can over-engineer the systems, test every imaginable scenario, build redundant system coverage, test again. and you can still fail.
Boeing’s nightmare is just beginning, their latest generation airplane, the 787 Dreamliner, has been grounded because of fire danger in the lithium ion batteries used to replace many of the hydraulic systems a plane requires. Not only is this a brand hit for Boeing but it jeopardizes the entire 787 program because light weight is a critical selling feature for this plane and if Boeing has to replace these batteries with alternative technologies the result will be a major decline is one of the most important selling features. range.
Airplane manufacturing is one of most heavily regulated endeavors any business can undertake, right up there with nuclear power plants in terms of scrutiny and certification. Every component is reviewed, tested, tested again, certified and then tested again, so the regulatory system failed as much as the engineering failed. Complex systems fail in complex ways.
The next decade will feature products that are feature more highly integrated technology that is itself more complex than previous generations. Development frameworks for software and embedded systems have advanced by leaps and bounds, but it still is not adequate and redundancy will only get you so far when technical failure leads to catastrophic physical failure, as is the case with an airplane catching on fire.
We need better platforms and tools for integrated systems, for sure, but we also need better simulation environments for engineers to use, and more biologically inspired systems that are self-healing, re-routing, and adaptive in nature.