I'm a fan of the 'sandwich' model: someone needs to say what to do, someone needs to do it, and someone needs to say if it's been done [well enough]. Even if AI can do that middle bit entirely, we still need humans at the beginning and the end. Replace the humans at the start and you have a paperclip-optimizer; replace them at the end and you have slop.
The problem is that software in corporations has typically been product managers at the front, software engineers in the middle, and QA at the end. Software developers who also have good product sense and do diligent QA are still needed. Programmers who treated their job as leetcode exercises are not needed anymore.
> someone needs to say what to do, someone needs to do it, and someone needs to say if it's been done
I agree, but if you zoom out, "someone needs to say what to do" and "someone needs to say if it's been done" are the customers and end users. Will they still need product managers, software engineers, or QA in the middle? I think so because many customers will need help from experts with domain knowledge.