Anyone outsourcing critical thinking to LLMs is using them wrong. With software development, for example, quality is speed. Yes, a codebase riddled with technical debt will always collapse under its own weight, regardless of whether humans or LLMs wrote the shitty code, so using LLMs to generate slop that senior engineers aren’t carefully reviewing, or letting LLMs make architectural decisions is the wrong approach. However, skillful use of LLMs can actually yield better quality code than humans alone. Here are some examples:
LLMs often find issues when reviewing PRs that the human reviewers missed in my experience. Different, focused agents can be used to review code from different perspectives, like security, performance, etc.
Test coverage can be higher with LLMs automating the test writing. They can often also come up with useful test cases that humans didn’t consider and also make it possible to maintain more varied types of tests that the team otherwise might not take on.
LLMs are great at fixing lint issues. I’ve seen codebases where lint warnings accumulate because only the errors are getting fixed, but LLMs can fix everything quickly.
Once solid patterns have been established in a codebase by senior engineers and documented in agent MD files, LLMs can implement features and follow the existing patterns for routine features and bug fixes without getting “creative” and introducing new tools and patterns that complicate things out of boredom.
LLMs can be used to look at codebases for open source dependencies to better understand how they work in order to utilize them better
LLMs can suggest alternative libraries, approaches, patterns, etc. with the pros and cons of each. While humans still need to do their own research, this can often be a useful starting point that helps make more informed decisions
Anyone outsourcing critical thinking to LLMs is using them wrong. With software development, for example, quality is speed. Yes, a codebase riddled with technical debt will always collapse under its own weight, regardless of whether humans or LLMs wrote the shitty code, so using LLMs to generate slop that senior engineers aren’t carefully reviewing, or letting LLMs make architectural decisions is the wrong approach. However, skillful use of LLMs can actually yield better quality code than humans alone. Here are some examples: