是此一系列事故的主因是不良的软体设计及开发实务，没有明确的将主因归因到所找到的软体编程错误。而软体的设计方式也让软体在实务上不可能以自动化测试进行测试。研究这系列事故的研究者发现了几个造成此事件的主因，包括了以下的组织层面原因：研究者也发现一些工程方面的原因：此软体是用组合语言撰写，因此在测试时需要更多心力，也需要心力才能进行好的设计。不过语言选择本身没有列为事故的主要原因。设备也使用其自己的作业系统。Leveson指出此事件的一个重大教训就是不可以假设复用的软体就一定安全： 「有一个