I have been thinking a lot about Gian Segato’s post, see Probabilistic Era.
The job of building software for people, i.e. software engineering is about taking an open problem, making it closed so we can build it and verify we have built it with tests (of various sorts).
The problem is open because it is for humans or involves humans. We’re not building a bridge, we’re solving some vague business problem with semi-automation, or something.
Humans used to do both parts, e.g. define/close the problem then build+verify the solution. Now (or soon) we only need to do the former, and we can guide LLMs to do the latter.
I suspect LLMs can get really good at helping to define/close problems as well.
The roles will change, it will be about guiding the process. Facilitating.
Maybe it will be like art. We want to read books and listen to music created by other humans, to feel some connection.
We may require this connection when defining our requirements/closing our problems.