The failures of Ariane-5 include the following:
According to Petroski, any successful designer should always think of the worst case--properly and completely anticipate what can go wrong. Otherwise, disaster can take people by surprise.
According to the Ariane-5 report, the reason to keep this useless code is based on that it is not wise to make changes in software that worked well on Ariane-4. At least they should test the design with valid, new profile no matter how apparent similar it is to the previous one. Another trap is the success syndrome, i.e., people become overconfident after great success like Ariane-4. As a result, they did not bother to test with the new data.
This is a supplement to item a: failure considerations and proactive failure analysis are essential for achieving success. OBC could be more robust if it rejects discontinuous data, since abrupt change of direction does not make any sense for a flight mission like this.
Fundamental errors made at the conceptual design stage can be very elusive. Designers of SRI treat
Failure of software as independent random process, but it is not.
The failures of Therac-25 involve the following:
It always pays to emphasize safety, especially for some unfamiliar area, but economical concerns can compromise this aspect.
Lack of knowledge in historical failures results in poor engineering judgement.
This is another place where success syndrome comes into play.
Refer to b in Ariane-5 failure list. In addition, scale effects must be considered in any design.
This is a logical error.
This is another poor engineering judgement.
This is caused by the tunnel vision in design. Designer paid too much attention to software interface. As a result, safety is compromised.
Designers must be able to step back form each design and make changes according to new considerations, as well as original basic requirement. In this regard, well-maintained document is necessary.