This commentary has to do with software development and the Boeing 737 Max disaster. I am about to infuriate many of my developer friends because of their adaptation to a particular development methodology employed by Boeing and many others, and my long-held caution in its use for complex development projects. Namely, the "Agile" methodology. It is becoming clear that Boeing was in a hurry to make the significant changes necessary to employ the newer, larger engines needed to make the 737 line more efficient to compete with new Airbus models. Boeing used Agile to define smaller chunks of software that could be outsourced (for as little as $9/hour) and then recompose the whole. They then tried to make the changes transparent as possible to the pilots and required little or no training for the transition to the Max.
The problem is that Boeing 737s sit lower to the ground than do competing Airbus models and their transition to the larger engines was a more complex issue, making the software more complex. The Agile employment did not provide for the requirement definition of more thorough testing, but was instead used to hurry the process.
The writing of software to implement complex systems requires a thorough requirements definition as a part of the methodology. While many problems can be solved by Agile, the Boeing effort is not one. Agile principles include "individuals and Interactions over processes and tools" (totally wrong for aircraft control); "Working Software over comprehensive documentation" (apparently neither of these goals were achieved); and "Responding to Change over following a plan" (better to have change control built into the plan). Agile was created mainly by a group of small software development organizations and individuals whose business is professional services engagements to write software for business customers. One of their stated goals was customer satisfaction during the development process... and with simplicity in the process. Aircraft control mechanisms do not lend themselves to independent groups developing (including detail design) small pieces of the whole without the whole being centrally conceived.