I am personally a firm believer that if you want a reliable  problem-resistant system  you have to incrementally improve by asking questions and systematically eradicating problems as they arise Designing a system in a vacuum to be perfect simply does not work in practice because the subtly and variety of environmental issues are unknown at design time