LLMs have definitely made software development less collaborative.
Personally I used to get pinged all the time for advice on code structure, technology choices, architecture, and so on. A teammate would come to me with a system design problem, and I could generally propose a better solution. That would often spark an idea in them and together we would come up with an even better design.
That is gone now.
Which sucks since that was one of my favorite aspects of software development.
I think there are three reasons for this:
- LLMs dramatically increase individual output, making it possible to ship large features without the help of any teammates.
- LLMs can fill in knowledge gaps well enough that engineers are less likely to ask the resident subject-matter expert for help.
- LLMs can turn a rough idea into a polished idea (well at least a polished SOUNDING idea) much faster than a group of humans could.
It is just too easy to simply bounce ideas off of an LLM instead of dealing with the social friction of pinging another engineer. It's not like this job attracts the most extroverted people.
Also LLMs will always gas up your ideas and aren't the best at pushing back.
This makes it easy to fall into a trap where you spend all your time collaborating with an LLM instead of people. You will often come up with some over-engineered solution that looks like a system design blog post written to impress people rather than something grounded in the immediate business need and the existing tech.
I have been trying to come up with a name for this phenomenon and the best I've got is "LLM design tunnel vision". ChatGPT recommended "AI design echo chamber" which I think might be slightly better.
Comment if you have a better one!