Software engineering is the practice of taking a concrete problem, converting it into a set of rules (a world model), and then converting those rules into something a computer can execute for a human user.
As long as AI cannot dynamically generate a true world model on the fly, it will continue to fall short.