I would like to start promoting one very effective technique for use in software design. The technique is called FMEA which stands for Failure Mode and Effect Analysis. It’s originating from automotive industry and mostly popular in plant maintenance and product quality. There are two branches of this analytical method: Design FMEA and Process FMEA. The Process FMEA refers to the manufacturing process, and not as interesting as Design FMEA for software development, given that manufacturing for software (compilation e.g.) is less critical than design flaws. Having said that, I see no issue to implement FMEA in its pure substance to any process.
So what is it exactly? FMEA is a method to predict and prevent failures by deep analysis of potential scenarios and quantifying the risks, likelihood, and aftermaths. But what is more important, you could take control over the situation and reduce probability of disaster to something small. It is not difficult, it is just dedication of your engineers and rights tools in place. Just remember, this technique makes sense before something happened, it is not an “after the fact” exercise.