Yep, the issues started way earlier than the software. In fact the software is at the very end of the chain here, unless you also want to insert "no training". It all started when they wanted those big engines crammed into an airframe not designed to hold them, so as to try to quickly catch up to shifting market demands being met by Airbus.