Thanks for your insights.
We might call LLMs non-deterministic transpilers / intention guesstimators. But how much mileage can we get out of them?
Being able to somehow describe what is needed in a natural way allows me to solve more problems, to the point of jokingly calling myself and my programming colleagues “product owners”. So your management conclusion isn’t far off.
To me, the interesting part is that I’m actually writing down what I want and designing how it should work in a mix of natural language and code.
This was previously done mostly in code / comments, where it was easy to lose sight of the big picture as working on decent code just took so much time. This was especially true of refactoring after gaining new insights. That type of refactoring (in our codebases) is now nearly free. The code generated is of dubious quality, so this approach only goes so far. Of course, we’d look for $framework / $library to shave off many hours of work. This is what we still do, but mostly faster.
I am, and have been, mostly building on top of an existing pyramid with the benefit that an LLM can consume mountains of documentation, RFCs, bug reports, and so on.
I wonder if the lower layers of the pyramid require more engineering and whether that can also be done properly by being more of a manager. Are LLMs management generators?