This is toxic behavior that unfortunately rewards a selfish writer. I'm worried the AI push incentivizes this too much, to where in corporate situations a reader can't say no to doing work for a selfish writer.
This is toxic behavior that unfortunately rewards a selfish writer. I'm worried the AI push incentivizes this too much, to where in corporate situations a reader can't say no to doing work for a selfish writer.
The problem is that this is increasingly seen as a non-productive workflow slowing everyone else down, so the pressure is growing for writers to just shove massive PRs out the door and reviewers to use LLMs to make that tractable. I suppose those advocates have more faith in LLM output compared to humans than I do.
Some of this is the funny situation where the faithful will state: "This writes better code than I do!" and miss the irony of: "yes, yes it does"
"Blessed are the humble ..."
I guess it depends on what you consider "better". I've tried using LLMs to write code over the past couple of weeks with extremely mixed results.
The LLM certainly writes more interesting code! They like their cute ASCII/unicode animations, don't they?
It definitely writes a lot more code, none of it actually correct but some of it functionally similar to correct code.
If you like lots of code then I guess that's better. I like less code.
To be fair, there are plenty of situations where throwaway code is perfectly fine and/or defect risks are low enough to make the trade-off worth it. I don't think a lot of developers are thinking about it in that context, though.
(No unit tests aren't enough)
One of the few global Cluade directives I have setup is to never use emojis - and it never has, either in chat output or in code. Don't blame the tool when you don't spend 30 seconds configuring it. It's even easier with AI since you don't have to go digging for some obscure .vimrc snippet - it's literally just plain English.
Then when I get home, it's just a case of typing it in, which is the bit I'd love to automate away.
My experience with LLMs has been a bit like rubberducking code with someone who's *really* fast at looking stuff up on StackOverflow.
Even in these move-fast envs, it should be reasonably apparent for people to realize that the author should be using the LLM to make the PR tractable, not solely using the LLM to shovel out a giant PR + slop PR description.
And the LLMs can often do this - if you ask to restructure or break up a big change differently, they can often make quite reasonable suggestions and help with it. That's just not what you're gonna get if you're lazy. If you want a small LLM-generated change, often you have to start with a big one then ask it to figure out what it can get rid of, since many times it doesn't have perfect model of all the code in it's "head" before it starts spitting stuff out. The big companies have been doing their best to automate this for the last couple of years vs the even-more-blind attempts you used to get, but there's still the issue of the models+tools following generic advice aimed at median codebases vs being intimately familiar with this codebase.
You can go fast without being lazy. And when going fast, in some ways, it's more important than ever to put in that effort to not blowing things up.
Because I don't trust myself to review a giant PR. It takes too much cognition to properly review it.
And now that people are making PRs with AI, this is even more important. If the AI was good enough to have coded it, please instruct it to make the changes in reviewable chunks.
Then suddenly LLMs happened and it's like the mask is off: no one's reading them still, but also no one is writing them either.
Which is perhaps a drop in the ocean of the insanity which is "we need you to work on the Jira tasks" as basically a job title.