Software "engineering" repeatedly goes through the same loop:
- something simple, easy to learn, easy to use
- doesn't cover edge case X
- lacks rigour
- lets add a bunch of features
- and committees and processes to manage that
- this is really complicated and hard to learn and use, we need something simpler ...