Another reason why every critical-system programmer should learn and relearn the lessons of Therac-25.[http://courses.cs.vt.edu/~cs3604/lib/Therac_25/Therac_1.html]
for the therac one of their main problems was relying on software 100% and not having hardware failsafes as well.