Boeing wanted to make the 737 more fuel efficient, but they didn't want to re-certify the frame, and design a new body. So, they put bigger engines on the wings. This sounds simple enough.
Except that the engines were too powerful for the frame to handle. So on take off, these extra powerful engines would push the nose of the plane up, to such an extreme angle that it could cause the plane to stall, and risk falling out of the sky.
In order to compensate for this, they introduced software and sensors that would mechanically adjust the flaps of the plane, in order to help "level out" the plane. This is probably ok for inherently unstable fighter jets, but for commercial aviation, a single crash is devastating.
So, this issue is not just a software defect, that can easily be fixed with code. This is a serious design flaw, where the planes are a death trap just waiting to happen. There is a mismatch between the geometric placement of the powerful engines, in relation to where it should be on the plane, in order to achieve balanced flight, without the need for software to auto-correct for an excessive nose-up pitch. It was probably only a matter of time, before sensors start to fail, and the software can no longer handle the situation.