Boeing produced a dynamically unstable airframe, the 737 Max. That is big strike No. 1.
Boeing then tried to mask the 737’s dynamic instability with a software system. Big strike No. 2.
Finally, the software relied on systems known for their propensity to fail (angle-of-attack indicators) and did not appear to include even rudimentary provisions to cross-check the outputs of the angle-of-attack sensor against other sensors, or even the other angle-of-attack sensor. Big strike No. 3.
None of the above should have passed muster.