And building the correct structure for your problem/program is still a huge part of the job. If you completely delegate structure, you still get a clusterfuck.
I have found working with LLM's is best when I provide as much structure and constraints as possible, and reduce the degrees of freedom that the LLM can exercise, so that it is forced to fit its logic inside the structural boxes I have laid out.
If you just delegate everything to the LLM to get an absolute morass.