Within the single context of writing code, we've had quite a few attempts throught history to generate code. Often times within very rigid constraints.
GenAI is fits in the same space, but with extra steps, benefits and drawbacks. It's not "a junior dev". It's a new hammer.
The craftsman enjoys the new hammer, pushes its limits, nerds out about the intricacies. Tools have limits in terms of wear and tear, plus cost.
Junior devs are humans, looking to survive and flourish. They pick up new tools faster than most. The only barrier the same that has always been: access to said tools and visibility over the outcome.
What's the benefit of over-anthropomorphizing a hammer?
I am always using the anecdote that there are projects I scoped pre-2023 that I would have had to have at least one or two junior devs to do help me do the work after I wrote out all of the design specs and now I can do myself in the same amount of time with ChatGPT. That’s along with my lead/architect role of talking to the client, a lot of project management work, design documents, helping sales etc.
It’s a step change.
While I hated every single 4GL tool that I’ve ever encountered (well HyperCard has a soft spot in my heart), because it was limiting, I can use ChatGPT, to create my infrastructure (CDK, Cloudformation, Terraform), and my code based on talking to it like I would a good junior developer.
I can’t tell a junior developer I need IAC done in Node (the CDK), and code written in Python using the SDK and expect them to immediately know how to use both across 130+ different services.
I have never once in my decade plus of being over projects and having the ear (or direct authority) to hire someone said “what I really need are some junior developers who don’t have any real world experience. That would definitely help me ship faster”.
Why would I do that instead of poaching a mid level developer who can hit the ground running without doing a year of negative work (ie take time away from the team asking dumb questions).